CCExtractor / CCExtractor/taskwarrior-flutter

Sensitive Credentials Stored in Plain Text Files Without Encryption

Offen
#645 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
bug
Vorherrschende Sprache
Dart
Sterne
244
Forks
179
Ø Merge
12 Std. 42 Min.
Gemergte PRs (30 T.)
2

Beschreibung

### 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.

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Finde den Code zur Speicherung von Zugangsdaten, der profiles/{profile}/taskc_client_id und profiles/{profile}/taskc_client_secret schreibt, und verfolge anschließend, wie sich die Speicherung unter Android und iOS unterscheidet. Prüfe die bestehende Verwendung von SharedPreferences und die verfügbaren Optionen für plattformsichere Speicherung; abgeschlossen ist die Aufgabe, wenn die Zugangsdaten verschlüsselt oder im sicheren Plattformspeicher aufbewahrt werden, statt direkt aus dem lokalen Dateisystem lesbar zu sein.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
dart, flutter
Bereich
mobile-dev, security
Issue-Typ
Bug
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Ruhig
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.