diff options
| author | Saul Wold <sgw@linux.intel.com> | 2013-08-29 13:21:57 -0700 |
|---|---|---|
| committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2013-08-30 18:06:32 +0100 |
| commit | 116441d6dcd6ab3d044de84e7f0e85b6b50bfb2a (patch) | |
| tree | ce5f19a034598dd0423f262f8aeb29cce46cbb0c /meta/recipes-devtools/perl/perl-5.14.3/0001-Fix-misparsing-of-maketext-strings.patch | |
| parent | 25b8cc840976d2082f643f6c8c6cd0db21bdc811 (diff) | |
| download | poky-116441d6dcd6ab3d044de84e7f0e85b6b50bfb2a.tar.gz | |
perl: Backport 2 CVE Patches
These patches are backported from upstream since it might be risky to update right now
They address the following CVEs
CVE-2012-6329
CVE-2013-1667
(From OE-Core rev: b6c286c447e50fe499f03b64c6be80ac18504265)
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/perl/perl-5.14.3/0001-Fix-misparsing-of-maketext-strings.patch')
| -rw-r--r-- | meta/recipes-devtools/perl/perl-5.14.3/0001-Fix-misparsing-of-maketext-strings.patch | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/meta/recipes-devtools/perl/perl-5.14.3/0001-Fix-misparsing-of-maketext-strings.patch b/meta/recipes-devtools/perl/perl-5.14.3/0001-Fix-misparsing-of-maketext-strings.patch new file mode 100644 index 0000000000..89ec6eff0f --- /dev/null +++ b/meta/recipes-devtools/perl/perl-5.14.3/0001-Fix-misparsing-of-maketext-strings.patch | |||
| @@ -0,0 +1,86 @@ | |||
| 1 | From 1735f6f53ca19f99c6e9e39496c486af323ba6a8 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Brian Carlson <brian.carlson@cpanel.net> | ||
| 3 | Date: Wed, 28 Nov 2012 08:54:33 -0500 | ||
| 4 | Subject: [PATCH] Fix misparsing of maketext strings. | ||
| 5 | |||
| 6 | Case 61251: This commit fixes a misparse of maketext strings that could | ||
| 7 | lead to arbitrary code execution. Basically, maketext was compiling | ||
| 8 | bracket notation into functions, but neglected to escape backslashes | ||
| 9 | inside the content or die on fully-qualified method names when | ||
| 10 | generating the code. This change escapes all such backslashes and dies | ||
| 11 | when a method name with a colon or apostrophe is specified. | ||
| 12 | --- | ||
| 13 | AUTHORS | 1 + | ||
| 14 | dist/Locale-Maketext/lib/Locale/Maketext.pm | 24 ++++++++---------------- | ||
| 15 | 2 files changed, 9 insertions(+), 16 deletions(-) | ||
| 16 | |||
| 17 | Upstream-Status: Backport | ||
| 18 | |||
| 19 | Signed-off-by: Saul Wold <sgw@linux.intel.com> | ||
| 20 | |||
| 21 | |||
| 22 | diff --git a/AUTHORS b/AUTHORS | ||
| 23 | index 70734b0..009dea0 100644 | ||
| 24 | --- a/AUTHORS | ||
| 25 | +++ b/AUTHORS | ||
| 26 | @@ -154,6 +154,7 @@ Breno G. de Oliveira <garu@cpan.org> | ||
| 27 | Brent Dax <brentdax@cpan.org> | ||
| 28 | Brooks D Boyd | ||
| 29 | Brian Callaghan <callagh@itginc.com> | ||
| 30 | +Brian Carlson <brian.carlson@cpanel.net> | ||
| 31 | Brian Clarke <clarke@appliedmeta.com> | ||
| 32 | brian d foy <brian.d.foy@gmail.com> | ||
| 33 | Brian Fraser <fraserbn@gmail.com> | ||
| 34 | diff --git a/dist/Locale-Maketext/lib/Locale/Maketext.pm b/dist/Locale-Maketext/lib/Locale/Maketext.pm | ||
| 35 | index 4822027..63e5fba 100644 | ||
| 36 | --- a/dist/Locale-Maketext/lib/Locale/Maketext.pm | ||
| 37 | +++ b/dist/Locale-Maketext/lib/Locale/Maketext.pm | ||
| 38 | @@ -625,21 +625,9 @@ sub _compile { | ||
| 39 | # 0-length method name means to just interpolate: | ||
| 40 | push @code, ' ('; | ||
| 41 | } | ||
| 42 | - elsif($m =~ /^\w+(?:\:\:\w+)*$/s | ||
| 43 | - and $m !~ m/(?:^|\:)\d/s | ||
| 44 | - # exclude starting a (sub)package or symbol with a digit | ||
| 45 | + elsif($m =~ /^\w+$/s | ||
| 46 | + # exclude anything fancy, especially fully-qualified module names | ||
| 47 | ) { | ||
| 48 | - # Yes, it even supports the demented (and undocumented?) | ||
| 49 | - # $obj->Foo::bar(...) syntax. | ||
| 50 | - $target->_die_pointing( | ||
| 51 | - $string_to_compile, q{Can't use "SUPER::" in a bracket-group method}, | ||
| 52 | - 2 + length($c[-1]) | ||
| 53 | - ) | ||
| 54 | - if $m =~ m/^SUPER::/s; | ||
| 55 | - # Because for SUPER:: to work, we'd have to compile this into | ||
| 56 | - # the right package, and that seems just not worth the bother, | ||
| 57 | - # unless someone convinces me otherwise. | ||
| 58 | - | ||
| 59 | push @code, ' $_[0]->' . $m . '('; | ||
| 60 | } | ||
| 61 | else { | ||
| 62 | @@ -693,7 +681,9 @@ sub _compile { | ||
| 63 | elsif(substr($1,0,1) ne '~') { | ||
| 64 | # it's stuff not containing "~" or "[" or "]" | ||
| 65 | # i.e., a literal blob | ||
| 66 | - $c[-1] .= $1; | ||
| 67 | + my $text = $1; | ||
| 68 | + $text =~ s/\\/\\\\/g; | ||
| 69 | + $c[-1] .= $text; | ||
| 70 | |||
| 71 | } | ||
| 72 | elsif($1 eq '~~') { # "~~" | ||
| 73 | @@ -731,7 +721,9 @@ sub _compile { | ||
| 74 | else { | ||
| 75 | # It's a "~X" where X is not a special character. | ||
| 76 | # Consider it a literal ~ and X. | ||
| 77 | - $c[-1] .= $1; | ||
| 78 | + my $text = $1; | ||
| 79 | + $text =~ s/\\/\\\\/g; | ||
| 80 | + $c[-1] .= $text; | ||
| 81 | } | ||
| 82 | } | ||
| 83 | } | ||
| 84 | -- | ||
| 85 | 1.8.3.1 | ||
| 86 | |||
