The compile_regex function in pcre_compile.c in PCRE before 8.38 and pcre2_compile.c in PCRE2 before 10.2x mishandles the /(?J:(?|(:(?|(?'R')(\k'R')|((?'R')))H'Rk'Rf)|s(?'R'))))/ and /(?J:(?|(:(?|(?'R')(\z(?|(?'R')(\k'R')|((?'R')))k'R')|((?'R')))H'Ak'Rf)|s(?'R')))/ patterns, and related patterns with certain group references, which allows remote attackers to cause a denial of service (heap-based buffer overflow) or possibly have unspecified other impact via a crafted regular expression, as demonstrated by a JavaScript RegExp object encountered by Konqueror.
The product performs operations on a memory buffer, but it reads from or writes to a memory location outside the buffer's intended boundary. This may result in read or write operations on unexpected memory locations that could be linked to other variables, data structures, or internal program data.
Link | Tags |
---|---|
http://www.openwall.com/lists/oss-security/2015/11/29/1 | third party advisory mailing list |
https://access.redhat.com/errata/RHSA-2016:1132 | vendor advisory |
http://rhn.redhat.com/errata/RHSA-2016-2750.html | vendor advisory |
http://www.securityfocus.com/bid/76187 | vdb entry third party advisory |
https://bugs.exim.org/show_bug.cgi?id=1667 | exploit |
https://bugs.exim.org/show_bug.cgi?id=1672 | exploit |
https://bto.bluecoat.com/security-advisory/sa128 | third party advisory |
http://vcs.pcre.org/pcre/code/trunk/ChangeLog?view=markup | release notes exploit |
https://security.gentoo.org/glsa/201607-02 | vendor advisory |