GitHub Advisoryadvisory · Packagist
GHSA-875x-g8p7-5w27 The FIDO2/Webauthn Support for PHP library allows enumeration of valid usernames
MEDIUM
Official page ↗
- Aliases
- CVE-2024-39912
- Ecosystem
- Packagist
- Packages
- web-auth/webauthn-lib, web-auth/webauthn-framework
- Severity
- Moderate
- CVSS vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
- Weaknesses
- CWE-204
- Reviewed
- 2024-07-15
Affected packages
• Packagist web-auth/webauthn-lib: >= 4.5.0, < 4.9.0 → fixed in 4.9.0
• Packagist web-auth/webauthn-framework: >= 4.5.0, < 4.9.0 → fixed in 4.9.0
Description
Summary
The ProfileBasedRequestOptionsBuilder method returns allowedCredentials without any credentials if no username was found.
Details
When WebAuthn is used as the first or only authentication method, an attacker can enumerate usernames based on the absence of the `allowedCredentials` property in the assertion options response. This allows enumeration of valid or invalid usernames.
Proposal how to resolve it:
```
return $this->publicKeyCredentialRequestOptionsFactory->create(
$this->profile,
count($allowedCredentials) userVerification,
$extensions
);
private static function getRandomCredentials(): array
{
$credentialSources = [];
for ($i = 0; $i __toString(),
rand(0, 6000),
null
);
}
return array_map(
static fn (PublicKeyCredentialSource $credential): PublicKeyCredentialDescriptor => $credential->getPublicKeyCredentialDescriptor(),
$credentialSources
);
}
```
PoC
curl https://example.com/assertion/options \
-H 'content-type: application/json' \
--data-raw '{"username":"NotMeRandomUsername123"}'
Impact
By knowing which usernames are valid, attackers can focus their efforts on a smaller set of potential targets, increasing the efficiency and likelihood of successful attacks.
Related
Alias · CVE (1)
- CVE-2024-39912 web-auth/webauthn-lib is an open source set of PHP libraries and a Symfony bundle to allow developers to integrate that authentication… vulnerability
Weakness · CWE (1)
- CWE-204 Observable Response Discrepancy weakness
References
- https://github.com/web-auth/webauthn-framework/security/advisories/GHSA-875x-g8p7-5w27 web
- https://nvd.nist.gov/vuln/detail/CVE-2024-39912 advisory
- https://github.com/web-auth/webauthn-framework/commit/64de11f6cddc71e56c76e0cc4573bf94d02be045 web
- https://github.com/web-auth/webauthn-framework/commit/a9d1352897fba552e659e1445a771dec2d4ed05a web
- https://github.com/web-auth/webauthn-lib/commit/b6798de27cdedd8681fe4c9b13ace0ff2456d18b web
- https://github.com/web-auth/webauthn-framework package