提出 #837646: arc53 DocsGPT Development branch before PR #2331; verified against local main commit 06e827573cac6ad3b445ffea0fb08169071c1b50. Fixed for newly CWE-345: Insufficient Verification of Data Authenticity情報

タイトルarc53 DocsGPT Development branch before PR #2331; verified against local main commit 06e827573cac6ad3b445ffea0fb08169071c1b50. Fixed for newly CWE-345: Insufficient Verification of Data Authenticity
説明A vulnerability was found in DocsGPT before PR #2331 and classified as a cryptographic integrity issue. Affected is the backend credential encryption helper in application/security/encryption.py. The implementation encrypted stored credential dictionaries with AES-CBC and custom padding but did not authenticate the ciphertext, IV, salt, or user context with an integrity tag. An attacker who can modify a stored encrypted credential blob can perform controlled ciphertext or IV manipulation. In a local controlled proof of concept, changing one IV byte changed the decrypted JSON object from {"a": "AAAA", "b": 1} to {"a": "ZAAA", "b": 1} without any authentication failure in the pre-PR implementation. This demonstrates that key-backed encrypted credential data was treated as valid based only on successful decryption and JSON parsing, not on cryptographic authenticity. Authentication required: yes, if the attack path requires write access to the application's credential storage or database. User interaction required: no. Technical Details - Affected file/function: application/security/encryption.py / encrypt_credentials and decrypt_credentials - Vulnerable parameter: encrypted_data stored credential blob - Attack vector: Network or local, depending on database/storage access path - Privileges required: Low to High, depending on deployment storage access controls - Trigger condition: A legacy AES-CBC credential blob is modified and then decrypted by decrypt_credentials - Security model issue: AES-CBC provides confidentiality only and does not provide ciphertext integrity or authenticity - Patch behavior: PR #2331 changes new encryption to AES-GCM with user_id bound as additional authenticated data and returns an empty object for tampered GCM data or cross-user replay - Residual migration note: PR #2331 keeps a legacy CBC fallback for backward compatibility, so existing CBC records should be rotated or re-encrypted to receive integrity protection Impact - Confidentiality: Low - Integrity: High - Availability: None CVSS v3.1 Score: 6.5 (Medium) Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:N Timeline - Vulnerable baseline verified: 2026-05-26 - Patch proposed in PR #2331: 2026-03-26 - PR review update committed: 2026-03-30 - Public disclosure: https://github.com/arc53/DocsGPT/pull/2331 Countermeasure Use authenticated encryption for stored credentials. PR #2331 migrates new encryption to AES-GCM, uses a versioned format, and binds user_id as additional authenticated data. Deploy the patch and rotate or re-encrypt existing legacy AES-CBC credential blobs so old unauthenticated ciphertext is no longer accepted indefinitely.
ソース⚠️ https://github.com/arc53/DocsGPT/issues/2503
ユーザー
 Dem00 (UID 84913)
送信2026年05月26日 18:29 (1 月 ago)
モデレーション2026年06月27日 17:02 (1 month later)
ステータス承諾済み
VulDBエントリ374480 [arc53 DocsGPT 迄 0.18.0 Credential Storage encryption.py encrypt_credentials 弱い認証]
ポイント20

Might our Artificial Intelligence support you?

Check our Alexa App!