Skip to content

Commit

Permalink
perl: Security fix CVE-2017-12883
Browse files Browse the repository at this point in the history
Affects: Perl  < 5.24.3-rc1 and  5.26.x before 5.26.1-RC1

Signed-off-by: Armin Kuster <[email protected]>
Signed-off-by: Ross Burton <[email protected]>
  • Loading branch information
akuster authored and rpurdie committed Apr 23, 2018
1 parent e2235b7 commit 60ebf7f
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 0 deletions.
44 changes: 44 additions & 0 deletions meta/recipes-devtools/perl/perl/CVE-2017-12883.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
From 40b3cdad3649334585cee8f4630ec9a025e62be6 Mon Sep 17 00:00:00 2001
From: Karl Williamson <[email protected]>
Date: Fri, 25 Aug 2017 11:33:58 -0600
Subject: [PATCH] PATCH: [perl #131598]

The cause of this is that the vFAIL macro uses RExC_parse, and that
variable has just been changed in preparation for code after the vFAIL.
The solution is to not change RExC_parse until after the vFAIL.

This is a case where the macro hides stuff that can bite you.

(cherry picked from commit 2be4edede4ae226e2eebd4eff28cedd2041f300f)

Upstream-Status: Backport
CVE: CVE-2017-12833
Signed-off-by: Armin Kuster <[email protected]>

---
regcomp.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

Index: perl-5.24.1/regcomp.c
===================================================================
--- perl-5.24.1.orig/regcomp.c
+++ perl-5.24.1/regcomp.c
@@ -11918,14 +11918,16 @@ S_grok_bslash_N(pTHX_ RExC_state_t *pREx
}
sv_catpv(substitute_parse, ")");

- RExC_parse = RExC_start = RExC_adjusted_start = SvPV(substitute_parse,
- len);
+ len = SvCUR(substitute_parse);

/* Don't allow empty number */
if (len < (STRLEN) 8) {
RExC_parse = endbrace;
vFAIL("Invalid hexadecimal number in \\N{U+...}");
}
+
+ RExC_parse = RExC_start = RExC_adjusted_start
+ = SvPV_nolen(substitute_parse);
RExC_end = RExC_parse + len;

/* The values are Unicode, and therefore not subject to recoding, but
1 change: 1 addition & 0 deletions meta/recipes-devtools/perl/perl_5.24.1.bb
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ SRC_URI += " \
file://perl-fix-conflict-between-skip_all-and-END.patch \
file://perl-test-customized.patch \
file://perl-5.26.1-guard_old_libcrypt_fix.patch \
file://CVE-2017-12883.patch \
"

# Fix test case issues
Expand Down

0 comments on commit 60ebf7f

Please sign in to comment.