remove redundant CC0 text (after comparing a wdiff); point to licence
[shellsnippets/shellsnippets.git] / bash / bashcheck / README.md
1 bashcheck
2 =========
3
4 Test script for Shellshock and related vulnerabilities
5
6 See ../../LICENCES/CC0_1.0.txt for legal terms.
7
8 background
9 ==========
10
11 The Bash vulnerability that is now known as Shellshock had an incomplete
12 fix at first. There are currently 6 public vulnerabilities.
13
14 shellshock and heartbleed
15 =========================
16
17 I wrote down some general thoughts about recent events and security
18 in free software:
19 * https://blog.hboeck.de/archives/857-How-to-stop-Bleeding-Hearts-and-Shocking-Shells.html
20
21 interpreting results
22 ====================
23
24 There's been some confusion how to interpret the results of this script
25 and some people got scared by warnings on systems that didn't have any
26 exploitable bugs.
27
28 The most important fix you need is one of the prefix/suffix-patches. Upstream
29 patch number for this is bash042-050 and bash043-027 (patches for older
30 versions also available). This patch was originally created by RedHat
31 developer Florian Weimer and a modified version was applied by Bash
32 developer Chet Ramey.
33
34 Once you have this prefix patch all other vulnerabilities are not exploitable.
35 They are still bugs that should be fixed, but there is nothing to worry
36 about.
37
38
39 usage
40 =====
41
42 Just run script:
43  `./bashcheck`
44
45 CVE-2014-6271
46 =============
47
48 The original vulnerability.
49
50 * https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6271
51
52 CVE-2014-7169
53 =============
54
55 Further parser error, found by Tavis Ormandy (taviso).
56
57 * https://twitter.com/taviso/status/514887394294652929
58 * https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-7169
59
60 CVE-2014-7186
61 =============
62
63 Out of bound memory read error in redir_stack.
64
65 * http://seclists.org/oss-sec/2014/q3/712
66 * https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-7186
67
68 CVE-2014-7187
69 =============
70
71 Off-by-one error in nested loops.
72 (check only works when Bash is built with -fsanitize=address)
73
74 * http://seclists.org/oss-sec/2014/q3/712
75 * https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-7187
76
77 CVE-2014-6277
78 =============
79
80 Uninitialized Memory use in make_redirect(), found by
81 Michal Zalewski (lcamtuf).
82
83 * http://lcamtuf.blogspot.de/2014/10/bash-bug-how-we-finally-cracked.html
84 * https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6277
85
86 CVE-2014-6278
87 =============
88
89 Another parser bug, analysis still incomplete, also found
90 by Michal Zalewski (lcamtuf).
91
92 * http://lcamtuf.blogspot.de/2014/10/bash-bug-how-we-finally-cracked.html
93 * https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6278
94
95 Patch recommendation
96 ====================
97
98 Latest upstream patches (4.3 since patchlevel 030, 4.2 since patchlevel 051)
99 include all fixes.
100
101 They also add prefixing to variable functions (a variant of Florian
102 Weimer's patch). This protects from further function parser bugs and makes
103 them likely not exploitable.
104
105 My current recommendation: Use latest upstream patches.