On Wed, 2014-09-24 at 22:15 +0200, Rainer Jung wrote: > One could try to sanitize env var contents in ap_create_environment() > though. Currently we do sanitize variable names there. But there's no > generally good pattern for the value sanitizing.
This is a revisiting of the classic perl/cgi "untainting" problem. Perl's solution is to require anything from an untrusted source to match a whitelist-style pattern before the system can be exposed to it. mod_taint would enable us to sanitise this, while offering sysops flexibility to vary the sanitising rules. > The exploit is said to be any env var value looking like > > () { something }; problematicPart That's a pattern that can be regexp-matched. The regexp could be hardwired in under the name "CVE-2014-6271" for sysops who want an easy life. This solution also places in sysops hands the decision whether to de-fang the attack string or just return 400. > The problem might also apply to SSI and other interfaces that can set > environment variables, like maybe FCGI and SCGI (if they later trigger > bash calls). So make it a system-wide default, and let the sysop turn it off if they have a use for headers legitimately matching that pattern! -- Nick Kew