CVE-2024-39912: The FIDO2/Webauthn Support for PHP library allows enumeration of valid usernames
5.3
CVSS Score
3.1
Basic Information
CVE ID
GHSA ID
EPSS Score
0.3654%
CWE
Published
7/15/2024
Updated
8/4/2024
KEV Status
No
Technology
PHP
Technical Details
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| web-auth/webauthn-lib | composer | >= 4.5.0, < 4.9.0 | 4.9.0 |
| web-auth/webauthn-framework | composer | >= 4.5.0, < 4.9.0 | 4.9.0 |
Vulnerability Intelligence
Miggo AI
Root Cause Analysis
The vulnerability stems from ProfileBasedCreationOptionsBuilder's getFromRequest method returning empty excluded credentials when a username isn't found. This creates an observable difference in assertion options responses (presence/absence of allowedCredentials) that enables username enumeration. The commit diff shows the vulnerability was addressed by adding a 'hideExistingExcludedCredentials' parameter and conditional logic to return random credentials instead of empty ones. The pre-patch version in 4.5.0-4.8.x lacked this protection, making the original implementation of getFromRequest the vulnerable entry point that exposed credential existence through response discrepancies.