cross-posted from: lemmy.sdf.org/post/24645301
They emailed me a PDF. It opened fine with evince and looked like a simple doc at first. Then I clicked on a field in the form. Strangely, instead of simply populating the field with my text, a PDF note window popped up so my text entry went into a PDF note, which many viewers present as a sticky note icon.
If I were to fax this PDF, the PDF comments would just get lost. So to fill out the form I fed it to LaTeX and used the overpic pkg to write text wherever I choose. LaTeX rejected the file… could not handle this PDF. Then I used the
file
command to see what I am dealing with:$ file signature_page.pdf signature_page.pdf: Java serialization data, version 5WTF is that? I know PDF supports JavaScript (shitty indeed). Is that what this is? My workaround was to use evince to print the PDF to PDF (using a PDF-building printer driver or whatever evince uses), then feed that into LaTeX. That worked.
My question is, how common is this? Is it going to become a mechanism to embed a tracking pixel like corporate assholes do with HTML email?
I probably need to change my habits. I know PDF docs can serve as carriers of copious malware anyway. Some people go to the extreme of creating a one-time use virtual machine with PDF viewer which then prints a PDF to a PDF before destroying the VM which is assumed to be compromised.
My temptation is to take a less tedious approach. E.g. something like:
$ firejail --net=none evince untrusted.pdf
I should be able to improve on that by doing something non-interactive. My first guess:
$ firejail --net=none gs -sDEVICE=pdfwrite -q -dFIXEDMEDIA -dSCALE=1 -o is_this_output_safe.pdf -- /usr/share/ghostscript/*/lib/viewpbm.ps untrusted_input.pdf
output:
Error: /invalidfileaccess in --file-- Operand stack: (untrusted_input.pdf) (r) Execution stack: %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1990 1 3 %oparray_pop 1989 1 3 %oparray_pop 1977 1 3 %oparray_pop 1833 1 3 %oparray_pop --nostringval-- %errorexec_pop .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- %array_continue --nostringval-- Dictionary stack: --dict:769/1123(ro)(G)-- --dict:0/20(G)-- --dict:87/200(L)-- --dict:0/20(L)-- Current allocation mode is local Last OS error: Permission denied Current file position is 10479 GPL Ghostscript 10.00.0: Unrecoverable error, exit code 1What’s my problem? Better ideas?
MajorHavoc@programming.dev 1 month ago
For many years malicious PDF files had the shameful honor of being the number one way people’s PCs got infected, and it’s because of bullshit like this.
“Surprise, here’s some Java code to execute on your personal computer without asking!” isn’t being done by anyone who is actually your ally.
We’re just discussing how shitty a shitty person has been toward you, at this point. There’s no good pro-social reason to deliver you an app while calling it a document.
Do we think it’s a virus? Probably not, but maybe. So we think there’s a tracker? Certainly. The average organization shitty enough to build our use this technology layer has over 500 separate relationships with companies that track you.
Someone tried to put a tracker in this PDF.
Whether people like me made it too hard for them is up for analysis.
I guarantee you that someone tried.
They’re not good enough at hiding this stuff yet, to feel confident lying about it, so it likely is disclosed in the fine print somewhere, if you’re feeling patient enough to read all of it.