← Latest papers
💻 computer science

Veritas: A Semantically Grounded Agentic Framework for Memory Corruption Vulnerability Detection in Binaries

Veritas is a semantically grounded, multi-agent framework that combines static analysis of lifted LLVM IR, dual-view LLM reasoning, and runtime validation to achieve high-recall, low-false-positive detection of memory corruption vulnerabilities in stripped binaries, successfully identifying a previously unknown Apple vulnerability.

Original authors: Xinran Zheng, Alfredo Pesoli, Marco Valleri, Suman Jana, Lorenzo Cavallaro

Published 2026-05-15
📖 5 min read🧠 Deep dive

Original authors: Xinran Zheng, Alfredo Pesoli, Marco Valleri, Suman Jana, Lorenzo Cavallaro

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

The Big Problem: The "Lost Translation"

Imagine you have a complex machine (a computer program) that was built in a factory. The factory keeps the original blueprints (the source code), but the machine you actually receive is a stripped-down, black-box version (the binary) with all the labels, instructions, and diagrams removed.

Security experts need to find "memory corruption" bugs in these black boxes. These are like hidden cracks in the machine's foundation that allow a hacker to break in.

The problem is that without the blueprints, it's incredibly hard to see how a small part of the machine (like a button you press) connects to a dangerous part (like a pressure valve) miles away inside the box.

The Old Way: Guessing with AI

Recently, people started using powerful AI (Large Language Models) to look at these black boxes. The AI is smart; it can read the machine's "gibberish" code and try to guess where the cracks are.

However, the paper argues that the AI is like a detective who only has a blurry photo. The AI can see shapes, but it can't be sure if a line connects to a pipe or a wire. Because the "photo" (the binary code) is missing crucial details, the AI often:

  1. Misses real cracks (False Negatives).
  2. Thinks safe spots are cracks (False Positives).

The Solution: Veritas (The "Truth-Seeker")

The authors built a new system called Veritas. Instead of letting the AI guess freely, Veritas acts like a three-step investigation team that forces the AI to stick to the facts.

Think of Veritas as a team of three specialists working together:

Step 1: The Mapmaker (The Slicer)

Before the AI looks at anything, a specialized tool (the Slicer) scans the black box. It doesn't use AI; it uses strict math to draw a precise map.

  • The Analogy: Imagine the machine is a giant city. The Slicer ignores 99% of the city (the safe parts) and draws a single, thin line connecting the "Entrance" (where data comes in) to the "Danger Zone" (where data is used).
  • The Result: It gives the AI a tiny, focused path to investigate, rather than the whole messy city. This path is backed by "witnesses" (proof that the data actually travels this way).

Step 2: The Detective (The Dual-View Detector)

Now, the AI (the Detective) looks at the path the Mapmaker drew. But here is the trick: The AI looks at the path through two different pairs of glasses.

  • Glasses A (Decompiled Code): This looks like readable English sentences. It helps the AI understand the story of what's happening.
  • Glasses B (LLVM IR): This looks like raw, technical blueprints. It helps the AI see the exact math and memory addresses.
  • The Analogy: If the AI is confused about a specific street sign, it switches to the technical blueprints to see exactly where the road goes. This prevents the AI from making up stories that don't fit the math.

Step 3: The Forensic Tester (The Validator)

The AI might say, "I think there is a crack here!" But Veritas doesn't just take its word for it. A third agent (the Validator) goes out and physically tests the machine.

  • The Analogy: The AI is the witness in court saying, "I saw a crack." The Validator is the judge who says, "Show me." The Validator runs the machine with a special tool (a debugger) to see if the machine actually breaks when the AI says it should.
  • The Result: If the machine doesn't break, the "crack" is dismissed. If it does break, the bug is confirmed.

Why This Matters (The Results)

The authors tested Veritas on real-world software that had been stripped of its labels.

  • Success Rate: Veritas found 90% of the real bugs.
  • Accuracy: It had almost zero false alarms. When it said a bug existed, it was almost always true.
  • Real-World Win: In a separate test, Veritas found a brand-new, unknown bug (a "0-day") in Apple's software that no one knew about. They reported it, and Apple confirmed it and gave it a security ID (CVE).

The Bottom Line

The paper argues that you can't just rely on a smart AI to find bugs in complex, stripped-down software. The AI needs grounding.

  • Without Grounding: The AI is like a dreamer, imagining things that might not be there.
  • With Veritas: The AI is a scientist. It is given a specific path to check (by the Mapmaker), it checks the details with two different tools (the Detective), and it proves its findings with a physical test (the Validator).

By combining strict math, smart AI, and real-world testing, Veritas makes finding dangerous software bugs much more reliable and accurate.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →