Skip to content

fix(security): restack inherited outbound body guard on latest main - #299

Closed
seonghobae wants to merge 3 commits into
mainfrom
fix/outbound-request-body-inheritance-7a62f6
Closed

fix(security): restack inherited outbound body guard on latest main#299
seonghobae wants to merge 3 commits into
mainfrom
fix/outbound-request-body-inheritance-7a62f6

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Purpose

Create a clean successor for #297 on the current protected-main lineage after #292 advanced main and caused #297 application CI to fail closed at the live-base drift guard. This successor preserves only the credential-egress inherited-request-body correction and its focused regressions. It does not rewrite, force-push, or mutate the predecessor branch.

Exact construction identity

  • protected main immediately before construction and PR creation: 7a62f6ddfc2b435ceab84a954714b97a9534161c;
  • predecessor fix(security): restack inherited outbound body guard on current main #297 exact unchanged head: 02f348572987ce83aaf5a1cf9d408e316fd7571f;
  • predecessor fix(security): restack inherited outbound body guard on current main #297 application CI 31794644424 failed only at verify live pull-request base before lockfile control; checkout, exact-head verification, and package-manager verification had already succeeded, while later install/release verification was skipped;
  • predecessor reviewer-ci and protected-base-eligible central Security Scan were terminal success but remain predecessor evidence only;
  • successor exact head at creation: 6a8ddf172b4bbf0b7d620a4b9269ee9fe24f792e;
  • successor ancestry: 3 commits directly on current protected main, 3 ahead / 0 behind, merge base exactly 7a62f6ddfc2b435ceab84a954714b97a9534161c;
  • successor scope: exactly three paths: src/outbound-fetch-policy.ts, new test/outbound-request-body-inheritance.test.ts, and test/outbound-request-compartment.test.ts.

The protected-main movement between #297's base and this successor consists of the #292 patch-quarantine slice and does not overlap these three paths. The successor source and focused test blobs are byte-identical to the reviewed #297 GREEN blobs; all unrelated bytes come from current protected main.

Security defect and GREEN behavior

A body-bearing source Request can be supplied with RequestInit.body: null or explicit undefined. Those overrides are not sufficient evidence that the inherited source body disappears for the effective Fetch request. The credential-egress policy therefore treats only a non-null/non-undefined RequestInit.body as an explicit body and otherwise falls back to the source Request.body.

Focused regressions require both null and explicit undefined overrides on a body-bearing OIDC metadata request to fail with blocked-request-policy before any raw network call. The stale compartment expectation that body: null cleared an inherited body is corrected. No outbound destination or method allowlist is broadened.

Evidence boundary

No CI, coverage, scanner, review, model, release, deployment, or predecessor evidence transfers. Keep this successor Draft until this unchanged exact head has fresh terminal-success application ci, reviewer-ci, protected-base-eligible central Security Scan, exact 100% owned production statement/branch/function/line coverage with realistic tests, and zero valid unresolved findings.

Immediately before Ready or merge, independently re-resolve protected main, exact head/ref/ancestry, workflow checkout SHAs, live rulesets, the exact central .github Security Scan revision/triggers/base filters/thresholds, formal reviews, unresolved threads, and active-writer state. Current observable live Noema policy enforces the central Security Scan workflow and does not currently impose an independent formal-approval rule; no synthetic approval requirement is introduced.

This change does not weaken gates, create a repair/self-modifying workflow, invent authority/evidence, publish or deploy, or select an outbound license.

Supersedes #297 only after fresh exact-head verification and protected integration.

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