Oniguruma: Multiple vulnerabilities CVE-2019-19012, CVE-2019-19203, CVE-2019-19204, CVE-2019-19246)
CVE-2019-19246: heap-based buffer overflow in str_lower_case_match in regexec.c
Oniguruma through 6.9.3, as used in PHP 7.3.x and other products, has a heap-based buffer over-read in str_lower_case_match in regexec.c.
References:
https://nvd.nist.gov/vuln/detail/CVE-2019-19246
Patch:
https://github.com/kkos/oniguruma/commit/d3e402928b6eb3327f8f7d59a9edfa622fec557b
CVE-2019-19012: Integer overflow related to reg->dmax in search_in_range (regexec.c)
An integer overflow in the search_in_range function in regexec.c in Oniguruma 6.x before 6.9.4_rc2 leads to an out-of-bounds read, in which the offset of this read is under the control of an attacker. (This only affects the 32-bit compiled version). Remote attackers can cause a denial-of-service or information disclosure, or possibly have unspecified other impact, via a crafted regular expression.
References:
CVE-2019-19203: heap-buffer-overflow in gb18030_mbc_enc_len
An issue was discovered in Oniguruma 6.x before 6.9.4_rc2. In the function gb18030_mbc_enc_len in file gb18030.c, a UChar pointer is dereferenced without checking if it passed the end of the matched string. This leads to a heap-based buffer over-read.
References:
CVE-2019-19204: heap-buffer-overflow in fetch_interval_quantifier due to double PFETCH
An issue was discovered in Oniguruma 6.x before 6.9.4_rc2. In the function fetch_interval_quantifier (formerly known as fetch_range_quantifier) in regparse.c, PFETCH is called without checking PEND. This leads to a heap-based buffer over-read.
References:
Affected branches:
-
master (e51c59c5) -
3.10-stable -
3.9-stable -
3.8-stable