← Back to Labs
Security Advisory

CVE-2026-109618

About

PHP uses longjmp() for out-of-memory (OOM) errors to exit the current context and abort handling of the request. Some contexts may not properly account for this scenario and leave request memory in an uninitialized state before performing an allocation. The subsequent request cleanup procedure may read or branch on this memory. Multiple OOM strategies can consistently trigger this condition and lead to remote code execution (RCE).

Rainforest analyst review

PHP aborts an out-of-memory request by jumping straight out of the current context with longjmp(), skipping the normal cleanup path. The flaw is that some code paths don't account for that early exit: they leave request memory in a half-initialized state, and the cleanup routine that runs next reads — or makes control-flow decisions on — those uninitialized bytes. An attacker who can push the interpreter into an out-of-memory condition on demand (and there are several reliable ways to do that from an ordinary request) can influence what lands in that memory and turn a crash into remote code execution, with no authentication and no user interaction.

What makes this one heavy is where PHP runs. It is the engine behind a large slice of the web — from bespoke applications to WordPress, Drupal and Magento — and it usually sits directly reachable from the internet. A memory-corruption bug in the core interpreter is not contained to one plugin or one app; it is a property of the runtime every one of those sites shares. The fix is to upgrade to the patched PHP release. Where you cannot patch immediately, cap per-request memory and concurrency to make the OOM condition harder to drive, and treat any internet-facing PHP front-end that accepts untrusted input as a priority.

References

Related CVEs

Frequently asked questions

What is CVE-2026-109618?

PHP uses longjmp() for out-of-memory (OOM) errors to exit the current context and abort handling of the request. Some contexts may not properly account for this scenario and leave request memory in an uninitialized state before performing an allocation. The subsequent request cleanup procedure may read or branch on this memory.

How severe is CVE-2026-109618?

CVE-2026-109618 carries a CVSS 3.1 base score of 9.8, rated critical. On the Rainforest Risk Index — which weighs the severity alongside how easy the flaw is to reach and how broad its impact is — it scores 99 out of 100, in the critical band.

How is CVE-2026-109618 exploited?

According to the CVSS vector (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H): attack vector Network, attack complexity Low, privileges required None, user interaction None. Impact on confidentiality High, integrity High and availability High.

Which products are affected by CVE-2026-109618?

Public advisories list the following as affected: php. Check the references on this page for the exact versions each vendor confirms.

How do I fix CVE-2026-109618?

Apply the fix the vendor published — the references on this page link to the primary advisories and patches. When patching can't happen right away, reduce the exposure of the affected component and watch it for exploitation attempts. Rainforest customers see this vulnerability correlated to their own assets and prioritized by real exposure, not by score alone.

Empower Your Security Strategy with Rainforest

Discover vulnerabilities early, prioritize critical threats, and protect what truly matters. Rainforest streamlines your security operations, saving you time and reducing costs, so you can focus on what drives your business forward.

Share this:LinkedInX Email