Skip to content

feat(webauthn): scrub attestation for attestation=none conveyance#284

Merged
AlfioEmanueleFresta merged 1 commit into
masterfrom
fix/attestation-none-conveyance
Jun 21, 2026
Merged

feat(webauthn): scrub attestation for attestation=none conveyance#284
AlfioEmanueleFresta merged 1 commit into
masterfrom
fix/attestation-none-conveyance

Conversation

@AlfioEmanueleFresta

Copy link
Copy Markdown
Member

When a relying party requests no attestation, the client now removes the attestation statement and zeroes the AAGUID before returning the credential, rather than forwarding the authenticator attestation verbatim. This honors the requested conveyance and avoids disclosing identifying device information for a privacy-preferring registration. Requests that ask for direct or indirect attestation are unchanged.

@AlfioEmanueleFresta AlfioEmanueleFresta marked this pull request as ready for review June 20, 2026 14:05
WebAuthn L3 §5.4.1 requires the platform to anonymise the attestation
object when the relying party requests attestation conveyance "none":
replace fmt with "none", attStmt with an empty map, and zero the AAGUID
in the authenticator data.

libwebauthn parsed the conveyance preference but discarded it, forwarding
the authenticator's real format, attStmt, and AAGUID verbatim. This honours
the preference at response assembly time. The WebAuthn IDL default of "none"
is applied at the IDL boundary, so JSON requests that omit attestation are
scrubbed too. Requests built directly with attestation None pass through.
@AlfioEmanueleFresta AlfioEmanueleFresta force-pushed the fix/attestation-none-conveyance branch from b9dc7d9 to 6db7939 Compare June 21, 2026 15:07
@AlfioEmanueleFresta AlfioEmanueleFresta merged commit c666b45 into master Jun 21, 2026
7 checks passed
@AlfioEmanueleFresta AlfioEmanueleFresta deleted the fix/attestation-none-conveyance branch June 21, 2026 15:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant