Exif Smuggling (2025)
Posted by rolph 6 hours ago
Comments
Comment by BoppreH 5 hours ago
So you have a package that doesn't include (directly) malicious code or make network calls, yet it can still run malicious code from the network. This is much better than simple obfuscation because you can vary the payload, like a command-and-control server.
Comment by nine_k 3 hours ago
I suppose image sanitizers come soon to browsers. Only sanitized images will be cached; anything the browser can't make sense of will be thrown away.
Comment by 8n4vidtmkvmk 2 hours ago
Comment by Grom_PE 5 hours ago
It would be more interesting to devise a method that survives all extra data stripping and re-encoding, perhaps taking advantage of deterministic encoders, assuming they don't randomize pixel data on purpose.
In other words: turning the image data stream itself into a polyglot.
Comment by algoth1 5 hours ago
Comment by Grom_PE 4 hours ago
Watermarking tries to resist image data manipulation. Smuggling data is concerned with preservation of bytes.
Though if we're executing arbitrary code on the target anyway, ways of embedding data in an image are vast, including watermarking/steganography.
Comment by nine_k 3 hours ago
Comment by Gigachad 5 hours ago
Comment by Omni5cience 5 hours ago
Comment by _def 4 hours ago
Comment by mkoryak 6 hours ago
I probably should have minified it too...
Comment by ale42 6 hours ago
Comment by saghm 6 hours ago
Comment by mpeg 4 hours ago
Comment by rolph 6 hours ago
generally its the JPEG standard that allows the payload, manipulation by abusing EXIF is how you operate the exploit.
there is a 64k file segment specified for JPEG, and you can abuse it to hold any "data" you want, as well as extending to other segments, for more storage.
the raw steganography in most primative form is a comparison of two photos, one of which is pixelshifted to encode the data.
in advanced form, the pixels hold the encrypted data, but the application segments of the JPEG hold keys and or matrix values, and you need a reference image. you can move fairly large volumes of ASCII representation like this before its noticed
you basicly write a webpage that local caches the payload and keys, then abuses EXIF to build and execute an exploit on the target.
Comment by firefax 5 hours ago
Comment by porphyra 6 hours ago
Comment by AndrewStephens 6 hours ago
You have to be selective though, some of the EXIF data specifies things like color spaces and orientation that is used by browsers for displaying the image properly.
Comment by dllu 5 hours ago
EDIT: my vibe-coding slop agent put my home GPS lat long in the example config in the README lol. Please don't rob my house; I'll go run git-filter-repo later.
[1] https://daniel.lawrence.lu/blog/2023-12-20-trip-to-europe/
Comment by booi 5 hours ago
Comment by dllu 5 hours ago
Comment by motohagiography 3 hours ago