CVE-2019-19204
Description
Heap buffer over-read in Oniguruma's fetch_interval_quantifier allows out-of-bounds read via crafted regex.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
Heap buffer over-read in Oniguruma's fetch_interval_quantifier allows out-of-bounds read via crafted regex.
Vulnerability
Oniguruma versions 6.x before 6.9.4_rc2 have a heap-based buffer over-read in the fetch_interval_quantifier function in regparse.c. The issue is that PFETCH is called without checking if the pointer has reached the end of the input (PEND), leading to a read beyond the allocated buffer. This occurs when parsing a specially crafted regular expression pattern that includes an escaped brace interval like _\{21\}[1][3].
Exploitation
An attacker can trigger the vulnerability by supplying a malicious regular expression pattern to an application that uses Oniguruma. The provided proof-of-concept uses the pattern _\{21\} and compiles it with ONIG_SYNTAX_GREP. No authentication or special privileges are required; the attacker only needs to be able to submit a regex for compilation[1][3].
Impact
Successful exploitation results in a heap-based buffer over-read, which can cause a crash or disclose sensitive memory contents. The crash log from AddressSanitizer shows a read of size 1 at an invalid address, leading to denial of service. Under certain conditions, this could potentially be leveraged for information disclosure[1][3].
Mitigation
The issue is fixed in Oniguruma version 6.9.4_rc2, released on the project's GitHub page[4]. Users should upgrade to this version or later. If upgrading is not immediately possible, avoid processing untrusted regular expression patterns with affected versions of Oniguruma. No other workarounds have been published.
AI Insight generated on May 26, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected products
64- Oniguruma/Onigurumadescription
- Range: <6.9.4_rc2
- osv-coords62 versionspkg:rpm/almalinux/apcu-panelpkg:rpm/almalinux/libzippkg:rpm/almalinux/libzip-develpkg:rpm/almalinux/libzip-toolspkg:rpm/almalinux/onigurumapkg:rpm/almalinux/oniguruma-develpkg:rpm/almalinux/phppkg:rpm/almalinux/php-bcmathpkg:rpm/almalinux/php-clipkg:rpm/almalinux/php-commonpkg:rpm/almalinux/php-dbapkg:rpm/almalinux/php-dbgpkg:rpm/almalinux/php-develpkg:rpm/almalinux/php-embeddedpkg:rpm/almalinux/php-enchantpkg:rpm/almalinux/php-fpmpkg:rpm/almalinux/php-gdpkg:rpm/almalinux/php-gmppkg:rpm/almalinux/php-intlpkg:rpm/almalinux/php-jsonpkg:rpm/almalinux/php-ldappkg:rpm/almalinux/php-mbstringpkg:rpm/almalinux/php-mysqlndpkg:rpm/almalinux/php-odbcpkg:rpm/almalinux/php-opcachepkg:rpm/almalinux/php-pdopkg:rpm/almalinux/php-pearpkg:rpm/almalinux/php-pecl-apcupkg:rpm/almalinux/php-pecl-apcu-develpkg:rpm/almalinux/php-pecl-rrdpkg:rpm/almalinux/php-pecl-xdebugpkg:rpm/almalinux/php-pecl-zippkg:rpm/almalinux/php-pgsqlpkg:rpm/almalinux/php-processpkg:rpm/almalinux/php-recodepkg:rpm/almalinux/php-snmppkg:rpm/almalinux/php-soappkg:rpm/almalinux/php-xmlpkg:rpm/almalinux/php-xmlrpcpkg:rpm/opensuse/oniguruma&distro=openSUSE%20Leap%2015.3pkg:rpm/opensuse/oniguruma&distro=openSUSE%20Leap%2015.4pkg:rpm/opensuse/oniguruma&distro=openSUSE%20Leap%20Micro%205.2pkg:rpm/opensuse/oniguruma&distro=openSUSE%20Tumbleweedpkg:rpm/suse/oniguruma&distro=SUSE%20Enterprise%20Storage%206pkg:rpm/suse/oniguruma&distro=SUSE%20Enterprise%20Storage%207pkg:rpm/suse/oniguruma&distro=SUSE%20Linux%20Enterprise%20High%20Performance%20Computing%2015%20SP1-ESPOSpkg:rpm/suse/oniguruma&distro=SUSE%20Linux%20Enterprise%20High%20Performance%20Computing%2015%20SP1-LTSSpkg:rpm/suse/oniguruma&distro=SUSE%20Linux%20Enterprise%20High%20Performance%20Computing%2015%20SP2-ESPOSpkg:rpm/suse/oniguruma&distro=SUSE%20Linux%20Enterprise%20High%20Performance%20Computing%2015%20SP2-LTSSpkg:rpm/suse/oniguruma&distro=SUSE%20Linux%20Enterprise%20Micro%205.1pkg:rpm/suse/oniguruma&distro=SUSE%20Linux%20Enterprise%20Micro%205.2pkg:rpm/suse/oniguruma&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Basesystem%2015%20SP3pkg:rpm/suse/oniguruma&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Basesystem%2015%20SP4pkg:rpm/suse/oniguruma&distro=SUSE%20Linux%20Enterprise%20Server%2015%20SP1-BCLpkg:rpm/suse/oniguruma&distro=SUSE%20Linux%20Enterprise%20Server%2015%20SP1-LTSSpkg:rpm/suse/oniguruma&distro=SUSE%20Linux%20Enterprise%20Server%2015%20SP2-BCLpkg:rpm/suse/oniguruma&distro=SUSE%20Linux%20Enterprise%20Server%2015%20SP2-LTSSpkg:rpm/suse/oniguruma&distro=SUSE%20Linux%20Enterprise%20Server%20for%20SAP%20Applications%2015%20SP1pkg:rpm/suse/oniguruma&distro=SUSE%20Linux%20Enterprise%20Server%20for%20SAP%20Applications%2015%20SP2pkg:rpm/suse/oniguruma&distro=SUSE%20Manager%20Proxy%204.1pkg:rpm/suse/oniguruma&distro=SUSE%20Manager%20Retail%20Branch%20Server%204.1pkg:rpm/suse/oniguruma&distro=SUSE%20Manager%20Server%204.1
< 5.1.17-1.module_el8.3.0+2009+b272fdef+ 61 more
- (no CPE)range: < 5.1.17-1.module_el8.3.0+2009+b272fdef
- (no CPE)range: < 1.5.2-1.module_el8.5.0+152+112d3b8c
- (no CPE)range: < 1.5.2-1.module_el8.4.0+2229+b272fdef
- (no CPE)range: < 1.5.2-1.module_el8.5.0+152+112d3b8c
- (no CPE)range: < 6.8.2-2.1.el8_9
- (no CPE)range: < 6.8.2-2.1.el8_9
- (no CPE)range: < 7.3.20-1.module_el8.4.0+2229+b272fdef
- (no CPE)range: < 7.3.20-1.module_el8.4.0+2229+b272fdef
- (no CPE)range: < 7.3.20-1.module_el8.5.0+152+112d3b8c
- (no CPE)range: < 7.3.20-1.module_el8.3.0+2009+b272fdef
- (no CPE)range: < 7.3.20-1.module_el8.5.0+152+112d3b8c
- (no CPE)range: < 7.3.20-1.module_el8.3.0+2009+b272fdef
- (no CPE)range: < 7.3.20-1.module_el8.4.0+2229+b272fdef
- (no CPE)range: < 7.3.20-1.module_el8.3.0+2009+b272fdef
- (no CPE)range: < 7.3.20-1.module_el8.4.0+2229+b272fdef
- (no CPE)range: < 7.3.20-1.module_el8.5.0+152+112d3b8c
- (no CPE)range: < 7.3.20-1.module_el8.4.0+2229+b272fdef
- (no CPE)range: < 7.3.20-1.module_el8.3.0+2009+b272fdef
- (no CPE)range: < 7.3.20-1.module_el8.5.0+152+112d3b8c
- (no CPE)range: < 7.3.20-1.module_el8.3.0+2009+b272fdef
- (no CPE)range: < 7.3.20-1.module_el8.5.0+152+112d3b8c
- (no CPE)range: < 7.3.20-1.module_el8.5.0+152+112d3b8c
- (no CPE)range: < 7.3.20-1.module_el8.4.0+2229+b272fdef
- (no CPE)range: < 7.3.20-1.module_el8.3.0+2009+b272fdef
- (no CPE)range: < 7.3.20-1.module_el8.5.0+152+112d3b8c
- (no CPE)range: < 7.3.20-1.module_el8.5.0+152+112d3b8c
- (no CPE)range: < 1:1.10.9-1.module_el8.3.0+2009+b272fdef
- (no CPE)range: < 5.1.17-1.module_el8.5.0+152+112d3b8c
- (no CPE)range: < 5.1.17-1.module_el8.3.0+2009+b272fdef
- (no CPE)range: < 2.0.1-1.module_el8.6.0+2750+78feabcb
- (no CPE)range: < 2.8.0-1.module_el8.5.0+152+112d3b8c
- (no CPE)range: < 1.15.4-1.module_el8.4.0+2229+b272fdef
- (no CPE)range: < 7.3.20-1.module_el8.5.0+152+112d3b8c
- (no CPE)range: < 7.3.20-1.module_el8.4.0+2229+b272fdef
- (no CPE)range: < 7.3.20-1.module_el8.5.0+152+112d3b8c
- (no CPE)range: < 7.3.20-1.module_el8.3.0+2009+b272fdef
- (no CPE)range: < 7.3.20-1.module_el8.4.0+2229+b272fdef
- (no CPE)range: < 7.3.20-1.module_el8.4.0+2229+b272fdef
- (no CPE)range: < 7.3.20-1.module_el8.5.0+152+112d3b8c
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.9.7.1-1.2
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
- (no CPE)range: < 6.7.0-150000.3.3.1
Patches
21 file changed · +1 −1
HISTORY+1 −1 modified@@ -1,6 +1,6 @@ History -2019/MM/DD: Version 6.9.4 +2019/11/29: Version 6.9.4 2019/11/22: Release Candidate 3 for Version 6.9.4
681824e81bb5change pattern size to be random
1 file changed · +9 −4
harnesses/encode-harness.c+9 −4 modified@@ -152,7 +152,7 @@ output_data(char* path, const uint8_t * data, size_t size) #define EXEC_PRINT_INTERVAL 10000000 -#define MAX_PATTERN_SIZE 100 +#define MAX_PATTERN_SIZE 150 #ifdef SYNTAX_TEST #define NUM_CONTROL_BYTES 3 @@ -238,9 +238,14 @@ int LLVMFuzzerTestOneInput(const uint8_t * Data, size_t Size) data++; remaining_size--; - pattern_size = remaining_size / 2; - if (pattern_size > MAX_PATTERN_SIZE) - pattern_size = MAX_PATTERN_SIZE; + //pattern_size = remaining_size / 2; + if (remaining_size == 0) + pattern_size = 0; + else { + pattern_size = INPUT_COUNT % remaining_size; + if (pattern_size > MAX_PATTERN_SIZE) + pattern_size = MAX_PATTERN_SIZE; + } #if defined(UTF16_BE) || defined(UTF16_LE) if (pattern_size % 2 == 1) pattern_size--;
Vulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
6- lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/NO267PLHGYZSWX3XTRPKYBKD4J3YOU5V/mitrevendor-advisoryx_refsource_FEDORA
- lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/V3MBNW6Z4DOXSCNWGBLQ7OA3OGUJ44WL/mitrevendor-advisoryx_refsource_FEDORA
- usn.ubuntu.com/4460-1/mitrevendor-advisoryx_refsource_UBUNTU
- github.com/kkos/oniguruma/issues/162mitrex_refsource_MISC
- github.com/kkos/oniguruma/releases/tag/v6.9.4_rc2mitrex_refsource_MISC
- lists.debian.org/debian-lts-announce/2019/12/msg00002.htmlmitremailing-listx_refsource_MLIST
News mentions
0No linked articles in our index yet.