CCExtractor / CCExtractor/taskwarrior-flutter

Sensitive Credentials Stored in Plain Text Files Without Encryption

Abierto
#645 1 comentario 0 reacciones 0 asignados Ver en GitHub
bug
Lenguaje dominante
Dart
Estrellas
244
Forks
179
Merge medio
12 h 42 min
PR fusionados (30 d)
2

Descripción

### Describe your issue

The application stores sensitive credentials such as clientId and encryptionSecret in plain text files inside the local file system (profiles/{profile}/). These files are not encrypted, making the data vulnerable if the device is compromised (e.g., rooted Android or jailbroken iOS).

Although SharedPreferences is used, it only stores the base directory path. The actual issue lies in insecure file storage of sensitive data.

This can lead to unauthorized access, credential leakage, and potential misuse of backend APIs.

### Steps to reproduce

Install and run the application
Login or initialize credentials storage
Navigate to the app’s local storage directory

**Open the path:**

/profiles/{profile}/taskc_client_id
/profiles/{profile}/taskc_client_secret
Observe that credentials are stored in plain text

### What was the expected result?

Sensitive credentials should be stored securely using encrypted storage mechanisms such as:

Secure Keychain (iOS)
Android Keystore
Or encrypted storage solutions

Credentials should not be directly readable from the file system.

### Put here any screenshots or videos (optional)

_No response_

### How can we contact you (optional)

_No response_

### Would you like to work on this issue?

Yes

### By submitting this issue, I have confirmed that:

- [x] I have starred the repo ⭐ and watched 👀 it on GitHub and followed the contribution guidelines.

Guía de contribución

Abrir la guía de contribución

Línea de trabajo

Localiza el código de almacenamiento de credenciales que escribe profiles/{profile}/taskc_client_id y profiles/{profile}/taskc_client_secret, y después sigue cómo difiere el almacenamiento en Android y iOS. Revisa el uso existente de SharedPreferences y las opciones disponibles de almacenamiento seguro de la plataforma; la tarea se considera terminada cuando las credenciales están cifradas o se conservan en el almacenamiento seguro de la plataforma, en lugar de ser directamente legibles desde el sistema de archivos local.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
dart, flutter
Área
mobile-dev, security
Tipo de issue
Error
Dificultad
5/5
Tiempo estimado
Más de una semana
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.