Trouble with quoting a shellshock test

I’m trying to write an Ansible task to check for both CVE-2014-6271 and CVE-2014-7169 as I haven’t been able to find one pre-made.

This command should check both but for the life of me I can’t get the escaped single quote past the parser… I’ve tried some variants of “shell: >” and “shell: |” but no dice.

  • name: Check for shellshock fix (checks for both CVE-2014-6271 and CVE-2014-7169)
    shell: cd /tmp && rm -f /tmp/echo && env ‘x=() { :;}; echo vulnerable’ 'f=() { (a)=>' bash -c ‘echo echo vulnerable’; cat echo
    args:
    executable: /bin/bash
    sudo: no
    register: shellshock_result2
    changed_when: False
    failed_when: “‘vulnerable’ in shellshock_result2.stderr”

This version gives:


```
ERROR: There was an error while parsing the task "shell cd /tmp && rm -f /tmp/echo && env 'x=() { :;}; echo vulnerable' 'f=() { (a)=>\\' bash -c 'echo echo vulnerable'; cat echo".
Make sure quotes are matched or escaped properly
```

I’m assuming the issue is that, if I understand correctly, the second exploit partly depends on the mismatched quote arriving unharmed(?) and YAML thinks that is bad(?).

Anyone have any ideas or should I just copy it over as a script and run that?

Thank you,
Mark

Oh… the official source of the commands was: https://access.redhat.com/articles/1200223, but someone was nice enough to combine them in: https://bugzilla.redhat.com/show_bug.cgi?id=1141597#c47

Hi Mark,

I think this is not a good idea to use one liner such that. There are
many players except bash interpreter, yaml parser, python string
quotation and so forth. I would recommend you to you use a bash script
in this case

I've made a simple role, it is based and code samples you provided I
hope you will find it useful
https://github.com/hostmaster/check_shellshock

-- Best, Igor

I’m a big fan of the “script” module when you need to push and run a tiny shell script.

http://docs.ansible.com/script_module.html

Absolutely it fitted perfectly

– Best, Igor

Thanks to both for the suggestions.

Mark

Have a look a the script
https://github.com/hannob/bashcheck/blob/master/bashcheck
it seems to me it covers all know shelshock CVE