GitHub Advisoryadvisory · Packagist

GHSA-875x-g8p7-5w27 The FIDO2/Webauthn Support for PHP library allows enumeration of valid usernames

MEDIUM Published 2024-07-15 Modified 2024-07-15 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