← Latest papers
💻 computer science

GraphQLer: Enhancing GraphQL Security with Context-Aware API Testing

GraphQLer is an open-source automated security testing framework that enhances GraphQL API security by constructing typed dependency graphs from live schemas to synthesize multi-step vulnerability chains, thereby outperforming existing tools like ZAP and EvoMaster in detecting complex, state-dependent flaws such as IDOR, UAF, and injection vulnerabilities.

Original authors: Omar Tsai, Jianing Li, Tsz Tung Cheung, Lejing Huang, Hao Zhu, Jianrui Xiao, Iman Sharafaldin, Mohammad A. Tayebi

Published 2026-08-05
📖 4 min read☕ Coffee break read

Original authors: Omar Tsai, Jianing Li, Tsz Tung Cheung, Lejing Huang, Hao Zhu, Jianrui Xiao, Iman Sharafaldin, Mohammad A. Tayebi

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 the internet as a giant, bustling city where different computer programs (apps) constantly talk to each other to share information. For years, these conversations followed a strict, predictable map: if you wanted a picture, you asked for the "picture" folder; if you wanted a message, you asked for the "message" folder. This was like ordering from a menu where every dish has a fixed name and location. But recently, a new way of talking called GraphQL became popular. Instead of a fixed menu, GraphQL is like a magical, shape-shifting vending machine. You can ask for exactly what you want, and it will try to build it for you on the spot. The problem is that because this machine is so flexible, it sometimes forgets to check who is standing in front of it. A regular vending machine might only give a soda to someone with a coin, but this magical one might accidentally hand out a private diary or a bank account if you ask the right way. This is where security researchers come in, trying to figure out how to trick the machine into revealing its secrets without actually breaking the city down.

The paper you're about to read introduces a new digital detective named GraphQLer. Think of most security scanners as clumsy tourists who walk up to the vending machine, press one random button, and see what happens. If they press "Soda" and get a soda, they move on. If they press "Water" and get an error, they give up. They never realize that to get the "Secret Stash," you first have to press "Buy Soda," then "Get Receipt," and then press "Secret Stash." The old tools are too dumb to connect the dots; they test every button in isolation and miss the complex sequences required to break the system.

GraphQLer is different. It's like a detective who first studies the machine's blueprints (the "schema") to understand how the buttons are connected. It builds a mental map showing that "Button A" creates a new item, "Button B" deletes it, and "Button C" might still be able to see it even after it's gone. With this map, GraphQLer doesn't just press buttons randomly; it creates specific chains of actions. It simulates a scenario where a user buys an item, then tries to steal it, or deletes it and then tries to read it again.

The researchers tested this new detective on 21 different real-world and fake-but-realistic APIs (the computer systems being tested). They found that GraphQLer was a massive improvement over the old tools. While the best existing tools could only successfully reach about 29% of the machine's buttons, GraphQLer managed to reach 85.52% of them. More importantly, when it came to finding the tricky security holes, the old tools found zero of the complex, multi-step problems. GraphQLer, however, found all five confirmed "IDOR" vulnerabilities (where you can see someone else's stuff just by changing a number) and even caught a "Use-After-Free" bug (where you can see a file after it's been deleted).

In a real-world test on a financial system (which the authors call "FinServ" to keep it anonymous), GraphQLer found eight potential security flaws without needing any passwords or secret documents. It even found ways to make the system crash and reveal its internal code, which is a big no-no for security. The paper also showed that GraphQLer could reproduce known vulnerabilities in a popular open-source platform called Saleor, proving it works on systems that are already known to be broken.

The authors are very careful to say that while their tool is excellent at finding these specific types of chain-reaction bugs, it's not a magic wand that solves everything. It still struggles with some very specific, complex scenarios where the machine requires multiple pieces of information at once to work. But for the vast majority of modern apps that use this flexible GraphQL technology, GraphQLer proves that you can't just test buttons one by one anymore. You have to understand the story the machine is telling, and only then can you find where the plot holes are.

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 →