summaryrefslogtreecommitdiffstats
path: root/meta
diff options
context:
space:
mode:
authorMing Liu <ming.liu@windriver.com>2013-05-15 05:56:50 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-05-30 20:59:11 +0100
commit2a8265950f263138fcb33db8dc9e1017a6af233a (patch)
tree6616819dceaac9a767c5dc88f1b0794e01016060 /meta
parent3f561e9b3e0013250ddca8120b95a20aab78f93c (diff)
downloadpoky-2a8265950f263138fcb33db8dc9e1017a6af233a.tar.gz
grep: fix for CVE-2012-5667
Multiple integer overflows in GNU Grep before 2.11 might allow context-dependent attackers to execute arbitrary code via vectors involving a long input line that triggers a heap-based buffer overflow. http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-5667 (From OE-Core rev: 7dd4d0178e2b057f76cd2b0b6fe8402f8c1ab23d) Signed-off-by: Ming Liu <ming.liu@windriver.com> Signed-off-by: Mark Hatle <mark.hatle@windriver.com> Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta')
-rw-r--r--meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch32
-rw-r--r--meta/recipes-extended/grep/grep_2.5.1a.bb3
2 files changed, 34 insertions, 1 deletions
diff --git a/meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch b/meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch
new file mode 100644
index 0000000000..0631f35f16
--- /dev/null
+++ b/meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch
@@ -0,0 +1,32 @@
1The patch to fix CVE-2012-5667
2Reference: https://bugzilla.redhat.com/attachment.cgi?id=686605&action=diff
3
4Multiple integer overflows in GNU Grep before 2.11 might allow
5context-dependent attackers to execute arbitrary code via vectors
6involving a long input line that triggers a heap-based buffer overflow.
7
8http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-5667
9
10Upstream-status: Inappropriate [other]
11This version of GNU Grep has been abandoned upstream and they are no longer
12accepting patches. This is not a backport.
13
14Signed-off-by Ming Liu <ming.liu@windriver.com>
15---
16 grep.c | 7 +++----
17 1 file changed, 3 insertions(+), 4 deletions(-)
18
19--- a/src/grep.c 2013-05-15 13:39:33.359191769 +0800
20+++ a/src/grep.c 2013-05-15 13:50:22.609191882 +0800
21@@ -306,6 +306,11 @@ fillbuf (size_t save, struct stats const
22 int cc = 1;
23 char *readbuf;
24 size_t readsize;
25+ const size_t max_save = INT_MAX / 2;
26+
27+ /* Limit the amount of saved data to INT_MAX to fix CVE-2012-5667 */
28+ if (save > max_save)
29+ error (2, 0, _("line too long"));
30
31 /* Offset from start of buffer to start of old stuff
32 that we want to save. */
diff --git a/meta/recipes-extended/grep/grep_2.5.1a.bb b/meta/recipes-extended/grep/grep_2.5.1a.bb
index d6386edb3f..247c837004 100644
--- a/meta/recipes-extended/grep/grep_2.5.1a.bb
+++ b/meta/recipes-extended/grep/grep_2.5.1a.bb
@@ -13,7 +13,8 @@ SRC_URI = "${GNU_MIRROR}/grep/grep-${PV}.tar.bz2 \
13 file://gettext.patch \ 13 file://gettext.patch \
14 file://fix64-int-to-pointer.patch \ 14 file://fix64-int-to-pointer.patch \
15 file://Makevars \ 15 file://Makevars \
16 " 16 file://grep-CVE-2012-5667.patch \
17 "
17 18
18SRC_URI[md5sum] = "52202fe462770fa6be1bb667bd6cf30c" 19SRC_URI[md5sum] = "52202fe462770fa6be1bb667bd6cf30c"
19SRC_URI[sha256sum] = "38c8a2bb9223d1fb1b10bdd607cf44830afc92fd451ac4cd07619bf92bdd3132" 20SRC_URI[sha256sum] = "38c8a2bb9223d1fb1b10bdd607cf44830afc92fd451ac4cd07619bf92bdd3132"