This should be fun
This should be fun
I fail to see how "HTTP requests" generically are a vector, and its "Here is a sample" statement is not a link and is followed by... nothing.
This article tells me nothing useful other than "don't allow untrusted data into your environment", which we've all known for 20 years.
Lots of PHP setups do.
PHP was one of the first to have a dedicated apache module. Perl is much more likely to be CGI.
If you're not running mod_cgi can this affect the system in any way?
Thanks!
Edit: also, you may be surprised to find that some "libraries" are actually wrappers around external binaries (e.g. libgpgme). If any of them used a system() or exec() call that preserves environment, and the binary or the library ever invokes bash (e.g. via system()), then trouble will ensue.
This is far from the first environment variable attack to impact CGI scripts, and CGI's successors have avoided passing data in environment variables.
It's possible some moron decided to create their own CGI replacement using environment variables, but it's not going to be in widespread use.
Edit: also note that CUPS is vulnerable according to https://access.redhat.com/articles/1200223
Also dhclient (!)
Using environment variables for request data would be quite insane when one of your marketing strategies is "fast" -- you'd either have to fork-per-connection just like CGI, or pre-fork processes that take input over a socket, deliberately deserialize it into the environment(!), and use getenv.
However overhyped Passenger might be, I don't know why you'd think the Phusion guys are that crazy.
Discovering that CUPS and dhclient may be vulnerable doesn't change anything. I'm talking about HTTP as an attack vector.
Yes, we've all known that. But we're slowly discovering all different ways the untrusted data can get there.