Change-Id: I672290f7721f7fe96ea7310cf28274a80796f3f3
Reviewed-on: http://photon-jenkins.eng.vmware.com:8082/2975
Tested-by: gerrit-photon <photon-checkins@vmware.com>
Reviewed-by: Divya Thaluru <dthaluru@vmware.com>
| 1 | 1 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,24 @@ |
| 0 |
+From 690313a061f7a4fa614ec5cc8368b4f2284e059b Mon Sep 17 00:00:00 2001 |
|
| 1 |
+From: "K.Kosako" <kosako@sofnec.co.jp> |
|
| 2 |
+Date: Tue, 23 May 2017 10:28:58 +0900 |
|
| 3 |
+Subject: [PATCH] fix #57 : DATA_ENSURE() check must be before data access |
|
| 4 |
+ |
|
| 5 |
+diff --git a/regexec.c b/regexec.c.1 |
|
| 6 |
+index 9e5f559..505cb83 100644 |
|
| 7 |
+--- a/regexec.c |
|
| 8 |
+@@ -1811,14 +1811,9 @@ match_at(regex_t* reg, const UChar* str, const UChar* end, |
|
| 9 |
+ NEXT; |
|
| 10 |
+ |
|
| 11 |
+ CASE(OP_EXACT1) MOP_IN(OP_EXACT1); |
|
| 12 |
+-#if 0 |
|
| 13 |
+ DATA_ENSURE(1); |
|
| 14 |
+ if (*p != *s) goto fail; |
|
| 15 |
+ p++; s++; |
|
| 16 |
+-#endif |
|
| 17 |
+- if (*p != *s++) goto fail; |
|
| 18 |
+- DATA_ENSURE(0); |
|
| 19 |
+- p++; |
|
| 20 |
+ MOP_OUT; |
|
| 21 |
+ NEXT; |
|
| 22 |
+ |
| 0 | 23 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,37 @@ |
| 0 |
+From: "K.Kosako" <kosako@sofnec.co.jp> |
|
| 1 |
+Date: Fri, 19 May 2017 15:44:47 +0900 |
|
| 2 |
+Subject: [PATCH] fix #55 : Byte value expressed in octal must be smaller than |
|
| 3 |
+ 256 |
|
| 4 |
+ |
|
| 5 |
+diff --git a/regparse.c b/regparse.c.1 |
|
| 6 |
+index 1e0dfd9..cd412ec 100644 |
|
| 7 |
+--- a/regparse.c |
|
| 8 |
+@@ -3084,7 +3084,7 @@ fetch_token_in_cc(OnigToken* tok, UChar** src, UChar* end, ScanEnv* env) |
|
| 9 |
+ if (PPEEK_IS('{') && IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_X_BRACE_HEX8)) {
|
|
| 10 |
+ PINC; |
|
| 11 |
+ num = scan_unsigned_hexadecimal_number(&p, end, 0, 8, enc); |
|
| 12 |
+- if (num < 0) return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE; |
|
| 13 |
++ if (num < 0 || num >= 256) return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE; |
|
| 14 |
+ if (!PEND) {
|
|
| 15 |
+ c2 = PPEEK; |
|
| 16 |
+ if (ONIGENC_IS_CODE_XDIGIT(enc, c2)) |
|
| 17 |
+@@ -3534,7 +3534,7 @@ fetch_token(OnigToken* tok, UChar** src, UChar* end, ScanEnv* env) |
|
| 18 |
+ if (PPEEK_IS('{') && IS_SYNTAX_OP(syn, ONIG_SYN_OP_ESC_X_BRACE_HEX8)) {
|
|
| 19 |
+ PINC; |
|
| 20 |
+ num = scan_unsigned_hexadecimal_number(&p, end, 0, 8, enc); |
|
| 21 |
+- if (num < 0) return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE; |
|
| 22 |
++ if (num < 0 || num >= 256) return ONIGERR_TOO_BIG_WIDE_CHAR_VALUE; |
|
| 23 |
+ if (!PEND) {
|
|
| 24 |
+ if (ONIGENC_IS_CODE_XDIGIT(enc, PPEEK)) |
|
| 25 |
+ return ONIGERR_TOO_LONG_WIDE_CHAR_VALUE; |
|
| 26 |
+@@ -4450,6 +4450,9 @@ next_state_val(CClassNode* cc, CClassNode* asc_cc, |
|
| 27 |
+ switch (*state) {
|
|
| 28 |
+ case CCS_VALUE: |
|
| 29 |
+ if (*type == CCV_SB) {
|
|
| 30 |
++ if (*vs > 0xff) |
|
| 31 |
++ return ONIGERR_INVALID_CODE_POINT_VALUE; |
|
| 32 |
++ |
|
| 33 |
+ BITSET_SET_BIT_CHKDUP(cc->bs, (int )(*vs)); |
|
| 34 |
+ if (IS_NOT_NULL(asc_cc)) |
|
| 35 |
+ BITSET_SET_BIT(asc_cc->bs, (int )(*vs)); |
| 0 | 36 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,23 @@ |
| 0 |
+From 9690d3ab1f9bcd2db8cbe1fe3ee4a5da606b8814 Mon Sep 17 00:00:00 2001 |
|
| 1 |
+From: "K.Kosako" <kosako@sofnec.co.jp> |
|
| 2 |
+Date: Tue, 23 May 2017 16:15:35 +0900 |
|
| 3 |
+Subject: [PATCH] fix #58 : access to invalid address by reg->dmin value |
|
| 4 |
+ |
|
| 5 |
+--- |
|
| 6 |
+ regexec.c | 2 ++ |
|
| 7 |
+ 1 file changed, 2 insertions(+) |
|
| 8 |
+ |
|
| 9 |
+diff --git a/regexec.c b/regexec.c.1 |
|
| 10 |
+index 9e5f559..0c6d7df 100644 |
|
| 11 |
+--- a/regexec.c |
|
| 12 |
+@@ -3917,6 +3917,8 @@ forward_search_range(regex_t* reg, const UChar* str, const UChar* end, UChar* s, |
|
| 13 |
+ } |
|
| 14 |
+ else {
|
|
| 15 |
+ UChar *q = p + reg->dmin; |
|
| 16 |
++ |
|
| 17 |
++ if (q >= end) return 0; /* fail */ |
|
| 18 |
+ while (p < q) p += enclen(reg->enc, p, end); |
|
| 19 |
+ } |
|
| 20 |
+ } |
|
| 21 |
+ |
| 0 | 22 |
new file mode 100644 |
| ... | ... |
@@ -0,0 +1,49 @@ |
| 0 |
+From b690371bbf97794b4a1d3f295d4fb9a8b05d402d Mon Sep 17 00:00:00 2001 |
|
| 1 |
+From: "K.Kosako" <kosako@sofnec.co.jp> |
|
| 2 |
+Date: Wed, 24 May 2017 10:27:04 +0900 |
|
| 3 |
+Subject: [PATCH] fix #59 : access to invalid address by reg->dmax value |
|
| 4 |
+ |
|
| 5 |
+--- |
|
| 6 |
+ regexec.c | 27 +++++++++++++++++---------- |
|
| 7 |
+ 1 file changed, 17 insertions(+), 10 deletions(-) |
|
| 8 |
+ |
|
| 9 |
+diff --git a/regexec.c b/regexec.c.1 |
|
| 10 |
+index 9e5f559..3d18c58 100644 |
|
| 11 |
+--- a/regexec.c |
|
| 12 |
+@@ -4000,18 +4000,25 @@ forward_search_range(regex_t* reg, const UChar* str, const UChar* end, UChar* s, |
|
| 13 |
+ } |
|
| 14 |
+ else {
|
|
| 15 |
+ if (reg->dmax != ONIG_INFINITE_DISTANCE) {
|
|
| 16 |
+- *low = p - reg->dmax; |
|
| 17 |
+- if (*low > s) {
|
|
| 18 |
+- *low = onigenc_get_right_adjust_char_head_with_prev(reg->enc, s, |
|
| 19 |
+- *low, end, (const UChar** )low_prev); |
|
| 20 |
+- if (low_prev && IS_NULL(*low_prev)) |
|
| 21 |
+- *low_prev = onigenc_get_prev_char_head(reg->enc, |
|
| 22 |
+- (pprev ? pprev : s), *low, end); |
|
| 23 |
++ if (p - str < reg->dmax) {
|
|
| 24 |
++ *low = (UChar* )str; |
|
| 25 |
++ if (low_prev) |
|
| 26 |
++ *low_prev = onigenc_get_prev_char_head(reg->enc, str, *low, end); |
|
| 27 |
+ } |
|
| 28 |
+ else {
|
|
| 29 |
+- if (low_prev) |
|
| 30 |
+- *low_prev = onigenc_get_prev_char_head(reg->enc, |
|
| 31 |
+- (pprev ? pprev : str), *low, end); |
|
| 32 |
++ *low = p - reg->dmax; |
|
| 33 |
++ if (*low > s) {
|
|
| 34 |
++ *low = onigenc_get_right_adjust_char_head_with_prev(reg->enc, s, |
|
| 35 |
++ *low, end, (const UChar** )low_prev); |
|
| 36 |
++ if (low_prev && IS_NULL(*low_prev)) |
|
| 37 |
++ *low_prev = onigenc_get_prev_char_head(reg->enc, |
|
| 38 |
++ (pprev ? pprev : s), *low, end); |
|
| 39 |
++ } |
|
| 40 |
++ else {
|
|
| 41 |
++ if (low_prev) |
|
| 42 |
++ *low_prev = onigenc_get_prev_char_head(reg->enc, |
|
| 43 |
++ (pprev ? pprev : str), *low, end); |
|
| 44 |
++ } |
|
| 45 |
+ } |
|
| 46 |
+ } |
|
| 47 |
+ } |
| ... | ... |
@@ -1,7 +1,7 @@ |
| 1 | 1 |
Summary: Ruby |
| 2 | 2 |
Name: ruby |
| 3 | 3 |
Version: 2.4.0 |
| 4 |
-Release: 2%{?dist}
|
|
| 4 |
+Release: 3%{?dist}
|
|
| 5 | 5 |
License: BSDL |
| 6 | 6 |
URL: https://www.ruby-lang.org/en/ |
| 7 | 7 |
Group: System Environment/Security |
| ... | ... |
@@ -9,6 +9,10 @@ Vendor: VMware, Inc. |
| 9 | 9 |
Distribution: Photon |
| 10 | 10 |
Source0: http://cache.ruby-lang.org/pub/ruby/%{version}/%{name}-%{version}.tar.gz
|
| 11 | 11 |
%define sha1 ruby=d44a3c50a0e742341ed3033d5db79d865151a4f4 |
| 12 |
+Patch0: ruby-CVE-2017-9224.patch |
|
| 13 |
+Patch1: ruby-CVE-2017-9226.patch |
|
| 14 |
+Patch2: ruby-CVE-2017-9227.patch |
|
| 15 |
+Patch3: ruby-CVE-2017-9229.patch |
|
| 12 | 16 |
BuildRequires: openssl-devel |
| 13 | 17 |
BuildRequires: ca-certificates |
| 14 | 18 |
BuildRequires: readline-devel |
| ... | ... |
@@ -22,6 +26,10 @@ This is useful for object-oriented scripting. |
| 22 | 22 |
|
| 23 | 23 |
%prep |
| 24 | 24 |
%setup -q |
| 25 |
+%patch0 -p1 |
|
| 26 |
+%patch1 -p1 |
|
| 27 |
+%patch2 -p1 |
|
| 28 |
+%patch3 -p1 |
|
| 25 | 29 |
%build |
| 26 | 30 |
./configure \ |
| 27 | 31 |
--prefix=%{_prefix} \
|
| ... | ... |
@@ -49,6 +57,9 @@ rm -rf %{buildroot}/*
|
| 49 | 49 |
%{_docdir}/%{name}-%{version}
|
| 50 | 50 |
%{_mandir}/man1/*
|
| 51 | 51 |
%changelog |
| 52 |
+* Tue Jun 13 2017 Priyesh Padmavilasom <ppadmavilasom@vmware.com> 2.4.0-3 |
|
| 53 |
+- [security] CVE-2017-9224,CVE-2017-9225 |
|
| 54 |
+- [security] CVE-2017-9227,CVE-2017-9229 |
|
| 52 | 55 |
* Wed May 31 2017 Divya Thaluru <dthaluru@vmware.com> 2.4.0-2 |
| 53 | 56 |
- Bump release to build with latest openssl |
| 54 | 57 |
* Wed Jan 18 2017 Anish Swaminathan <anishs@vmware.com> 2.4.0-1 |