A User Found Our Security Bug

Share

TL;DR

A confused customer ticket about "seeing weird projects" led us to discover a major authorization bug. The user wasn't trying to find a vulnerability. They just noticed something odd and reported it. Their observation prevented what could have been a serious data exposure incident.

The Support Ticket

The ticket was titled "Bug: wrong projects showing up."

"Hi, I was browsing my project list and clicked on one, but it showed me a project I don't recognize. It said 'Marketing Campaign Q4' but I've never worked on any marketing campaigns. When I went back and clicked again, my actual project showed up. Just wanted to let you know about this glitch."

My first instinct was to mark it as a one-time glitch and move on. We'd had weird caching issues before. But something about the description nagged at me.

The Investigation

I asked the user for more details. When exactly did it happen? What were they doing before? They mentioned they'd been clicking around quickly, opening multiple projects in new tabs.

That's when I realized this might not be a caching glitch. I looked at our project-loading code:

The endpoint fetched project data based on an ID parameter. It checked if the user was authenticated. But it didn't verify the user had permission to access that specific project.

The bug was only visible under specific conditions: if two users loaded projects at nearly the same moment, a race condition could cause the server to return the wrong project data. The user who reported it had triggered it by rapidly opening multiple tabs.

The Scope

We investigated how long this bug had existed and whether it had been exploited:

  • The vulnerable code had been in production for 8 months
  • No evidence of intentional exploitation in our logs
  • Possibly 10-20 accidental cross-user views (hard to confirm)
  • No sensitive data types were in the affected projects

We got lucky. The conditions to trigger the bug were rare, and no one had deliberately tried to exploit it. But if someone had known about it, they could have systematically accessed other users' projects.

The Fix and Response

We fixed the authorization check within hours. The actual code change was small: verify the requesting user owns the project before returning data.

For the user who reported it, we sent a personal thank-you email and offered them a year of free service. They were surprised. They didn't realize they'd found a security issue; they just thought they'd seen a bug.

The insight: Users often discover security issues without recognizing them as such. What they describe as "weird behavior" or "glitches" can be symptoms of serious vulnerabilities. Take every report seriously.

Changes We Made

Authorization Review

We audited every endpoint in our application to verify proper authorization checks. We found two more places with similar issues.

Automated Testing

We added tests that specifically try to access resources as the wrong user. Every API endpoint has a test that verifies User A cannot access User B's data.

Support Triage Process

We updated our support process. Any ticket mentioning "seeing wrong data," "other user's content," or similar phrases gets escalated for security review immediately.

User Reward Program

We created a simple thank-you program for users who report issues that turn out to be security-related. Not a formal bug bounty, but recognition that their reports matter.

Why Users Are Your Best Testers

This experience taught me that users interact with your application in ways you never anticipate. They click faster, navigate differently, and stumble into edge cases your tests don't cover.

That user, rapidly opening tabs while multitasking, found a bug we'd missed for 8 months. No automated test or security scanner had caught it. But real-world usage did.

How should I respond to users who report potential security issues?

Thank them immediately, even before you've verified the issue. Ask for details. Keep them updated on your investigation. Consider a small reward or acknowledgment if it turns out to be a real vulnerability.

What support ticket keywords might indicate security issues?

Look for: "wrong data," "someone else's," "not my account," "seeing other users," "weird behavior," "data I don't recognize." Train support staff to escalate these.

Should I start a bug bounty program?

Bug bounties work best when you have solid baseline security and can handle incoming reports. Start simpler: make it easy to report issues and show appreciation when people do.

How do I test for authorization bugs?

For each endpoint that returns user-specific data, write a test: authenticate as User A, request User B's data, verify it returns an error (not User B's actual data). Automate this in your test suite.

Find Authorization Issues

Scan your app for access control vulnerabilities.

Start Free Scan
Security Stories

A User Found Our Security Bug