PUFFERDOS: Efficient and Effective Attack String Generation for Regular Expression Denial of Service Vulnerabilities
This paper introduces PUFFERDOS, a novel tool that generates practical and effective ReDoS attack strings by synthesizing inputs based on three formally verified vulnerable patterns and refining them through compositional concolic execution to ensure real-world exploitability within realistic length budgets.
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
Imagine you have a very smart, but slightly obsessive, security guard at the door of a building. This guard's job is to check if your ID card (the input) matches a specific pattern (the regular expression, or "regex"). Usually, this is fast and easy.
But, there's a trick. If you give the guard a very specific, confusing ID card, their brain gets stuck in a loop. They start checking every single possible way your ID could match the pattern, over and over again, until they run out of energy and pass out. This is called a ReDoS attack (Regular Expression Denial of Service). It's like tricking a calculator into doing math forever so it freezes.
For a long time, security researchers have tried to find these traps and create "test IDs" to prove the guard is broken. However, the old methods had two big problems:
- The IDs were too long: They required inputs so huge (like a book's worth of text) that no real website would ever accept them.
- They didn't fit the building: They tested the guard in isolation, ignoring the fact that in a real building, there are other guards (filters) who might stop your ID before it even reaches the main door.
Enter PUFFERDOS. Think of PUFFERDOS as a master locksmith who doesn't just pick the lock; they figure out exactly how to walk through the entire building to get to the lock, using the shortest, most efficient key possible.
Here is how PUFFERDOS works, broken down into simple steps:
1. The "Stop Point" Strategy (Making the Guard Work Harder)
The researchers realized that to make the guard freeze, you don't just need any confusing pattern; you need a pattern where the guard has to take tiny, inefficient steps.
- The Analogy: Imagine the guard is walking down a hallway. If you make them stop at every single inch to check the floor, they get tired fast. If they only stop every 10 feet, they get tired slower.
- The Fix: PUFFERDOS creates "keys" (attack strings) that force the guard to stop at every single tiny inch. It does this by carefully choosing specific characters and arranging them so the guard has to backtrack (go back and check again) as many times as possible. This makes the attack thousands of times faster than previous methods because it achieves the same "freeze" effect with a much shorter key.
2. The Three "Trap" Patterns
The team discovered that most broken locks fall into three specific shapes. PUFFERDOS has a special recipe for each:
- The One-Loop Trap: A single pattern that can be read in multiple confusing ways. PUFFERDOS picks the shortest, most confusing character to repeat.
- The Two-Loop Trap: Two patterns next to each other that can both read the same character. PUFFERDOS uses a character that both patterns can read, forcing them to argue over who gets to process it.
- The Multi-Loop Trap: A long chain of patterns. PUFFERDOS builds a key that forces the guard to check every link in the chain individually.
3. The "Real-World" Walkthrough (Concolic Execution)
This is the most important part. Old tools just tested the lock in a vacuum. PUFFERDOS simulates the entire building.
- The Analogy: Imagine you have a key that opens a door, but the door is behind a security checkpoint, a receptionist, and a maze. Old tools just showed you the key works on the door. PUFFERDOS walks you through the maze, checks if the receptionist lets you pass, and ensures you actually reach the door.
- The Method: It uses a technique called "compositional concolic execution." Think of this as a map summary. Instead of re-walking every single step of the building every time, PUFFERDOS creates a "cheat sheet" for each room (function) in the building. It asks: "If I give this room a confusing key, does it pass it along to the next room, or does it throw it away?"
- By using these cheat sheets, PUFFERDOS can quickly figure out if a short, efficient key will actually reach the vulnerable lock in a real program, or if it will get blocked by a filter earlier in the process.
The Results
The team tested PUFFERDOS on thousands of real-world programs and known security holes (CVEs).
- Speed: It generated attack strings that were 97 to 3,800 times more efficient than the previous best tool. It could freeze a system with a tiny string instead of a massive one.
- Success Rate: It successfully recreated 96.8% of known security holes (compared to 77.4% for the old tool).
- New Discoveries: When they tested it on 12 popular, real-world software projects, they found 59 new, previously unknown security holes that the old tools missed because the old tools couldn't generate a realistic, short enough attack to prove the vulnerability existed.
In short: PUFFERDOS is a smarter, more practical way to find and prove that a computer system can be frozen by a confusing pattern. It doesn't just find the lock; it finds the shortest, most realistic key to jam it, proving that the danger is real and needs to be fixed.
Drowning in papers in your field?
Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.