I do set GREP_OPTIONS in my .bashrc, etc.  Specifically, I use
GREP_OPTIONS=--color=auto

It is a common command someone might set.  Either one off (just to see
color for some greps) or routinely (like I have in my bashrc).

It is a security issue because it open up holes, prevent actions from
happening, etc. if a grep doesn't return what the user expects.

For example:
---------------------------
$ grep -E -q local /etc/hosts ; echo $?
0

$ env GREP_OPTIONS=-P grep -E -q local /etc/hosts ; echo $?
grep: conflicting matchers specified
2

$ env GREP_OPTIONS=-f/dev/zero grep -E -q local /etc/hosts ; echo $?
grep: memory exhausted
1
----------------------------

Just for a few examples of how this can go wrong, maliciously or
otherwise.

GREP_OPTIONS can be used to read in files (-f) or change the meaning of
a grep (illegal options) or otherwise corrupt it's usage in a script.

The fact that a tool that is usually used without considering how it
could fail is used everyplace is the problem.  I suggest just add
something to /lib/lsb/init-functions to unset GREP_OPTIONS.

I don't have a specific security hole in mind, but something like a
firewall going down might try to turn off packet forwarding, but think
it's already down and leave it up.  Or something like that.

Ciao!

-- 
GREP_OPTION can break system scripts
https://bugs.launchpad.net/bugs/67141
You received this bug notification because you are a member of Ubuntu
Bugs, which is the bug contact for Ubuntu.

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to