Executing everything on an isolated container with no permissions? Audit trial etc/good logging? If someone comes up with an RCE you're basically done for, you can only mitigate it but not completely stop it.
Executing everything on an isolated container with no permissions? Audit trial etc/good logging? If someone comes up with an RCE you're basically done for, you can only mitigate it but not completely stop it.
This is obviously "expensive" though. Doesn't scale very well.
Unlike this issue then, going by the 1Tbps attack it's reportedly causing...
Linux itself has several features that can be used to isolate processes, and there are use friendly tools like bwrap [0] that make configuration easy.
It should be entirely possible to sandbox something like ExifTool itself such that it has no network access and is limited to reading and writing files in a particular directory.
- It's a separate interface with a different attack surface than your system, so compared to a locked-down version of the normal syscall API, it provides better defense-in-depth.
- It's designed to be a fully self-contained sandbox, by default. If you're locking down everything but reading and writing previously opened file descriptors, you can build a secure sandbox atop syscalls fairly easily. If you need more nuance than that, WebAssembly seems more likely to remain secure, while syscall sandboxes seem more likely to fail-insecure if you get a detail wrong.
- It seems easier to sandbox otherwise-unmodified code that way. If you have code that needs some access to system resources, I think WebAssembly makes it easier to give it just what it needs and nothing else.
(Also, note that I'm not talking about running in a browser; I'm talking about standalone WebAssembly runtimes like wasmtime.)
https://gitlab.com/gitlab-org/gitlab-workhorse/-/commit/8656...
It's hard to find a linked detailed requirement for this. I would certainly prefer if GitLab didn't silently mangle uploaded images (not least if I'm working on an EXIF library..).
Bonus points for a commit that includes the words "perl" and "exec" not also having a detailed security review attached.
These types of programs are relatively simple, and this is a case where a formal proof is much better than reliability.
Is anyone aware of research on this?
What you don't do is pulling an ages old perl codebase to run over complex formats.