Skip to content

feat: accept Laissez-Passer attestation tokens without JTI binding - #230

Closed
orekav wants to merge 1 commit into
mainfrom
feat/laissez-passer-attestation
Closed

feat: accept Laissez-Passer attestation tokens without JTI binding#230
orekav wants to merge 1 commit into
mainfrom
feat/laissez-passer-attestation

Conversation

@orekav

@orekav orekav commented Aug 4, 2026

Copy link
Copy Markdown

Summary

  • Accept Attestation Gateway Laissez-Passer tokens (check_type: "dev") without requiring jti to match the request hash, matching app-backend-risk.
  • Keep signature, pass, expiry, issuer, and audience checks; OSV tokens still require a matching jti.
  • Fixes LP users getting attestation-failure: JTI claim (request hash) is not valid on gated backup endpoints (e.g. /v1/retrieve/from-challenge) while enforcement is soft-disabled.

Test plan

  • cargo test --lib laissez_passer
  • cargo test --lib test_validate_token_osv_still_requires_jti
  • Confirm LP (check_type=dev) request to /v1/retrieve/from-challenge returns 200 without attestation-failure header
  • Confirm normal OSV attestation still fails when jti mismatches
  • Confirm #227 / 0.9.5 path-hash fix is deployed alongside this for non-LP clients

Match app-backend-risk by skipping request-hash validation for AG tokens with check_type=dev so LP users are not rejected with attestation-failure.
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