fix(security): fail closed on ambiguous dependency-review HTTP responses - #1725
seonghobae wants to merge 21 commits into
Conversation
|
Warning Review limit reachedNext included review available in 7 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 📒 Files selected for processing (6)
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 |
|
Fleet handoff — a second migration defect is now live-evidenced and belongs in the central consolidation contract/doctoring before #1725 leaves Draft. RCA: #1724's thin-caller replacements removed each caller workflow's permission envelope. A reusable workflow cannot elevate Exact RED evidence after immutable pinning (so mutable-ref resolution is no longer confounded):
Consumer GREEN repair is now applied without touching this owner branch: explicitly retain Owner-path acceptance: extend #1725's central contract/ADR/doctoring/example caller so every reusable Dependency Review caller is required to pass at least |
|
Fresh owner-path re-read confirms the permission handoff has advanced correctly to an explicit RED at Next owner GREEN should minimally update the canonical example/doctoring contract to include the two caller read permissions, preserve the existing non-200 fail-closed production repair, adopt protected |
seonghobae
left a comment
There was a problem hiding this comment.
Fresh-base owner handoff for exact head 403ca1c4de8b3e477b5a9b1c102188278286b2c8 (read-only; no source/ref/PR-state mutation): protected ContextualWisdomLab/.github/main is now 63bf49835da44aa8257eb76a92368e6485ae6e94 via #1728, while this Draft still records base b4eec000d21084accb736d289eb64cfd78e7a91a and is currently non-mergeable. Preserve the HTTP-non-200 fail-closed and least-privilege caller-permission RED/GREEN deltas; non-force reconcile with the live protected base, then re-run focused tests and every exact-current-head required/security/provenance check. Do not transfer the prior 403ca1c4… evidence across the new integration head. Consumers must continue to wait for the resulting protected-main immutable SHA and then pin that exact SHA; no @main, PR-head, skipped/cancelled/queued, or predecessor evidence is release authority.
|
Fresh Naruon reproduction confirms this PR's permission-envelope RCA on a fifth consumer. |
|
Current-main ancestry reconciliation rationale before write: protected I will therefore preserve both histories without force/rebase by creating a two-parent reconciliation commit with the current branch tree unchanged, parents |
|
Consumer owner-path acceptance from writable |
Evidence log — 2026-09-02Exact current head:
Gate decision: HOLD. Do not mark ready or merge until the branch is reconciled against current protected |
|
Fresh LineageWeave consumer evidence from Security Scan run Keep this as consumer RED for the canonical owner repair/release path: after owner integration, the acceptance target remains an authenticated HTTP 200 compare plus an actually executed Dependency Review verdict on a consumer pinned to the immutable released owner revision. |
|
Fresh LineageWeave consumer evidence on exact |
|
LineageWeave consumer evidence update. Exact predecessor |
|
Fresh LineageWeave consumer receipt — |
|
Fresh LineageWeave consumer evidence, exact PR #983 head |
|
Fresh LineageWeave consumer evidence from #983 exact |
|
Current LineageWeave consumer confirmation after the product head advanced normally: #983 exact |
|
Fresh LineageWeave consumer reproduction on exact PR #983 head |
|
Fresh LineageWeave consumer evidence at exact consumer head |
|
Fresh LineageWeave consumer evidence on exact PR #983 head |
|
Fresh LineageWeave consumer evidence on exact PR #983 head |
|
Fresh LineageWeave consumer RED on |
|
Fresh LineageWeave consumer reproduction on exact |
|
Fresh LineageWeave immutable-consumer reproduction on PR #983 exact head |
|
Fresh immutable consumer reproduction from |
|
Fresh LineageWeave consumer reproduction on PR #983 exact head |
|
Fresh LineageWeave consumer reproduction after a test-only parent move:
The consumer change adds only |
|
Fresh LineageWeave consumer reproduction on exact PR #983 head |
|
LineageWeave current-head consumer reproduction for the central Dependency Review owner path. Exact consumer: Please keep the repair in canonical |
|
Fresh LineageWeave consumer reproduction on exact PR #983 head |
|
Fresh LineageWeave consumer evidence: exact head |
|
Fresh LineageWeave consumer reproduction for the central Dependency Review owner path.
This is therefore still the central support/admission defect rather than a LineageWeave scanner finding. LineageWeave will not add a leaf waiver, substitute scanner, synthetic receipt/status, or mutable owner-head dependency. Please preserve fail-closed behavior, complete #1725 on the canonical owner path, publish the protected immutable owner SHA, then consumers can pin/bump to that released contract. |
|
SOURCE WRITER CLAIM — bounded ordinary adoption of protected |
|
SOURCE WRITER RELEASE — ordinary non-force descendant |
Exact-head CodeQL RCARun 34685813268 is terminal FAILURE on unchanged head All other current-head required workflows are SUCCESS. This remains a central authenticated terminal-settlement defect under active owner |
Protected-main restack receipt — 2026-09-12Exact head The five new protected-main commits touched six paths disjoint from this PR's six Dependency Review owner paths. Git Data construction reproduced the locally merged tree byte-for-byte, then the ref advanced with Exact-tree verification: focused Dependency Review plus new protected-main contracts 22 passed; complete All predecessor hosted results are invalidated. Keep Draft until new exact-head checks are terminal and a qualifying independent approval exists. Source repair remains fail-closed and does not turn a consumer repository's HTTP 403 into authenticated Dependency Review evidence. |
|
Scheduled review-feedback autofix for this PR head.
|
Current authoritative execution receipt — 2026-09-12
f27c5cfa4a61679e6ebb109d9e5972bd8a4f650d; protected base:main@fb17ef556f94f673234aa557254ae52779e9a7b0; exact tree:edccae8e0d7426e1c2d7be7c13e71571c2c5d38c.git diff --checkPASS.Security owner outcome
This PR is the canonical
ContextualWisdomLab/.githubowner lane for the Dependency Review admission boundary. It now consolidates the valid security deltas from protected #1724 and predecessor diagnostic #1643 without weakening the pinned Dependency Review action or any sibling scanner.Three owner defects are repaired together:
contents: read+pull-requests: readpermission envelope that a called workflow cannot elevate itself;owner/namerepository identity before curl.Test-first and carryover lineage
The original #1725 RED/GREEN lineage remains intact for non-200 fail-closed behavior and caller permissions. Current successor commits add #1643's still-valid immutable-identity requirement test-first:
3736634f95bf132bbbe208ffc80103863fe3a7c1adds executable reusable-workflow regressions that require named/malformed revisions and malformed/dot-segment repository identities to fail before curl, while legalContextualWisdomLab/.githubreaches exactly one token-authenticated compare;b1e6263d9d9626b6cfd2046ce9147ab67867beecadds the corresponding reusable-workflow production validation;8b86c0d2c6b0186538db1ed263f7cb9d222f3ca1carries fix(security): validate immutable dependency-review identity on current main #1643's conflict-free bundledSecurity Scanidentity preflight onto the current owner tree without force-push or destructive rebase;ae128374a2e38e60ada8bf5e89a9c7a4137f864frecords the decisive A/B evidence and unified security invariants in canonical doctoring;58a0b4c8ecc3073a64bd91457101229a21f020d4adds a dedicated bundled-scan regression so the carried validation cannot silently disappear.The temporary #1643 canary itself is deliberately not part of this publishable successor.
Decisive A/B evidence from #1643
Exact-head canary run
33589436750, job100120235906, checked outa6a2759640e6aa1d1e1219e1cd7aacdeffef32c0and compared exact basebb14b014eee31e6abdb5d2fffbb805aa29420eacto that head forContextualWisdomLab/.github.404, curl exit0;contents: read+pull-requests: read: HTTP200, curl exit0.Therefore an anonymous response is not an availability authority. The least-privilege job token is the supported comparison boundary, and non-200 authenticated results remain fail-closed.
Historical protected-main relationship — 2026-09-07
Protected source/base is
main@c9052e607e5f3cc76e73207e7786b21500721b79; exact owner head is0bb8f7c06cb2ce291101e7014afe90bef0fe40c4. The direct ordinary adoption records predecessorc2e8ab0e535245f8f53801ad6a11e107fe492341and protected main as its two parents. The exact tree differs from main in only the six owner paths listed above. Reverse PR #1995 is closed and no longer participates in acceptance.Consumer evidence and release boundary
Before caller permission repair, immutable reusable-workflow consumers such as
ContextualWisdomLab/newsdom-api#784@1623977e6c37c78cb1a94a7a48c48f6d02cac86c(33622976911) andContextualWisdomLab/mightyETL#330@65efdf7b4064df5b9811c0403defb707e6efbc02(33623035969) terminatedstartup_failurewith zero jobs. After explicit caller permissions, fresh exact heads materialized Dependency Review runs in newsdom-api, mightyETL, scopeweave and Argos.After this PR reaches protected main through ordinary protection, consumers must pin the reusable workflow to that immutable protected-main SHA. No caller returns to
@main, a PR head, or another mutable owner ref.Exact-head gate
All predecessor check/review evidence is invalidated. The authoritative current-head materialization is the live tally in the receipt above; exact-head approval remains absent, and nonterminal/failed gates are not transferable. Keep Ready for independent review admission while ADR-0025 remains Proposed until this unchanged successor has terminal passing required checks, substantive-clean current reviews/threads, current base/mergeability, and ordinary protected admission.
Refs #810, #1150, #1643, #1724, #1728, #1731, #1734.