Control / Data Channel Confusion¶
Core Idea¶
A receiver interprets content meant to be inert data as if it were authoritative instructions, because the protocol does not enforce a structural separation between the two. The boundary is marked by content cues the parser re-inspects rather than by construction it cannot be tricked into crossing — so an adversary crafts data to be re-parsed as control. The historical name is in-band signalling.
How would you explain it like I'm…
Words Pretending To Be Orders
Sneaky Data Faking Commands
In-Band Signalling Trap
Broad Use¶
- SQL injection: a query parser conflates template with input —
'; DROP TABLE users; --is parsed as additional SQL. - Command injection: a shell conflates command and argument — a filename containing
; rm -rf /becomes a second command. - Cross-site scripting: a browser conflates markup with content — input containing
<script>becomes executable code. - Return-oriented programming: the CPU conflates code and data on the stack, reading attacker content as return addresses.
- Prompt injection: a language model conflates retrieved content with system instructions, obeying "ignore your previous instructions."
- Organizational forgery: a forged memo on letterhead is treated as valid authorization because instruction-shaped artifacts are read as control.
Clarity¶
Replaces a long list of substrate-specific vulnerabilities with one structural diagnosis, and exposes the category error: trying to detect bad content when the problem is the absence of channel separation.
Manages Complexity¶
Collapses many vulnerability classes into one frame with one intervention family — separate by structure, not by content inspection — so a designer recognizes which structural mechanism a substrate affords rather than re-deriving a defense for each.
Abstract Reasoning¶
The conditional probability that crafted data is read as control is strictly positive under content separation and driven toward certainty by adversarial search, while structural separation makes it zero by construction — the diagnostic is "separation by construction or by convention?"
Knowledge Transfer¶
- Databases → shells → browsers: prepared statements, argument arrays, and text-only DOM APIs are the same structural move in different costumes.
- Security → LLM safety: demoting retrieved content to a sealed role and granting tool capabilities explicitly is the prepared-statement pattern for models.
- Engineering → institutions: signed authorizations carrying a verifiable authority chain are the same fix as parameter binding, replacing inspectable shape with construction.
Example¶
SQL injection relocates the boundary into the content: a concatenated query lets a quote close the literal so everything after is re-parsed as SQL, while a prepared statement compiles the template before binding so no input can be read as command.
Relationships to Other Primes¶
Parents (2) — more general patterns this builds on
- Control / Data Channel Confusion is a kind of Untrusted Input Execution — child of emergent untrusted_input_execution
- Control / Data Channel Confusion presupposes, typical Interface — An in-band-signalling FLAW of a contracted boundary where control and data share a substrate; presupposes an interface (the meeting point) whose control/data separation is marked by content not construction. Tentative parent — the prime is largely foundational/structural.
Path to root: Control / Data Channel Confusion → Untrusted Input Execution
Not to Be Confused With¶
- Control / Data Channel Confusion is not Form and Content because form-and-content is the general distinction between an expression's shape and meaning, whereas this adds an adversary plus a parser that mis-classifies crafted content as control.
- Control / Data Channel Confusion is not Multiplexing because multiplexing is deliberate, well-defined sharing with a reliable demultiplexing scheme, whereas this is the failure of demultiplexing under adversarial input.
- Control / Data Channel Confusion is not Interface because an interface is the general notion of a contracted boundary, whereas this is the specific way the control/data boundary fails when enforced conventionally rather than structurally.