The "tests pass, the failure only opens against an attacker the prompt never described" framing applies well beyond AI-generated code. This week V12 disclosed the same pattern in mature, human-written C: MuPDF's PDF encryption seeded a drand48-family LCG with the epoch second, so its AES-256 file keys had 9 effective bits - 512 candidates, brute-forced in milliseconds. Foxit hashed the timestamp directly into the key. No AI involved, no junior mistake: the wrong RNG call is a habit the whole industry carries, and linters only catch the Python spelling of it. One nuance on the Mersenne Twister point: 624 observed outputs lets you clone the state going forward, but the MuPDF case is worse - you never observe any output at all, you just guess the seed, because time is not a secret.
DB
Damiano Bianda
Full-stack developer: Nuxt, Vue, TypeScript, Python. Based in Ticino.
The "tests pass, the failure only opens against an attacker the prompt never described" framing applies well beyond AI-generated code. This week V12 disclosed the same pattern in mature, human-written C: MuPDF's PDF encryption seeded a drand48-family LCG with the epoch second, so its AES-256 file keys had 9 effective bits - 512 candidates, brute-forced in milliseconds. Foxit hashed the timestamp directly into the key. No AI involved, no junior mistake: the wrong RNG call is a habit the whole industry carries, and linters only catch the Python spelling of it. One nuance on the Mersenne Twister point: 624 observed outputs lets you clone the state going forward, but the MuPDF case is worse - you never observe any output at all, you just guess the seed, because time is not a secret.