You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
EgressWeave must reject non-exact str subclasses before trusted HTTP-method normalization or comma-separated parsing can invoke subclass-controlled strip(), upper(), or split(). This is supported configuration integrity, not a Python-sandbox claim.
Current canonical reconstruction
Historical #129/#154/#161/#184/#196 remain TDD/review or superseded reconstruction history. The single live implementation owner is Draft PR #204 — security: reconstruct exact HTTP method strings on protected main.
Fresh exact lineage as of the current repository sweep:
security: reconstruct exact HTTP method strings on protected main #204 is 0 commits behind that protected base and carries only the unique method-string delta across CHANGELOG.md, docs/research/policy-configuration-integrity.md, src/egressweave/_policy_normalization.py, src/egressweave/policy.py, and tests/test_policy_method_value_integrity.py.
The live candidate requires exact built-in str values before per-entry normalization and before supported comma-separated parsing. Ordinary exact strings, trimming, uppercase canonicalization, RFC 9110 token validation, default/deny-all method sets, unconditional CONNECT denial, exact (hostname, port) authorization, and the already-protected scalar-integer boundary remain unchanged.
Exact-current-head evidence
On unchanged ab51ef1725bd20c898a3e3df82994b576e675e7b:
repository ci run 31597947375: completed success;
required SAST Semgrep run 31597947456: completed success;
required Security Scan run 31597947433: aggregate success, but job 94117979264 shows the actual immutable-pinned Dependency review step as skipped; this is explicitly non-passing supply-chain evidence under issue security: fail closed when dependency review is unavailable #76;
exact-head OpenCode workflow/check completed successfully, but model/check status is not promoted into qualifying approval or a substitute for a missing required security action;
formal reviews: none;
unresolved review threads: none.
The separately governed root-cause repair remains read-only ContextualWisdomLab/.github#897, exact head 59505c1d89eb7ea816e921b6da38079c736608c2, open / Ready / mergeable / unmerged at the latest refetch. EgressWeave must not fork that workflow locally, weaken the gate, invent credentials, or churn #204's clean source head merely to reproduce the same skipped result.
Acceptance criteria
Preserve immutable RED evidence for non-exact method entries and subclass-controlled comma-separated parsing.
Reject non-exact str before per-entry strip() / upper() and before supported outer split(",") paths in the live reconstruction source.
Integrate the separately governed central fail-closed Dependency Review repair (ContextualWisdomLab/.github#897 or a freshly verified successor) and obtain a fresh unchanged security: reconstruct exact HTTP method strings on protected main #204 Security Scan whose actual immutable-pinned Dependency review action executes and succeeds.
Require every other live organization-required workflow on the unchanged exact head to be genuinely passing; queued/skipped/neutral/backend-unavailable/wrapper-only/status/model/predecessor evidence does not pass by inference.
Obtain current semantic/source review with zero valid unresolved findings; formal approval is required only if the live ruleset actually requires it (the current observed rule requires zero approving reviews but does require thread resolution).
Immediately before integration refetch exact head, live base, ancestry, ruleset, every required workflow, reviews, findings, and threads; merge only the unchanged accepted tree.
Verify the exact method-policy contract from protected main before closing this issue.
Non-goals
No HTTP method allowlist redesign or authority widening.
No change to request-time case/canonicality rules.
No generalized Python sandbox or in-process code-containment claim.
No EgressWeave-local replacement for organization-owned Dependency Review or Strix governance.
Buyer-visible immutable method-policy value gap
EgressWeave must reject non-exact
strsubclasses before trusted HTTP-method normalization or comma-separated parsing can invoke subclass-controlledstrip(),upper(), orsplit(). This is supported configuration integrity, not a Python-sandbox claim.Current canonical reconstruction
Historical #129/#154/#161/#184/#196 remain TDD/review or superseded reconstruction history. The single live implementation owner is Draft PR #204 —
security: reconstruct exact HTTP method strings on protected main.Fresh exact lineage as of the current repository sweep:
main:7faf7a3b8a47980113982914000e724ab6a6cda5;632bb83bb2cfa86cbcb389ef8d544abaeb0403ef;5b62c18f3776860dee63db0c226f8be7c9d40bff(historical only; its checks/reviews do not transfer);ab51ef1725bd20c898a3e3df82994b576e675e7b;main7faf7a3b8a47980113982914000e724ab6a6cda5;CHANGELOG.md,docs/research/policy-configuration-integrity.md,src/egressweave/_policy_normalization.py,src/egressweave/policy.py, andtests/test_policy_method_value_integrity.py.The live candidate requires exact built-in
strvalues before per-entry normalization and before supported comma-separated parsing. Ordinary exact strings, trimming, uppercase canonicalization, RFC 9110 token validation, default/deny-all method sets, unconditionalCONNECTdenial, exact(hostname, port)authorization, and the already-protected scalar-integer boundary remain unchanged.Exact-current-head evidence
On unchanged
ab51ef1725bd20c898a3e3df82994b576e675e7b:cirun31597947375: completed success;31597947456: completed success;31597947433: aggregate success, but job94117979264shows the actual immutable-pinned Dependency review step asskipped; this is explicitly non-passing supply-chain evidence under issue security: fail closed when dependency review is unavailable #76;The separately governed root-cause repair remains read-only
ContextualWisdomLab/.github#897, exact head59505c1d89eb7ea816e921b6da38079c736608c2, open / Ready / mergeable / unmerged at the latest refetch. EgressWeave must not fork that workflow locally, weaken the gate, invent credentials, or churn #204's clean source head merely to reproduce the same skipped result.Acceptance criteria
strbefore per-entrystrip()/upper()and before supported outersplit(",")paths in the live reconstruction source.CONNECTdenial, and the protected scalar-integer boundary.ContextualWisdomLab/.github#897or a freshly verified successor) and obtain a fresh unchanged security: reconstruct exact HTTP method strings on protected main #204 Security Scan whose actual immutable-pinnedDependency reviewaction executes and succeeds.Non-goals