CVE-2024-39912

5.3 MEDIUM

📋 TL;DR

This vulnerability in web-auth/webauthn-lib allows attackers to enumerate valid usernames when WebAuthn is used as the primary authentication method. By observing whether the 'allowedCredentials' property is present in assertion options responses, attackers can determine which usernames exist in the system. All applications using vulnerable versions of this library for WebAuthn authentication are affected.

💻 Affected Systems

Products:
  • web-auth/webauthn-lib
  • web-auth/webauthn-bundle
Versions: Versions before 4.9.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects configurations where WebAuthn is used as the first or only authentication method. Multi-factor or secondary authentication methods may reduce impact.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers can enumerate all valid usernames, enabling targeted credential stuffing, phishing, or social engineering attacks against known valid accounts.

🟠

Likely Case

Attackers identify valid usernames to focus brute-force or credential stuffing attacks, increasing success rates for account compromise.

🟢

If Mitigated

With proper monitoring and rate limiting, impact is limited to information disclosure about username existence without direct account access.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires no authentication and involves simple API calls to observe response differences.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 4.9.0

Vendor Advisory: https://github.com/web-auth/webauthn-framework/security/advisories/GHSA-875x-g8p7-5w27

Restart Required: No

Instructions:

1. Update composer.json to require 'web-auth/webauthn-lib' version '^4.9.0'. 2. Run 'composer update web-auth/webauthn-lib'. 3. Clear Symfony cache if using the bundle: 'php bin/console cache:clear'.

🔧 Temporary Workarounds

No known workarounds

all

The vendor advisory states there are no known workarounds for this vulnerability.

🧯 If You Can't Patch

  • Implement rate limiting on WebAuthn assertion endpoints to prevent automated username enumeration.
  • Add WebAuthn as a secondary authentication factor only, not as the primary authentication method.

🔍 How to Verify

Check if Vulnerable:

Check composer.lock for 'web-auth/webauthn-lib' version. If version is below 4.9.0 and WebAuthn is used as primary auth, the system is vulnerable.

Check Version:

composer show web-auth/webauthn-lib | grep versions

Verify Fix Applied:

Verify composer.lock shows 'web-auth/webauthn-lib' version 4.9.0 or higher. Test that assertion options responses no longer leak username existence information.

📡 Detection & Monitoring

Log Indicators:

  • Unusual volume of WebAuthn assertion requests to the same endpoint
  • Multiple failed WebAuthn authentication attempts with different usernames

Network Indicators:

  • HTTP requests to WebAuthn assertion endpoints with varying username parameters
  • Pattern of requests checking for username existence

SIEM Query:

source='web_auth_logs' AND (endpoint LIKE '%assertion%' OR endpoint LIKE '%webauthn%') AND count(username) > threshold GROUP BY username

🔗 References

📤 Share & Export