First published: Thu Nov 15 2007(Updated: )
From pcre changelog, version 7.0: 4. Fixed a major bug that caused incorrect computation of the amount of memory required for a compiled pattern when options that changed within the pattern affected the logic of the preliminary scan that determines the length. The relevant options are -x, and -i in UTF-8 mode. The result was that the computed length was too small. The symptoms of this bug were either the PCRE error "internal error: code overflow" from pcre_compile(), or a glibc crash with a message such as "pcretest: free(): invalid next size (fast)". Examples of patterns that provoked this bug (shown in pcretest format) are: /(?-x: )/x /(?x)(?-x: \s*#\s*)/ /((?i)[\x{c0}])/8 /(?i:[\x{c0}])/8 HOWEVER: Change 17 below makes this fix obsolete as the memory computation is now done differently. Acknowledgements: Red Hat would like to thank Ludwig Nussel for reporting this issue.
Affected Software | Affected Version | How to fix |
---|---|---|
PCRE |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
REDHAT-BUG-384801 is categorized as a major bug that can lead to incorrect memory computation when compiling patterns.
To resolve REDHAT-BUG-384801, you should update to the latest version of the PCRE library that addresses this memory computation issue.
REDHAT-BUG-384801 affects the PCRE library, specifically versions prior to the fix provided in version 7.0.
While REDHAT-BUG-384801 is a significant bug, it is focused on memory computation rather than direct security exploitation.
Failing to address REDHAT-BUG-384801 may lead to unpredictable behavior in applications relying on PCRE for pattern matching, potentially causing crashes or memory leaks.