CVE-2024-21669

9.9 CRITICAL

📋 TL;DR

This vulnerability in Hyperledger Aries Cloud Agent Python (ACA-Py) allows attackers to present forged verifiable credentials and enables malicious verifiers to replay presentations as their own. It affects all deployments using W3C Format Verifiable Credentials with JSON-LD and Linked Data Proofs. The flaw has been present since version 0.7.0.

💻 Affected Systems

Products:
  • Hyperledger Aries Cloud Agent Python (ACA-Py)
Versions: 0.7.0 through 0.10.4
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects deployments using W3C Format Verifiable Credentials with JSON-LD and Linked Data Proofs (LDP-VCs).

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete compromise of decentralized identity systems allowing impersonation, credential forgery, and unauthorized access to services relying on verifiable credentials.

🟠

Likely Case

Malicious actors could present invalid credentials as valid, leading to unauthorized access or fraudulent transactions in identity systems.

🟢

If Mitigated

With proper monitoring and limited credential scope, impact could be reduced to isolated credential validation failures.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires understanding of W3C verifiable credentials and JSON-LD proofs. Attackers need to be holders or verifiers in the system.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 0.10.5 or 0.11.0

Vendor Advisory: https://github.com/hyperledger/aries-cloudagent-python/security/advisories/GHSA-97x9-59rv-q5pm

Restart Required: Yes

Instructions:

1. Backup current configuration and data. 2. Update ACA-Py using pip: 'pip install --upgrade aries-cloudagent==0.10.5' or 'pip install --upgrade aries-cloudagent==0.11.0'. 3. Restart all ACA-Py services. 4. Verify the fix by testing credential verification.

🔧 Temporary Workarounds

Disable LDP-VC verification

all

Temporarily disable verification of W3C Format Verifiable Credentials using JSON-LD with Linked Data Proofs

Modify ACA-Py configuration to disable LDP-VC verification features

🧯 If You Can't Patch

  • Implement additional validation layers for all credential presentations
  • Monitor and audit all credential verification attempts for anomalies

🔍 How to Verify

Check if Vulnerable:

Check if running ACA-Py version 0.7.0 through 0.10.4 and using LDP-VC features

Check Version:

python -c "import aries_cloudagent; print(aries_cloudagent.__version__)"

Verify Fix Applied:

Test credential verification with malformed proofs to ensure they are properly rejected

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed credential validations
  • Unusual credential presentation patterns
  • Proof verification errors

Network Indicators:

  • Repeated credential presentation attempts
  • Unusual timing in credential exchange protocols

SIEM Query:

source="aca-py" AND ("proof verification" OR "credential validation") AND status="success" WHERE proof_errors>0

🔗 References

📤 Share & Export