Uit
http://seclists.org/fulldisclosure/2014/Oct/9:
Door Michal Zalewski, Wed, 1 Oct 2014 07:21:34 -0700: To test, execute this command from within a bash shell:
foo='() { echo not patched; }' bash -c foo
If you see "not patched", you probably want upgrade immediately. If you see "bash: foo: command not found", you're OK.
Dat komt overeen met de laatste test van Hanno Böck waar ik bovenaan
https://www.security.nl/posting/403586 naar verwees (correctie 2014-10-02 12:07: URL wees naar #posting403738 in die pagina, moet 1e bijdrage zijn).
Aanvulling van Paul Vixie (
http://seclists.org/fulldisclosure/2014/Oct/10): check dat je daadwerkelijk in een bash shell zit (en niet in tcsh, ksh, dash etc) voordat je dit soort tests uitvoert, anders kunnen ze een onjuiste uitslag geven.
Vanmiddag heeft Chet Ramey (bash maintainer) nieuwe patches voor bash gepubliceerd, zie
https://lists.gnu.org/archive/html/bug-bash/2014-10/. Bij de bash-4.3.28 patch is iets misgegaan meldt Chet zelf, dus daar zal later vandaag nog wel weer een update van komen. Bij deze patches gaat het om mogelijke bufferoverflows die, voor zover bekend, niet remotely exploitable zijn (en dus veel minder belangrijk).
Aanvulling 2014-01-02 00:52: In
https://lists.gnu.org/archive/html/bug-bash/2014-10/msg00011.html meldt Chet Raney: [REISSUE] Bash-4.3 Official Patch 28. Uit
http://seclists.org/oss-sec/2014/q4/24 blijkt dat het bij de net vrijgegeven set patches gaat om het dichten van CVE-2014-7168 en CVE-2014-7169. M.b.t. patches voor CVE-2014-6277 en CVE-2014-6278 schijft Chet dat hij hier nog aan werkt.
Zoals Michal Zalewski schrijft, de meeste grote distro's hebben eind vorige week (inclusief weekend) patches voorgesteld door Florian Weimer (Red Hat) overgenomen. Zondag heeft Chet Ramey een vergelijkbare oplossing in de officiële bash sources overgenomen. Het gaat hierbij vooral om prefixes en postfixes om environmentvariabelen in een niet-interactief scenario. Voorbeeld: eerder kon een aanvaller commando's als "ls" en "cat" overschrijven met nieuwe functiedefinities ("ls()" en "cat()"). Die eerste wordt nu iets als "BASH_FUNC_ls%%()" (zie bijv.
https://lists.gnu.org/archive/html/bug-bash/2014-09/msg00278.html) waardoor zo'n definitie "ls" niet meer overschrijft.
Aanvulling 2014-01-02 00:52: de aanname is dat dit alle tot nu toe bekende remote exploits weet te voorkomen, maar ik sluit niet uit dat nieuwe meldingen zoals
http://seclists.org/oss-sec/2014/q4/26 remotely exploitable zijn (en meer drastische maatregelen nodig zijn waardoor meer bestaande scripts niet meer zullen werken).
Conclusie: aangezien Michal Zalewski vandaag de exploit heeft gepubliceerd, zal daar binnenkort ook wel op gescand gaan worden. Check met bovenstaande test (of het script in
https://github.com/hannob/bashcheck) of jouw distro veilig is. Zo niet: patch!