Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

redhat логотип

CVE-2026-15534

Опубликовано: 09 авг. 2026
Источник: redhat
CVSS3: 5.7

Описание

Perl versions through 5.45.1 have out-of-bounds heap reads and writes during regular expression matching via an undersized superlinear cache in S_regmatch. The regex engine's superlinear cache holds one bit per subject position for each participating WHILEM node, so the bit count is the subject length plus one times the number of nodes. Nothing checks that product for positive overflow of the signed 32-bit count: a 286331153 byte subject matched against a pattern with 15 participating nodes stores the count as 14, leaving a two byte cache. The cache is then indexed from the real match position and node number, so reads go past the end of the allocation, and on failure CACHEsayNO sets a bit past it. A caller that matches an attacker controlled subject of this size against a pattern of this shape can crash the process or corrupt heap memory.

A flaw was found in Perl. An integer overflow vulnerability in the regular expression engine's superlinear cache calculation can lead to out-of-bounds memory reads and writes. A remote attacker could exploit this by providing a specially crafted, large input string during regular expression matching. This could result in a denial of service (DoS) due to a process crash or potentially lead to heap memory corruption, enabling arbitrary code execution.

Отчет

This flaw has a Moderate impact. Perl's regular expression engine contains a signed 32-bit integer overflow in the superlinear-cache size calculation (S_regmatch) that can cause out-of-bounds heap reads and writes during regex matching. Triggering it requires an application to match an attacker-controlled subject of roughly 273 MiB against a pattern containing at least 15 participating WHILEM nodes, so attack complexity is high. Successful exploitation most likely results in a process crash (denial of service); the out-of-bounds access is bit-granular into a cache bitmap, so controlled memory corruption or arbitrary code execution has not been demonstrated. Given the large, unusual inputs required and the limited reachability of the vulnerable path, Red Hat has deferred fixing this issue; residual risk is limited to a potential denial of service in applications matching very large untrusted inputs against complex patterns.

Меры по смягчению последствий

Applications can reduce exposure by limiting the size of untrusted input passed to regular-expression matching (the overflow requires a subject on the order of 273 MiB) and by avoiding matching untrusted data against highly complex patterns.

Затронутые пакеты

ПлатформаПакетСостояниеРекомендацияРелиз
Red Hat Enterprise Linux 10perlFix deferred
Red Hat Enterprise Linux 6perlFix deferred
Red Hat Enterprise Linux 7perlFix deferred
Red Hat Enterprise Linux 8perlFix deferred
Red Hat Enterprise Linux 8perl:5.32/perlFix deferred
Red Hat Enterprise Linux 9perlFix deferred
Red Hat OpenShift AI (RHOAI)rhoai/odh-workbench-codeserver-datascience-cpu-py312-rhel9Under investigation
Red Hat OpenShift Container Platform 4rhcosUnder investigation
Red Hat OpenShift Dev Spacesdevspaces/code-rhel9Under investigation
Red Hat Hardened Imagesperl-main-1.03-525.1.hum1FixedRHSA-2026:6340303.09.2026

Показывать по

Дополнительная информация

Статус:

Moderate
Дефект:
CWE-190
https://bugzilla.redhat.com/show_bug.cgi?id=2512950perl: Perl: Arbitrary code execution via out-of-bounds memory access in regular expression engine.

5.7 Medium

CVSS3

Связанные уязвимости

CVSS3: 5.7
ubuntu
около 1 месяца назад

Perl versions through 5.45.1 have out-of-bounds heap reads and writes during regular expression matching via an undersized superlinear cache in S_regmatch. The regex engine's superlinear cache holds one bit per subject position for each participating WHILEM node, so the bit count is the subject length plus one times the number of nodes. Nothing checks that product for positive overflow of the signed 32-bit count: a 286331153 byte subject matched against a pattern with 15 participating nodes stores the count as 14, leaving a two byte cache. The cache is then indexed from the real match position and node number, so reads go past the end of the allocation, and on failure CACHEsayNO sets a bit past it. A caller that matches an attacker controlled subject of this size against a pattern of this shape can crash the process or corrupt heap memory.

CVSS3: 5.7
nvd
около 1 месяца назад

Perl versions through 5.45.1 have out-of-bounds heap reads and writes during regular expression matching via an undersized superlinear cache in S_regmatch. The regex engine's superlinear cache holds one bit per subject position for each participating WHILEM node, so the bit count is the subject length plus one times the number of nodes. Nothing checks that product for positive overflow of the signed 32-bit count: a 286331153 byte subject matched against a pattern with 15 participating nodes stores the count as 14, leaving a two byte cache. The cache is then indexed from the real match position and node number, so reads go past the end of the allocation, and on failure CACHEsayNO sets a bit past it. A caller that matches an attacker controlled subject of this size against a pattern of this shape can crash the process or corrupt heap memory.

CVSS3: 5.7
msrc
около 1 месяца назад

Perl versions through 5.45.1 have out-of-bounds heap reads and writes during regular expression matching via an undersized superlinear cache in S_regmatch

CVSS3: 5.7
debian
около 1 месяца назад

Perl versions through 5.45.1 have out-of-bounds heap reads and writes ...

CVSS3: 5.7
github
около 1 месяца назад

Perl versions through 5.45.1 have out-of-bounds heap reads and writes during regular expression matching via an undersized superlinear cache in S_regmatch. The regex engine's superlinear cache holds one bit per subject position for each participating WHILEM node, so the bit count is the subject length plus one times the number of nodes. Nothing checks that product for positive overflow of the signed 32-bit count: a 286331153 byte subject matched against a pattern with 15 participating nodes stores the count as 14, leaving a two byte cache. The cache is then indexed from the real match position and node number, so reads go past the end of the allocation, and on failure CACHEsayNO sets a bit past it. A caller that matches an attacker controlled subject of this size against a pattern of this shape can crash the process or corrupt heap memory.

5.7 Medium

CVSS3