Listen to this Post
Technical Explanation of the Vulnerability
- The vulnerability exists in Symfony Webauthn Bundle version 5.3.0.
- In this version, `ClientOverridePolicy` defaulted to allowing all client overrides.
- This includes the `userVerification` parameter, which controls whether user verification (e.g., PIN or biometric) is required.
- A malicious client can send a request with `{“userVerification”: “discouraged”}` in the assertion or attestation options request.
5. This overrides the server-configured `userVerification: required` value.
- The emitted WebAuthn options then instruct the authenticator to skip user verification entirely.
- The `CheckUserVerification` ceremony step reads the same downgraded options.
- Consequently, the ceremony step also skips its verification check.
- This allows an attacker with physical possession of the victim’s authenticator to bypass the user verification requirement.
- Versions 5.0.0 to 5.2.x do not include
ClientOverridePolicy, but they are still vulnerable via a similar path in the request options builders. - In older versions, client-supplied `userVerification` is passed directly to the options factory.
- The profile value is applied only via the `??=` operator, leaving the client able to downgrade the setting.
- The severity is considered low because the attacker must already have the victim’s authenticator (e.g., a stolen security key).
- Additionally, the framework exposes the actual user verification outcome via
AuthenticatorData::isUserVerified(). - Applications that gate sensitive operations on this flag remain protected even on the vulnerable version.
- The fix changes `ClientOverridePolicy::canOverride()` to default to `false` instead of
true. - The Symfony bundle DI configuration now disables user verification overrides by default.
- The `allowed_values` list excludes `discouraged` even when an operator opts in.
- The vulnerability was reported by @offset and patched in version 5.3.1.
- Users on any version from 5.0.0 to 5.3.0 should upgrade to 5.3.1 or later.
DailyCVE Form
Platform: Symfony Webauthn Bundle
Version: 5.3.0
Vulnerability: UV Downgrade
Severity: Low
Date: 2026-05-01
Prediction: Patch 2026-05-02
Analytics under heading What Undercode Say:
Check installed version of web-auth/webauthn-framework composer show web-auth/webauthn-framework Verify if ClientOverridePolicy is vulnerable (true = vulnerable) grep -r "ClientOverridePolicy::canOverride" vendor/webauthn/webauthn-bundle/ Check for userVerification downgrade attempts in logs grep "userVerification.discouraged" var/log/webauthn.log Apply the patch by upgrading to version 5.3.1 composer update web-auth/webauthn-framework:5.3.1 After upgrade, verify that overrides are disabled php bin/console debug:config webauthn user_verification_overrides Run a security check to confirm the fix symfony check:security
Exploit:
- Gain physical access to the target user’s authenticator (e.g., a YubiKey or a device with built-in WebAuthn).
- Initiate a WebAuthn assertion or attestation request to the Symfony application.
- Intercept the request and modify the JSON body to include
"userVerification": "discouraged".
4. Forward the modified request to the server.
- The server accepts the override and generates WebAuthn options with user verification disabled.
- Complete the authentication ceremony without providing a PIN or biometric verification.
- The server’s `CheckUserVerification` step skips the validation, granting access.
Protection from this CVE
- Immediately upgrade to version 5.3.1 or later of the `web-auth/webauthn-framework` bundle.
- If an immediate upgrade is not possible, add an explicit application‑level check for the return flag:
if (! $authenticatorData->isUserVerified()) { throw new AccessDeniedHttpException('User verification is required.'); } - Ensure that sensitive operations are gated on the actual user verification outcome, not on the requested options.
- Monitor logs for requests containing `”userVerification”: “discouraged”` to detect potential exploitation attempts.
- For versions 5.0.0–5.2.x, the same mitigation applies, but upgrading to 5.3.1 is strongly encouraged.
Impact
- An attacker with physical access to a user’s WebAuthn authenticator can bypass user verification (e.g., PIN or biometric check).
- This weakens two‑factor authentication, potentially allowing unauthorized access to high‑risk operations.
- The impact is mitigated if the application already checks `AuthenticatorData::isUserVerified()` after a successful ceremony.
- The exposure window is minimal (approximately 18 hours) due to the fast patch release.
- No direct remote exploitation is possible without possession of the authenticator, which limits the overall risk.
🎯Let’s Practice Exploiting & Learn Patching For Free:
Sources:
Reported By: github.com
Extra Source Hub:
Undercode

