Coding agent reconstructs 1.5M Georgia ballot order from a 2022 scanner flaw
- A Princeton CITP author who says he is not a security researcher used a $20 coding-agent subscription to reverse a 2022-disclosed ballot scanner flaw and recovered the casting order of 1.5 million Georgia ballots, 98.9% of in-person votes in the May 2026 primary.
- The flaw: scanners label each electronic ballot with a number from a deterministic shuffle meant to anonymize records, so the sequence can be reversed and, paired with the public CVR file and county early-voting lists, buckets ballots back to the voters who cast them.
- Springer reports the agent never refused or raised concerns and finished in a couple of hours, and that in some Georgia counties the exact ballot of every voter at a vote center can be identified; affected scanners are used in 21 states, some still unpatched.
- The pipeline used only public records, the cast-vote record file available on request plus early-voting lists; he says he never touched a voting machine, exploited a network, examined source code, or accessed anything non-public.
- He frames the result as the collapse of the moat of expertise that once separated a published vulnerability from working code, a gap that used to take a trained programmer weeks to months.
Hacker News opinions
A Princeton researcher took a known flaw in Georgia's ballot scanners, still unpatched in places, and with public records plus cheap AI tools worked out the order ballots were cast in 114 counties, nearly 99% of in-person ballots. He says secrecy is completely broken in the small ones.
When I hit "load-bearing" in the first sentence my brain just turned off. Claude trauma is real, I had to force myself to keep reading.
The whole report reads like LLM output. The worst part is how hazy it is about what was actually done. As far as I can tell he deanonymized early-voting primary ballots, but it's written like he broke election day general election ballots.
Ex-CITP member here, that line is definitely a human-written joke. People there write like that.
Funny thing, Pangram scores it 0% AI text. "Tied to a specific ballot is the stronger claim and requires one additional public record" is a straight claude-ism. He probably ran it through the detector and tweaked the text until it read 0%.
Authors really need to screen their output with a decent AI detector before publishing. This is going to keep happening.
Maybe I'm missing an angle here, but it's nobody's business whether I voted or not. Why is that record public at all?
Same, I assumed it was private until recently. And it's not like publishing whether you voted has driven turnout up.
The who-voted list has been public forever. Originally everyone could see you walk into the polling place. I run a polling station and I recognize a good chunk of my voters. Keeping it public is how you catch dead people voting and ballot box stuffing.
The real reason is trust. A claim the public could in principle check is easier to believe, even if nobody actually does the checking. It's a tradeoff I'd have taken, but I'd want to have been asked.
Knowing you voted exactly once is the simplest way to know you didn't vote twice.
Two fixes: use a real RNG instead of a seeded one, or just drop the random number from the record entirely. Or use plain paper ballots.
They are paper ballots. That machine is just a scanner that reads the ink and gives a quick tally, the human count is still official. Tagging each ballot with a sequence number is a totally unnecessary step. Also I don't see how an anonymized per-ballot record proves integrity, the data could be faked.
Texas fixed this in 2024 by requiring sequentially numbered ballots. They come in packs of 50 or 100, the presiding judge signs 10 to 20 at a time, shuffles them face down, and voters pick one at random at check-in.
That's k-anonymity by hand. Nice.
I still don't get why anyone wants voting machines when paper works fine. We tried electronic voting in three municipal elections in 2008 and the courts threw out the results over usability.