ART OF VECTOR

RCE + Deserialization

Why untrusted deserialization becomes remote code execution.

The research object is the path from untrusted bytes to a sink that already knows how to run code. Public 2026 inference-stack advisories sit in this class. This page does not reconstruct them.
  1. → Untrusted Input
  2. ↓ Deserializer
  3. ↓ Object Construction
  4. ↓ Dangerous Gadget / Sink
  5. ↓ Code Execution

If any box is missing, you usually have a crash or a data bug — not RCE. Notes in this program fill the boxes with function names from public trees after validation, then stop at mitigation.

Notes

FAQ

Questions

What is untrusted deserialization?
Decoding a rich object format from bytes the caller controls, using a format that can encode behavior — for example Python pickle or similar construction plans — instead of inert data.
When is deserialization actually remote code execution?
Only when three facts hold: the input is attacker-controlled, the deserializer can instantiate types that perform work, and those types exist in the runtime. Missing one usually yields a crash or a data bug.