Two components each passed review alone; one now launders text into the other. How do you scope the reachable effect?
answer
- union, not intersection
- one reads, the other acts
- connectivity is not integrity
- each review saw one component, never the pair
- it worked once, against one deployment
basics
~20 sScope it as the union, not the intersection: whatever the reading component reaches is now reachable by content the emitting component read. Each review measured one component's blast radius; neither measured the pair, and internal provenance measured nothing at all.
solid answer
~50 sThe number that matters is the union of the two components' privileges in one session. The upstream component's exposure was *what it can read*; the downstream component's was *what it can do*. Laundering joins them: attacker-influenced prose now reaches a reader that acts at its own authority, so the reachable effect set is everything the downstream component can touch, driven by anything the upstream one is willing to restate. The wrong scoping — and it is the standard one — is `that sub-component only talks to our own orchestrator`. That answers a connectivity question. Connectivity constrains who can send; it says nothing about integrity, which is whether the content was influenced by someone who should have had no say. Each review approved one capability on its own merits; neither had the pair in front of it. Also be careful about direction: the downstream component acting proves the span reached its context, not that anything upstream was compromised.
go deeper
Know that two capabilities approved separately can combine, and that an internal sender being trusted says nothing about whether the words it is passing along came from outside.
Be able to explain why the reachable effect is the union: the emitting component supplies the entry surface, the reading component supplies the capabilities, and the hop joins them within one session.
Show that you can write this finding up: enumerate the reader's capabilities, trace which are steerable from the prose member, state the union, and record reliability and deployment honestly rather than as a single confident claim.
Own the observation that composition is what no single-capability review has in scope, and be ready to say what class of change moves the property rather than which wording somebody should adjust.
## What you have been handed A finding lands: attacker-influenced prose reached a downstream component through the free-text member of an otherwise typed handoff, and the downstream component acted on it. Both components had been reviewed. Both approvals were, individually, sound. Your job is to say how large this is. ## The union, not the intersection The blast radius of a laundered injection is the **union** of the two components' privileges, exercised in one session. - The upstream component's own exposure was its **read** surface: whatever material it ingests, which by design includes content from outside. - The downstream component's own exposure was its **act** surface: whatever it can write, call, file, assign or spend. Separately, each is bounded and each is defensible: a reader that cannot act is a limited problem, and an actor that only ever receives clean input is a limited problem. The laundering hop composes them. After it, content from the upstream reader's world can drive the downstream actor's capabilities. The reachable effect is therefore everything the downstream component can reach — and the entry point is everything the upstream component will read and restate. People reach instinctively for the intersection (*what do they have in common?*) or for the weaker of the two (*but the vendor component can't do anything*). Both understate it. The right question is: for each capability the reader holds, is there a path from something an outsider can write to a call that exercises it? ## The wrong answer, stated plainly > *That sub-component only talks to our own orchestrator.* This is offered as a mitigation and it is a category error. It is a statement about **connectivity** — about which processes may send to which. Connectivity bounds the *sender set*. It cannot bound the *content set*, because a member of the sender set is restating text an outsider composed. Internal provenance is not integrity. The same error appears in other clothes: *it is behind the boundary*, *it is our own service account*, *the traffic never leaves the VPC*. All of them describe topology. None of them describes what is in the message. ## What each review actually measured When a capability is approved on its own, what is being assessed is the effect of that capability given the inputs it was expected to see. That is a real assessment and it is usually correct. What it structurally cannot cover is a *pair*: the reviewer of the reading component was not asked what happens when its output steers an actor, and the reviewer of the acting component was not asked what its input would be if the writer were restating outside material. Composition is the property nobody's review had in scope, which is exactly why this class of finding survives a process where every individual approval was reasonable. Say this in the triage rather than implying that somebody was careless. It sharpens the finding: the defect is at the hop where the trust label changes hands, and it is invisible from either component's own review. ## Getting the directions right Several claims here are easy to state backwards, and an interviewer will listen for it: - The downstream component acting proves the span **reached its context**. It does not prove the upstream component was compromised, or that any store was breached. - A successful reproduction proves the construction worked **once, against one deployment**. With a probabilistic reader that is not the same as a reliable capability. - An audit record showing the call proves **which call ran under which authority**. It does not record who chose the argument values. - The absence of an alert proves nothing was **flagged**, not that nothing happened; no screen was watching that hop. ## Scoping method A workable procedure for the write-up: 1. Enumerate the reading component's capabilities — everything it can call, with what authority. 2. For each, ask whether an argument or a decision could be steered by prose in the handoff's free-text member. 3. Enumerate what the emitting component will ingest, and from whom. That is the entry surface. 4. State the union: entry surface in, capability set out, in one session. 5. Record the reliability honestly — how many attempts, against which deployment, and whether either side has shipped since. ## What not to claim Do not report the union as *the attacker has full control of the downstream component*. They have influence over text the component reads, which is a probabilistic lever on a capable actor, not a shell. The distinction matters to whoever prices the response, and overstating it is how a real finding gets argued down.
- The owner says the downstream component can only file tickets, so the impact is low. How do you respond?By scoping what filing reaches. A ticket that another automation consumes, a queue that grants access, or a field a human acts on without re-reading the source are all downstream of that one capability. The question is not how the call is named but what its effect set is, and that is usually larger than the verb suggests.
- How does the reliability of the reproduction change the scope you report?It changes confidence, not the effect set. The union describes what is reachable if the construction lands; the hit rate describes how often it lands against the deployment you tested. Report both separately, because collapsing them either inflates a one-in-five result into a capability or dismisses a real path as noise.
- Both components belong to different organisations. What does that change about the scope you can establish?You can usually only observe one side. You see what your component received and what it did; the emitting side's input, its prompt and its model may be opaque, and either can change without notice. State plainly which half of the union you measured and which half you inferred, rather than presenting the whole chain as verified.
Two keys were each issued after a review: one opens the mailroom, the other opens the safe. Nobody reviewed the moment the mailroom clerk began reading instructions out of the post to the person holding the safe key.
saying these in an interview costs you the question
- Scopes the impact to the weaker component alone
- Offers only talks to our own orchestrator as a mitigation
- Treats internal provenance as an integrity property
- Claims the upstream component was compromised
- Reports a single reproduction as a reliable capability
- Blames the individual reviews rather than composition