fix(security): claim verified OIDC replay before token mint - #270
Conversation
|
Warning Review limit reached
Next review available in: 76 minutes You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (4)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@coderabbitai review Review exact current head |
Rate Limit Exceeded
|
Purpose
Close the replay window in Noema's credential-exchange path. A cryptographically valid GitHub Actions OIDC credential must be atomically claimed as single-use after workflow and target-repository authorization but before any GitHub App installation token is minted.
Exact identities
4573a6f7eaf904e19a6e3198c8cabcfd4be40c403eab25763687e89a88c47fbe84fcbd3a96fb9fa50e7bd32d0fbc7e91972d5feb73bd8fe73799b16afix/replay-before-token-mint-current-mainSecurity ordering
distributed rate limit → bounded exact-workflow prefilter → cryptographic OIDC verification → target-repository authorization → atomic distributed replay claim → GitHub App installation-token mint → responseThe implementation:
jtiandexpclaims through the base exchange handler;createInstallationToken();401 ERR_AUTH_REPLAYfor an already-consumed verified credential without calling the installation-token endpoint;503 ERR_AUTH_REPLAYwhen the replay binding, bounded verified claims, or replay service is unavailable;x-oidc-replay-protection: verified-before-mintinternally and normalizes it tosingle-useat the production wrapper;Restack and verification boundary
The branch was merged with protected
mainafter #272, #266, and #275. The merge tree overlays onlysrc/index.ts,src/worker.ts,test/replay-before-token-mint.test.ts, andtest/worker-defensive-replay.test.tson current protected-main bytes.All predecessor results are historical only. Application
ci,reviewer-ci, protected-base-eligibleSecurity Scan, and fresh review must complete successfully on unchanged current head0e7bd32d0fbc7e91972d5feb73bd8fe73799b16abefore merge. Pending, queued, skipped, absent, neutral, failed, cancelled, stale, predecessor, status-only, model-only, or rate-limited evidence is non-passing.No unverified replay-state consumption, audit waiver, protection bypass, secret invention, version bump, release, or deployment claim.
Related: #81, #83.