← Latest papers
💻 computer science

Enhancing Symbolic Execution of Programs for Interprocedural Control Flow Path Feasibility Analysis

This paper proposes a directed symbolic execution method enhanced with automatic symbolization and loop-bounding strategies to efficiently verify interprocedural control flow path feasibility, demonstrating superior recall and precision compared to existing tools like KLEEF when applied to real-world projects and static analysis integration.

Original authors: Hovhannes Movsisyan, Hripsime Hovhannisyan, Tigran Avagyan, Hayk Aslanyan

Published 2026-07-08
📖 5 min read🧠 Deep dive

Original authors: Hovhannes Movsisyan, Hripsime Hovhannisyan, Tigran Avagyan, Hayk Aslanyan

Original paper licensed under CC BY 4.0 (https://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

Imagine you are a detective trying to solve a crime in a massive, multi-story building (the computer program). Your job is to check if a specific route the police report says a suspect took is actually possible.

The police report (the "static analyzer") says: "The suspect went from the lobby, up the stairs, through the kitchen, and then jumped out the window."

However, looking at the blueprints, you realize that the stairs don't connect to the kitchen, or the window is painted shut. The police report was a "false alarm"—a path that looks possible on paper but is physically impossible in reality.

This paper introduces a new, smarter way for detectives to check these routes without getting overwhelmed by the sheer size of the building. Here is how it works, using simple analogies:

1. The Problem: The "Path Explosion"

Traditional detective work tries to check every single possible path in the building to see if the suspect could have gone anywhere. In a huge building with thousands of rooms and endless hallways, this takes forever. The detective gets lost in the sheer number of possibilities (a problem called "path explosion") and runs out of energy (computer resources) before finding the answer.

2. The Solution: "Directed" Detective Work

The authors propose a method called Directed Symbolic Execution. Instead of wandering aimlessly, the detective is given a specific map of the route they need to verify.

  • The Trick: If the map says the suspect went Left, the detective ignores all the "Right" turns. They only follow the specific path in question, cutting out all the dead ends and irrelevant rooms. This makes the job much faster.

3. Handling the "Unknowns" (Automatic Symbolization)

In real life, a detective might encounter a room where the furniture hasn't been moved in yet, or a door with a lock they don't have the key to. In computer programs, these are "unknown values" (like variables that haven't been set yet).

  • The Old Way: The detective would stop and say, "I can't proceed because I don't know what's in this room."
  • The New Way: The detective says, "Okay, let's pretend this room could contain anything." They treat the unknown as a "mystery box" that can be filled with any value needed to make the path work.
  • The Magic: The paper teaches the detective how to automatically handle these mystery boxes, including:
    • Uninitialized variables: Empty rooms.
    • External functions: Doors controlled by a neighbor (a different program) that the detective can't see inside.
    • Pointers: A note that says "Go to the room number written on this piece of paper." The detective learns to follow the note even if the number changes.

4. The Infinite Hallway Problem (Loop Bounding)

Imagine a hallway that loops around in a circle. If the suspect keeps walking, they could theoretically walk forever.

  • The Problem: If the detective tries to simulate every single step of an infinite loop, they will never finish.
  • The Solution: The detective sets a rule: "I will walk around this loop no more than 4 times." If the loop is still going after 4 times, the detective forces the suspect to exit the loop and continue down the main path.
  • Why it works: This prevents the detective from getting stuck in an endless circle, allowing them to finish the investigation of the specific route, even if it means skipping some very long, repetitive steps.

5. The Results: Catching the Liars

The authors tested their new detective method on real-world software (like the GNU Coreutils, which are the basic tools on a computer) and a famous test suite called "Juliet."

  • Accuracy: They found that their method correctly identified 95.3% of the paths that were actually possible.
  • Cleaning up False Alarms: When they used this method to double-check the work of other security tools (like MLH, Infer, and Clang), it was a game-changer.
    • One tool (MLH) was reporting 666 false alarms. The new method filtered them all out, leaving zero false alarms while keeping all the real bugs.
    • Another tool (KLEEF) actually made things worse when trying to check these paths, crashing or missing almost all the real bugs. The new method stayed strong and accurate.

Summary

Think of this paper as a new set of instructions for a robot detective. Instead of trying to explore the entire universe of possibilities, the robot:

  1. Focuses only on the specific path it needs to check.
  2. Imagines possibilities for anything it doesn't know about (like empty rooms or mystery locks).
  3. Forces itself to stop walking in circles if a hallway goes on too long.

The result is a system that is much better at telling the difference between a real security threat and a fake one, without getting tired or confused.

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 →