Skip to content

fix(security): restack inherited outbound body guard on current main - #297

Closed
seonghobae wants to merge 1 commit into
mainfrom
fix/outbound-request-body-inheritance-e60eff
Closed

fix(security): restack inherited outbound body guard on current main#297
seonghobae wants to merge 1 commit into
mainfrom
fix/outbound-request-body-inheritance-e60eff

Conversation

@seonghobae

Copy link
Copy Markdown
Contributor

Purpose

Create a clean current-protected-main successor for #276. Its predecessor exact head had terminal-success application ci, reviewer-ci, and central Security Scan, but protected main has since advanced by 24 commits relative to that lineage. Those predecessor results therefore do not authorize integration against the current live base.

This successor preserves only the reviewed credential-egress request-body inheritance fix and its focused regressions.

Exact construction identity

  • protected main immediately before construction: e60eff4c71dc4997b9990a79daa5069d6f5e2037;
  • predecessor fix(security): preserve inherited body in outbound policy #276 exact unchanged head: a8658f034adfcc71c7e0af651f319dd651ed5603;
  • predecessor comparison to current main: diverged, 5 commits ahead / 24 behind, merge base 4573a6f7eaf904e19a6e3198c8cabcfd4be40c40;
  • successor exact head: 02f348572987ce83aaf5a1cf9d408e316fd7571f;
  • successor tree: a60fa6d74f90e9f4f13220eb8c5a83c96ee16d5e;
  • successor ancestry: exactly one commit on current protected main, 1 ahead / 0 behind, merge base exactly e60eff4c71dc4997b9990a79daa5069d6f5e2037;
  • scope: exactly three paths: src/outbound-fetch-policy.ts, new test/outbound-request-body-inheritance.test.ts, and test/outbound-request-compartment.test.ts.

Security defect and GREEN behavior

A body-bearing source Request can be supplied together with RequestInit.body: null or explicit undefined. Fetch semantics do not make those overrides a safe proof that the inherited source body disappeared. The credential-egress policy must evaluate the effective body-bearing request rather than authorize a bodyless shape that the actual request does not have.

The successor keeps the reviewed correction:

  • only a non-null/non-undefined RequestInit.body is treated as an explicit body;
  • otherwise body detection falls back to the source Request.body;
  • body-bearing OIDC metadata requests remain blocked before the injected raw fetch;
  • the stale compartment expectation that body: null cleared an inherited body is corrected;
  • focused tests cover both null and explicit undefined overrides and require blocked-request-policy with zero raw-fetch calls.

#276 had zero formal reviews and zero inline review threads at the latest pre-write refetch.

Evidence boundary

No predecessor CI, coverage, scanner, review, model, release, or deployment evidence transfers. Keep Draft until this unchanged exact successor 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, exact central .github Security Scan authority, reviews, threads, and active-writer state. Current live Noema policy requires the central Security Scan workflow and does not currently require a formal independent approval; no synthetic approval gate is imposed.

No outbound allowlist expansion, request-shape relaxation, dependency change, repair/self-modifying workflow, policy waiver, release, deployment, invented evidence, or outbound-license decision is introduced.

Supersedes #276 only after fresh exact-head verification.

@coderabbitai

coderabbitai Bot commented Aug 14, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 7a193983-216c-46a7-b5ff-f9f981915223

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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