Bug 1005669 (CVE-2013-4407)
Summary: | CVE-2013-4407 perl-HTTP-Body: remote command-injection flaw in HTTP::Body::Multipart versions 1.08 and later | ||
---|---|---|---|
Product: | [Other] Security Response | Reporter: | Murray McAllister <mmcallis> |
Component: | vulnerability | Assignee: | Red Hat Product Security <security-response-team> |
Status: | CLOSED ERRATA | QA Contact: | |
Severity: | high | Docs Contact: | |
Priority: | high | ||
Version: | unspecified | CC: | carnil, perl-devel, ppisar |
Target Milestone: | --- | Keywords: | Security |
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2021-10-20 10:41:15 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Murray McAllister
2013-09-09 06:21:48 UTC
Noting upstream bug url as comment, which makes it harder to overlook than when only noted in the External Trackers list: http://rt.cpan.org/Public/Bug/Display.html?id=88342 Upstream made the regular expression matching extensions configurable with the these two commits:
commit 29a092ff5f959987f75b018cfedf4555ae495598
Author: Torsten Raudssus <torsten>
Date: Fri Dec 6 09:05:32 2013 -0500
Added RT88342 related test (found parsing bug in that way), tighten some oth
er tests
lib/HTTP/Body/MultiPart.pm | 5 ++-
t/08multipart-suffix.t | 10 +++---
t/09rt88342.t | 70 ++++++++++++++++++++++++++++++++++++++++
t/data/multipart/015-content.dat | 19 +++++++++++
t/data/multipart/015-headers.pml | 5 +++
5 files changed, 103 insertions(+), 6 deletions(-)
commit 15f5ddbf624d18a71b01f87bd20d1f5a7780162d
Author: Torsten Raudssus <torsten>
Date: Fri Dec 6 09:19:41 2013 -0500
Hups, forgot to set content length
t/data/multipart/015-headers.pml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
These changes are included in version 1.18.
These changes do not fix the issue. But they allow change the expression by a caller. There is also an example of safer expression:
+our $basename_regexp = qr/[^.]+(\.[^\\\/]+)$/;
+#our $basename_regexp = qr/(\.\w+(?:\.\w+)*)$/;
that can be adopted by distributors.
At the end, I want to say the the original issue reporter proclamation:
> Previously, the tempname was always alphanumeric. No special chars. So we
> could use it directly in commands like:
> my $info = `identify -format "%m" $filename 2>&1`;
is flawed by design. Using `` (backticks substitution) with unknown variables is considered as a bad and insecure habit regardless of HTTP::Body::MultiPart implementation.
|