Broken Object Level Authorization in the Wild: An Empirical Taxonomy from 100+ Bug Bounty Disclosures
This paper presents a large-scale empirical analysis of 107 classified bug bounty reports, revealing that Action-Level Object BOLA is a dominant yet underrepresented vulnerability family and demonstrating that reliance on platform tags significantly overstates the prevalence of Broken Object Level Authorization.
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 are walking through a massive, high-tech apartment complex. You have a key card that lets you into the building (authentication), but the real security is supposed to be checking which specific apartment you are allowed to enter.
Broken Object Level Authorization (BOLA) is what happens when the building's security guard forgets to check your key card against the specific apartment number you are trying to open. You might be a valid resident, but you try to open Apartment 402, and the guard just says, "Sure, go ahead," without checking if 402 belongs to you.
This paper is a massive investigation into 107 real-life security reports from a bug bounty program (where hackers get paid to find these holes). The researchers wanted to move past "theoretical" security advice and look at what is actually happening in the real world.
Here is the breakdown of their findings, using simple analogies:
1. The "Label Noise" Problem (The Fake Alarms)
The researchers started by looking at 200 reports tagged as "IDOR" (a common name for this type of bug) on HackerOne.
- The Finding: Only 42% of those reports were actually the real deal.
- The Analogy: Imagine a fire alarm system that goes off 200 times. The researchers found that 39% of the time, it wasn't a fire at all—it was just someone burning toast, a steamy shower, or a broken sensor.
- Takeaway: Just because a system is tagged with "IDOR" doesn't mean it has the specific, dangerous "Broken Object" vulnerability. Security teams often overestimate the risk because they trust the tags too much.
2. The Two Main Villains (The Taxonomy)
The researchers sorted the real bugs into six categories. Two of them were the clear winners, accounting for nearly 80% of all cases:
Villain A: The "Direct Object Reference" (The Phonebook Trick)
- What it is: You see a URL like
website.com/invoice/101. You change the number to102, and suddenly you see someone else's invoice. - The Analogy: It's like walking up to a row of mailboxes. You know your box is #101. You try #102, and the lock is broken, so you open it and read your neighbor's mail.
- Frequency: This happened in 37% of cases.
- What it is: You see a URL like
Villain B: The "Action-Level Object" (The Vandal)
- What it is: This is the big surprise. It's not just reading someone else's data; it's changing or deleting it.
- The Analogy: You walk up to your neighbor's mailbox (which you aren't supposed to touch), and instead of just reading the mail, you rip the mailbox off the wall, delete their emails, or transfer their money.
- Frequency: This happened in 42% of cases.
- Why it matters: Most security guides focus on "reading" data. This paper says, "Hey, the bad guys are actually destroying and changing data more often than they are just spying."
3. The Other Sneaky Villains
The remaining 20% of bugs were more complex:
- Tenant Isolation: You are in a shared office building. You try to open the door to a different company's office suite, and the lock fails.
- Workflow-Context: You were fired from a company, but the system still lets you access the "archived" files of a project you used to work on because the system forgot to update your status.
- Chained Disclosure: You can't guess the ID, but you find a list of IDs in a different part of the app (like a receipt) and use that list to break into other people's accounts.
- Object Rebinding: You trick the system into thinking you own the object by changing a hidden field in the request (like changing the "Owner" name on a document).
4. The "Vertical" Surprise (The Elevator Ride)
Usually, we think of these attacks as "Horizontal" (User A stealing from User B).
- The Finding: 12% of the time, a regular user managed to access or delete things belonging to an Administrator.
- The Analogy: A regular tenant in the apartment complex manages to walk into the building manager's private office and delete the master keys.
- Takeaway: This is a huge risk that most security checklists ignore because they assume "Admins are safe."
5. The "Magic" IDs Don't Work
Developers often think, "If we don't use simple numbers like 1, 2, 3, but instead use long, random codes (UUIDs) or encoded strings, we are safe."
- The Finding: 39% of the successful attacks used these "complex" IDs.
- The Analogy: The bad guys found a way to decode the "secret code" on the mailbox, realized it was just a hidden number, and then just incremented the number to get to the next mailbox.
- Takeaway: Hiding the ID doesn't fix the problem. The server still needs to check if you own the object, regardless of how the ID looks.
6. The "GraphQL" Loophole
The paper found that many modern apps use a system called GraphQL. These systems use "Global IDs" (like gid://hackerone/Report/123).
- The Finding: Attackers found that if they decoded these IDs, they revealed the sequential numbers underneath, allowing them to guess the next ID easily.
- Takeaway: Just because an ID looks like a complex string of characters doesn't mean it's random.
Summary for the Everyday Person
This paper tells us that:
- Don't trust the tags: Just because a system is flagged as having a specific bug doesn't mean it's actually broken in that specific way.
- The bad guys are destructive: They aren't just stealing data; they are deleting and changing it more often than we thought.
- Secret codes aren't enough: Using complex IDs doesn't stop hackers if the server doesn't check who owns the data.
- Regular users can hurt admins: A normal user account can sometimes break into the "boss's" stuff.
The paper concludes that security testing needs to change. We need to stop just checking if you can read someone else's data and start checking if you can delete or change it, and we need to test if regular users can accidentally (or intentionally) break into the admin's stuff.
Drowning in papers in your field?
Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.