MuPDF's PDF encryption key had only 512 possibilities, and a script cracks it in 11 ms (v12.sh)
MuPDF before 1.28.5 seeded a drand48-style generator with the current Unix time and read bytes from bits that ignore most of the seed, so timestamps 512 seconds apart give identical keys. The author brute-forces all 512 in about 11 ms of unoptimised Python.
Foxit Reader has a related flaw; already-published PDFs cannot be protected retroactively.
Sign in to save