CCExtractor / CCExtractor/taskwarrior-flutter

Sensitive Credentials Stored in Plain Text Files Without Encryption

オープン
#645 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る
bug
主要言語
Dart
スター
244
フォーク
179
平均マージ
12時間 42分
マージ済み PR(30日)
2

説明

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

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

profiles/{profile}/taskc_client_id と profiles/{profile}/taskc_client_secret を書き込む認証情報ストレージのコードを特定し、続いて Android と iOS でストレージの扱いがどのように異なるかを追跡します。既存の SharedPreferences の使用方法と、利用可能なプラットフォームのセキュアストレージの選択肢を確認します。完了条件は、認証情報が暗号化されるかプラットフォームのセキュアストレージに保持され、ローカルファイルシステムから直接読み取れる状態ではなくなることです。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
dart, flutter
領域
mobile-dev, security
issue の種類
バグ
難易度
5/5
見積もり時間
1週間以上
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。