diff options
| author | Ming Liu <ming.liu@windriver.com> | 2013-05-15 05:56:50 +0000 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-05-30 20:59:11 +0100 |
| commit | 2a8265950f263138fcb33db8dc9e1017a6af233a (patch) | |
| tree | 6616819dceaac9a767c5dc88f1b0794e01016060 | |
| parent | 3f561e9b3e0013250ddca8120b95a20aab78f93c (diff) | |
| download | poky-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>
| -rw-r--r-- | meta/recipes-extended/grep/grep-2.5.1a/grep-CVE-2012-5667.patch | 32 | ||||
| -rw-r--r-- | meta/recipes-extended/grep/grep_2.5.1a.bb | 3 |
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 @@ | |||
| 1 | The patch to fix CVE-2012-5667 | ||
| 2 | Reference: https://bugzilla.redhat.com/attachment.cgi?id=686605&action=diff | ||
| 3 | |||
| 4 | Multiple integer overflows in GNU Grep before 2.11 might allow | ||
| 5 | context-dependent attackers to execute arbitrary code via vectors | ||
| 6 | involving a long input line that triggers a heap-based buffer overflow. | ||
| 7 | |||
| 8 | http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2012-5667 | ||
| 9 | |||
| 10 | Upstream-status: Inappropriate [other] | ||
| 11 | This version of GNU Grep has been abandoned upstream and they are no longer | ||
| 12 | accepting patches. This is not a backport. | ||
| 13 | |||
| 14 | Signed-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 | ||
| 18 | SRC_URI[md5sum] = "52202fe462770fa6be1bb667bd6cf30c" | 19 | SRC_URI[md5sum] = "52202fe462770fa6be1bb667bd6cf30c" |
| 19 | SRC_URI[sha256sum] = "38c8a2bb9223d1fb1b10bdd607cf44830afc92fd451ac4cd07619bf92bdd3132" | 20 | SRC_URI[sha256sum] = "38c8a2bb9223d1fb1b10bdd607cf44830afc92fd451ac4cd07619bf92bdd3132" |
