Buyer-visible supply-chain gate gap
EgressWeave exact-head evidence proves a fail-open dependency-review path: the dependency comparison can be unavailable while the immutable-pinned actions/dependency-review-action step is skipped and the aggregate Security Scan still appears green. For this public-repository canary, unavailable or indeterminate dependency-diff evidence is non-passing, not an inferred clean/not-applicable result.
This is an assurance/control-plane defect, not evidence that a particular EgressWeave PR introduced a vulnerable dependency. OSV, Trivy, Scorecard, CodeQL/GHAS, Semgrep, Secret Scan, Dependabot and model reviewers remain separate controls and are not semantic substitutes for Dependency Review.
Current read-only central owner / exact identity
The organization-owned repair remains ContextualWisdomLab/.github#897 — fix(security): fail closed on unavailable dependency review.
Fresh read-only state:
- protected central
main: 6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba;
- #897 exact current head:
714a19818ff35cce246b6b59b9d3969783037cb0;
- #897 is open / Ready / unmerged;
- current formal reviews on #897: none;
- exact-head checks are mixed rather than uniformly passing: deterministic checks including
coverage-evidence and opencode-review completed successfully, while current GHAS/code-scanning evidence includes neutral/skipped results. Those states are not promoted to passing under EgressWeave evidence policy.
Historical #897 heads, including 71947d..., 8fc17de..., and 59505c1..., remain RCA/TDD/check history only. Their checks or review state do not transfer to 714a198....
Root cause and selected central remedy
The original security gate modeled a hard evidence boundary as an optional capability probe. An unavailable/non-success comparison could therefore set support false, skip the pinned action, and still leave a false-green wrapper.
The accepted repair semantics remain:
- require the support probe's transport operation itself to succeed and require exact HTTP
200 before the pinned Dependency Review action may run;
- fail closed on non-200, malformed/empty status, transport/TLS/timeout/partial-transfer failure, or any indeterminate result;
- discard the untrusted response body and use finite connection/total timeouts;
- bind source checkout and comparison to explicit immutable PR/base/head identities;
- keep read-only/least-privilege permissions and immutable third-party action pins; and
- preserve a negative control where a probe reports
200 but the transport command exits nonzero and therefore must still fail closed.
No EgressWeave-local workflow fork, substitute scanner, extra credential, OIDC/model authority, publisher, branch mutation, release authority, or weakened gate is an acceptable remedy.
EgressWeave acceptance impact
Current EgressWeave PRs whose Security Scan wrapper is green while the actual pinned Dependency review step is skipped remain non-passing for this gate. Do not merge them on wrapper-green evidence and do not churn clean heads merely to recreate the same skipped result.
After #897, or a freshly verified successor preserving the same semantics, reaches protected central main, every otherwise accepted unchanged EgressWeave candidate must receive a fresh Security Scan bound to its exact current head and live-base context. Acceptance requires the real immutable-pinned Dependency review action itself to execute and succeed; predecessor, wrapper-only, support-only, queued, skipped, cancelled, neutral, stale, or synthetic evidence does not transfer.
Acceptance criteria
Required semantics
403, 404, malformed/empty status, nonzero transport exit even with stdout 200, timeout, partial transfer, TLS failure, or unexpected probe state is unavailable security evidence and must fail closed. Do not infer not-applicable from an unavailable support probe. Keep Dependency Review evidence separate from all other scanners and reviewers, preserve complete pagination where APIs enumerate state, and retain stale-head refusal, fork/read-only safety, least privilege, and immutable source identity.
Trust boundary / non-goals
The repair belongs to the organization-owned read-only security gate. EgressWeave must not create a competing central workflow, publisher, model-modified publication path, extra write authority, release/tag/package path, or local fail-open workaround. No dependency/package-version change is implied by this issue.
Primary references (APA 7th)
GitHub. (n.d.). Dependency review. GitHub Docs. Retrieved August 7, 2026.
GitHub. (n.d.). REST API endpoints for dependency review. GitHub Docs. Retrieved August 7, 2026.
GitHub. (n.d.). Customizing your dependency review action configuration. GitHub Docs. Retrieved August 7, 2026.
Buyer-visible supply-chain gate gap
EgressWeave exact-head evidence proves a fail-open dependency-review path: the dependency comparison can be unavailable while the immutable-pinned
actions/dependency-review-actionstep is skipped and the aggregateSecurity Scanstill appears green. For this public-repository canary, unavailable or indeterminate dependency-diff evidence is non-passing, not an inferred clean/not-applicable result.This is an assurance/control-plane defect, not evidence that a particular EgressWeave PR introduced a vulnerable dependency. OSV, Trivy, Scorecard, CodeQL/GHAS, Semgrep, Secret Scan, Dependabot and model reviewers remain separate controls and are not semantic substitutes for Dependency Review.
Current read-only central owner / exact identity
The organization-owned repair remains
ContextualWisdomLab/.github#897—fix(security): fail closed on unavailable dependency review.Fresh read-only state:
main:6eb06cdd08c79a06f7b390069d4ffa49e2eb7dba;714a19818ff35cce246b6b59b9d3969783037cb0;coverage-evidenceandopencode-reviewcompleted successfully, while current GHAS/code-scanning evidence includes neutral/skipped results. Those states are not promoted to passing under EgressWeave evidence policy.Historical #897 heads, including
71947d...,8fc17de..., and59505c1..., remain RCA/TDD/check history only. Their checks or review state do not transfer to714a198....Root cause and selected central remedy
The original security gate modeled a hard evidence boundary as an optional capability probe. An unavailable/non-success comparison could therefore set support false, skip the pinned action, and still leave a false-green wrapper.
The accepted repair semantics remain:
200before the pinned Dependency Review action may run;200but the transport command exits nonzero and therefore must still fail closed.No EgressWeave-local workflow fork, substitute scanner, extra credential, OIDC/model authority, publisher, branch mutation, release authority, or weakened gate is an acceptable remedy.
EgressWeave acceptance impact
Current EgressWeave PRs whose Security Scan wrapper is green while the actual pinned
Dependency reviewstep is skipped remain non-passing for this gate. Do not merge them on wrapper-green evidence and do not churn clean heads merely to recreate the same skipped result.After #897, or a freshly verified successor preserving the same semantics, reaches protected central
main, every otherwise accepted unchanged EgressWeave candidate must receive a fresh Security Scan bound to its exact current head and live-base context. Acceptance requires the real immutable-pinnedDependency reviewaction itself to execute and succeed; predecessor, wrapper-only, support-only, queued, skipped, cancelled, neutral, stale, or synthetic evidence does not transfer.Acceptance criteria
200.200negative control.714a19818ff35cce246b6b59b9d3969783037cb0without treating neutral/skipped/failed/stale evidence as passing.mainwithout bypass.Required semantics
403,404, malformed/empty status, nonzero transport exit even with stdout200, timeout, partial transfer, TLS failure, or unexpected probe state is unavailable security evidence and must fail closed. Do not infernot-applicablefrom an unavailable support probe. Keep Dependency Review evidence separate from all other scanners and reviewers, preserve complete pagination where APIs enumerate state, and retain stale-head refusal, fork/read-only safety, least privilege, and immutable source identity.Trust boundary / non-goals
The repair belongs to the organization-owned read-only security gate. EgressWeave must not create a competing central workflow, publisher, model-modified publication path, extra write authority, release/tag/package path, or local fail-open workaround. No dependency/package-version change is implied by this issue.
Primary references (APA 7th)
GitHub. (n.d.). Dependency review. GitHub Docs. Retrieved August 7, 2026.
GitHub. (n.d.). REST API endpoints for dependency review. GitHub Docs. Retrieved August 7, 2026.
GitHub. (n.d.). Customizing your dependency review action configuration. GitHub Docs. Retrieved August 7, 2026.