It was Friday, February 15, 2019. The headline in that day’s Stanford Daily newspaper declared that there was a data breach in the admissions system. The vulnerability allowed any student to access the admissions files of thousands of other students, including Common Applications, transcripts, and in some cases Social Security numbers. “I think it’s kind of ironic that Stanford is one of the best CS schools in the country, but it’s so negligent in terms of these kinds of important records,” the article quoted the anonymous student who discovered the vulnerability.
That student was me. I grabbed a copy of the Daily and continued on my way to TreeHacks, Stanford’s 1000-person hackathon I was helping to organize throughout the long weekend. It was a wonderful weekend where my application and judging infrastructure was put to the test by hundreds of hackers, in contrast to the stressful weeks of uncertainty from my actual hack of Stanford’s admission system.
During my first call with a lawyer on January 29, 2019, I was in a much more somber mood. I had just discovered the vulnerability a day ago and learned that there was a chance I had broken the Computer Fraud and Abuse Act (CFAA). I was advised to stop accessing the system immediately. “Don’t worry,” the lawyer helpfully told me, “if someone with a badge knocks at your door, you don’t have to identify yourself unless they have a warrant.”
Accidentally hacking Stanford’s admissions system and dealing with the fallout was one of the most formative few weeks in my life. It’s what led my interest in computer science to grow beyond mere playing around with websites and scripts to an appreciation of the important role computer systems play in our society. It led me to pursue a career in cybersecurity, law, and policy. It even led me to meet Jack Cable, now my friend and co-founder of Corridor. At the time, I remained anonymous. Today, I’m finally sharing the full account.
All this started in January of my sophomore year. My friends and I had just learned that if you requested your admissions documents under the Family Educational Rights and Privacy Act (FERPA), there was a chance you might be able to view Stanford reviewers’ comments on your applications. After I made my FERPA request, I was given access to a document portal at imaging.stanford.edu. My Common App and transcript rendered in the browser, but sadly without any reviewers’ comments.
I’ve always loved web development and picking apart how things work. So I right-clicked the page and clicked “Inspect Element” to open Chrome’s developer tools to watch how the page was loading my file. It wasn’t loading it as a PDF, but rather through a tileserver. A tileserver serves a set of cropped, zoomed image tiles, with the coordinates and zoom baked into the request URL as parameters. It’s what enables navigation and zoom in applications like Google Maps, though it was probably overkill for a document viewer. Curious, I edited the URL to widen the crop and zoom out. The whole page resolved in a new tab. Now I could see my entire Common App, reassembled from a request I’d hand-edited.
But I realized that sitting in that same URL was a document ID, something I could change: 1846500.
I incremented it by one, and another student’s Common Application loaded.
This included their entire Common App, transcript, home address, test scores, and even Social Security numbers. Mine was in there too, sitting behind nothing but a guessable integer. In computer security, this vulnerability is called an IDOR: insecure direct object reference. It is one of the oldest, most common vulnerabilities on the Internet.
My curiosity continued. How many files were available to every student? I did something that I shouldn’t have done, in retrospect: I nudged up the ID by tens, then hundreds, seeing how far back the archive went. It appeared that there were at least several thousand records that were available through this vulnerability.
The night I found the vulnerability, I took it to the Stanford Daily, where I was the paper’s first CTO. I wanted the vulnerability — and the university’s inability to keep students’ data safe — disclosed responsibly, fixed, and reported upon. The editors started working the story. We started speaking with a lawyer who advised the Daily on these kinds of issues, and I waited to find out how much trouble I was in.
A week later, I was across a table from Stanford’s Chief Information Security Officer and his team. The meeting had been set up on a promise of “no repercussions” if I talked with them to help them identify and fix the vulnerability in good faith. I walked them through how the exploit worked, and we established that the flaw actually lived in NolijWeb, a third-party product that Stanford had kept running well past its 2018 discontinuation. But because I had poked around in the system, Stanford had to notify every student whose ID I had typed in. Incrementing the IDs had felt like mere sleuthing, but had real consequences for students who had to be notified that their records were improperly accessed. But the worst was behind me.
What didn’t go away were the mandatory counseling sessions. Our lawyer was quite unhappy about this, because the promise “no repercussions” had apparently come with fine print. Ultimately, I decided to do the sessions. I trusted the CISO and the university, and honestly, Stanford had little to gain from making an example of one of its students who reported the vulnerability in good faith.
The sessions themselves ranged from slightly absurd to genuinely helpful. At one, an official slid a paper copy of the California Code across the table so I’d appreciate that unauthorized computer access is a real legal problem. I was surprised they had taken the time to print it out. And one administrator asked me, “Would you ever open this cabinet over here if the key were just lying around?” I remember thinking it was an unfair analogy. No one had left a key lying around; there was no lock. Every student was handed a URL that returned anyone’s file if you changed a number in it. The cabinet was standing open in the middle of the room.
I had one final session with cyber expert Alex Stamos (who, unbeknownst to me, would become our future Chief Product Officer at Corridor.) Alex pointed out that a potential CFAA violation is serious: an overzealous U.S. Attorney could still choose to prosecute me regardless of how good my intentions were, regardless of what Stanford decided. It had happened with Aaron Swartz. Why would I publish an article in the Daily about my potential criminal activity? I should have stopped immediately after I first discovered the vulnerability, not tried to look further to determine the full scope of the data breach. I didn’t have a great rebuttal to this, because he was right.
Stanford notified the students whose records were accessed and took the system offline. It also updated the terms of its bug bounty program to extend safe harbor to people who report vulnerabilities found outside its official scope, such as imaging.stanford.edu: assurance I hadn’t had when finding the vulnerability.
The episode set the course of everything since. I decided to take a cybersecurity class at Stanford, followed by classes in the law school on the Fourth Amendment and digital surveillance. In 2020, I joined the Cybersecurity and Infrastructure Security Agency (CISA) in the federal government, where I helped build a tool that scanned public election infrastructure for similar types of vulnerabilities that I’d first found in my dorm room. In 2021, I joined Schmidt Futures and started an open source software security program, and I went to law school at Georgetown afterwards.
It also introduced me to my co-founder. One of my calls during those few weeks was with Jack Cable, the student and researcher who’d helped create Stanford’s bug bounty program. Jack and I worked together at CISA on election security, and years later, we started Corridor together.
Jack and I built Corridor because vulnerability introduction, detection, and remediation no longer run at human speed. In the next year, AI agents will write more code than ever has been written by all of humanity up to this point. Most of this code will be unreviewed by humans and pushed to production based on tests and vibes. It’s even more important for tools like Corridor to empower security teams to keep up with the constant stream of new vulnerabilities introduced by orders of magnitude more code than before.
In 2019, the stakes were one university’s admissions files. A year later, a presidential election. Now it’s nearly every codebase on earth, written more and more by machines that work at superhuman speed and capability.

