A filed injection finding reproduces once in five runs of the same uploaded file — is it a finding?
answer
- a rate over a chain names no link
- did it arrive, or was it ignored
- the window edge moves each turn
- inspect the assembled context, not the output
- one narrow defensible claim beats one broad rate
basics
~20 sIt can be, but not yet. First establish whether the span reached the model on the runs that worked and not on the others. Intermittent arrival is a plumbing result; intermittent obedience after arrival is a different result with a different owner.
solid answer
~50 sOne in five is a rate, not a verdict. The decisive question is which layer the variance lives in. If the span was in the context on all five runs and the model acted on it once, that is model-side variance and the finding is about an obeyed instruction. If the span was in the context once, the variance is placement: a truncation edge that moves because the surviving budget depends on everything else in that turn, a re-ingest that shifted cut points, an extraction path that differed between a digital file and a scanned one, or a retrieval path that returned a different chunk. Those are answerable by inspecting what actually entered the context, not by re-running the end-to-end output. Until that is done you have an unreproduced report; afterwards you usually have a real finding with a narrower claim than the one filed.
code
json · 11 lines[
{"run": "A", "extracted_chars": 812431, "window": "head+tail",
"kept_ranges": [[0, 60000], [752431, 812431]],
"span_offset": 58120, "span_in_window": true, "effect_observed": true,
"note": "[directive span elided]"},
{"run": "B", "extracted_chars": 812431, "window": "head+tail",
"kept_ranges": [[0, 41000], [771431, 812431]],
"span_offset": 58120, "span_in_window": false, "effect_observed": false,
"note": "head budget reduced; rest of turn's context was larger"}
]go deeper
Know that the same uploaded file does not always produce the same text in the model's context, so an inconsistent result is not automatically a mistake by the person who filed it.
Explain the concrete sources of run-to-run variance — a moving truncation edge, shifted cut points after re-ingest, a different extraction path, a different retrieved chunk — and which are arrival rather than model behaviour.
Show how you localise the variance from records of the assembled context and by varying one factor at a time, then state the narrower claim the evidence actually supports.
Own the adjudication: decide what gets filed, against which owner, and with what stated precondition, knowing a placement result is dated and a re-index can retire it without anyone touching the model.
## The mistake the rate invites "One in five" sounds like a property of the attack. It is usually a property of the measurement: five end-to-end runs, each of which conflates a chain of stages, scored on the final output. A rate over a chain tells you nothing about which link varied. The useful split is two questions, in order: 1. **Did the span enter the model's context on this run?** 2. **Given that it did, did the model act on it?** Almost every intermittent placement report resolves into one of these, and they are different findings with different owners and different remedies-in-principle. Reporting the compound rate as if it were the second question is how a report gets argued about for a week. ## What legitimately moves between runs of "the same file" The phrase hides more than it says. - **The truncation edge is not a constant.** The surviving window is whatever budget is left after the rest of that turn — system instructions, conversation history, other retrieved material, tool output. An offset sitting near the edge is inside it on a short turn and outside it on a long one. Nothing about the file changed. - **Re-ingest moves every cut point downstream of a change.** A splitter size change, a different unit, an added overlap, an upgraded extractor: any of these shift boundaries, and a span that used to sit inside one chunk now straddles two. - **The extraction path can differ for the same nominal document.** A digital file and a scanned copy of it produce different text — the second created by optical character recognition, with different offsets, different line breaks and occasional different characters. Same contract, different artefact. - **Retrieval returns what it ranks.** A slightly different question, an updated index, a changed top-k: a different chunk arrives, and the one holding the span does not. - **The model itself is probabilistic.** Even with identical context, generation varies. Only the last of these is model-side. The rest are arrival. ## How to localise it without re-running blindly The evidence that settles it is the context itself: what text was actually in front of the model on each run, and where the span sat in it. Any pipeline with a per-run record of the assembled context, the retrieved chunk identifiers, or the truncated ranges gives the answer directly. If no such record exists, the honest report says so, because the alternative is inferring a cause from an output — and an output that shows nothing is compatible with the span being absent, present-and-ignored, or removed by a scoring layer. A second lever is to vary one thing at a time: the same file with a short turn versus a long one isolates the moving edge; the digital original versus a scan isolates extraction; the same context assembled twice isolates model variance. ## What to write down A good adjudication produces a narrower claim than the filed one, and a defensible one: - **If arrival is the variable**: the construction works whenever the span is in the window, and the observed rate is the rate at which this file's offset lands inside it under this pipeline's load. That is a real finding about an obeyed instruction, with a stated precondition. It is also fragile in a specific way — an unrelated change to budgets or chunking changes the rate without anyone touching the model. - **If obedience is the variable**: the span reliably arrives and is followed sometimes. That is a finding about the model's handling of retrieved or uploaded text, and the rate is meaningful as reported. - **If neither can be established**: it is an unreproduced report. Saying so is not a dismissal; a construction that worked once against one deployment did work once against one deployment, and that is exactly the claim the evidence supports. ## Why this matters beyond one ticket The direction of inference is the whole skill here. A run where nothing happened proves that no effect was observed — not that a screening layer caught it, not that the model refused, not that the placement failed. A run where something happened proves the span reached the context, not that the store was compromised or that the file was mishandled. Triage that keeps those straight produces findings that survive review; triage that does not produces rates nobody can act on. And the practical consequence for a placement claim specifically: because the window edge and the cut points belong to the pipeline rather than the document, a placement result is dated. It describes one deployment on one day, and a re-index or a budget change retires it without notice.
- Why can the truncation edge move when the file has not changed?Because the surviving window is whatever budget remains after everything else in that turn — instructions, history, other retrieved material, tool output. A longer turn leaves a shorter window. An offset near the edge is therefore inside it sometimes and outside it other times, which produces an intermittent result from a completely deterministic placement.
- What does a run where nothing happened actually prove?That no effect was observed on that run. It is equally consistent with the span falling outside the window, its chunk not being retrieved, the extractor never emitting it, the model reading it and ignoring it, or a scoring layer removing it. Treating silence as evidence of any one of those is the most common inference error in this kind of triage.
- How would you separate arrival from obedience with one experiment?Hold the assembled context fixed and run it repeatedly. If the span is provably in that context on every run and the behaviour still varies, the variance is model-side. If you cannot hold the context fixed, vary one upstream factor at a time — turn length for the window edge, digital original versus scan for extraction — rather than re-running the whole chain and counting.
- What should the report say if the pipeline keeps no per-run record of the context?That the cause could not be localised, and why. The claim then rests on what was observed: the construction produced the behaviour once against this deployment. That is narrower than a rate and it is defensible, whereas an asserted one-in-five with no evidence about arrival invites a reviewer to reject the whole report.
saying these in an interview costs you the question
- Reports the end-to-end rate as a property of the attack
- Assumes the same file always yields the same context
- Reads a run with no effect as proof of a block
- Dismisses an intermittent result as non-reproducible without localising it
- Treats a placement result as durable across a re-index