Bug 383371 (CVE-2006-7228)
Summary: | CVE-2006-7228 pcre integer overflow | ||
---|---|---|---|
Product: | [Other] Security Response | Reporter: | Josh Bressers <bressers> |
Component: | vulnerability | Assignee: | Red Hat Product Security <security-response-team> |
Status: | CLOSED ERRATA | QA Contact: | |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | unspecified | CC: | james.antill, karsten, kasal, kreilly, omoris, thoger |
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: | 2008-01-11 17:33:45 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: | |||
Bug Depends On: | 380511, 380521, 380531, 380541, 381991, 382081, 392031, 392041, 392051, 392061, 411731, 413871, 414271, 430870, 445917 | ||
Bug Blocks: | 373021 |
Description
Josh Bressers
2007-11-14 20:53:56 UTC
Reference in PCRE changelog for version 6.7: 11. Subpatterns that are repeated with specific counts have to be replicated in the compiled pattern. The size of memory for this was computed from the length of the subpattern and the repeat count. The latter is limited to 65535, but there was no limit on the former, meaning that integer overflow could in principle occur. The compiled length of a repeated subpattern is now limited to 30,000 bytes in order to prevent this. Looking at the RHEL-4 included pcre, the only thing I can see referencing duplength is: if (minval == 0) length++; else if (minval > 1) length += (minval - 1) * duplength; if (maxval > minval) length += (maxval - minval) * (duplength + 1); ...which does look like a bug, but the code is different (the code is basically the same for RHEL-2.1 and RHEL-3). It looks like that's the "only"[1] thing I need to fix, is that so? [1] I've also added the code to get out the loop and fail if any of the adds in the loop cross the 65535 barrier or go negative. My comment is in reference to python's pypcre (for anyone being confused about now :). Re comment 11: James, I'm not quite sure I understand your question, hope I do... ;) Yes, the code snippet is the place where the problem occurs. I've checked your patch. Unlike upstream pcre, it does not add arbitrary hard-coded limit (duplength <= 30000), but looks good to me. This issue was addressed in: Red Hat Enterprise Linux: http://rhn.redhat.com/errata/RHSA-2007-1059.html http://rhn.redhat.com/errata/RHSA-2007-1063.html http://rhn.redhat.com/errata/RHSA-2007-1065.html http://rhn.redhat.com/errata/RHSA-2007-1068.html http://rhn.redhat.com/errata/RHSA-2007-1077.html http://rhn.redhat.com/errata/RHSA-2007-1076.html |