What’s Vulnerable › Vulnerabilities
CVE-2017-9228
- Severity: critical (CVSS 9.8 v3.1)
- Exploited in the wild: not listed in CISA KEV
- EPSS: 6.3% probability of exploitation in the next 30 days
- Public exploit or detection template: yes
- Published: 2017-05-24 · updated 2026-06-17
- Weakness: CWE-787
Description
An issue was discovered in Oniguruma 6.2.0, as used in Oniguruma-mod in Ruby through 2.4.1 and mbstring in PHP through 7.1.5. A heap out-of-bounds write occurs in bitset_set_range() during regular expression compilation due to an uninitialized variable from an incorrect state transition. An incorrect state transition in parse_char_class() could create an execution path that leaves a critical local variable uninitialized until it's used as an index, resulting in an out-of-bounds write memory corruption.
Affected products
- Oniguruma Project Oniguruma: 6.2.0
- PHP: from 5.6.0 before 5.6.31; from 7.0.0 before 7.0.21; from 7.1.0 before 7.1.7 — fixed in 5.6.31, 7.0.21, 7.1.7
How to fix
Upgrade to a fixed version: PHP 5.6.31, 7.0.21, 7.1.7. Check the vendor advisory for mitigations.
References
- https://access.redhat.com/errata/RHSA-2018:1296
- https://github.com/kkos/oniguruma/commit/3b63d12038c8d8fc278e81c942fa9bec7c704c8b
- https://github.com/kkos/oniguruma/issues/60
- https://access.redhat.com/errata/RHSA-2018:1296
- https://github.com/kkos/oniguruma/commit/3b63d12038c8d8fc278e81c942fa9bec7c704c8b
- https://github.com/kkos/oniguruma/issues/60
Get alerted when CVE-2017-9228 or the next vulnerability affects your stack