CVE-2015-4116
Critical · 9.8CVSS
9.8
EPSS
5.5%
Published
May 16, 2016
CISA due date
—
Cloudanix analysis
A flaw in older PHP versions lets attackers take over a computer by sending specially crafted data, so organizations should update the software to stop them.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Use-after-free in spl_ptr_heap_insert triggered by a failed SplMinHeap::compare allows memory corruption that can be leveraged for remote code execution.
Why it matters to the business
Attackers can gain full control of affected systems, risking data theft, ransomware deployment, or service outages; although the issue is years old and not currently tracked in CISA KEV, the presence of public exploits keeps residual risk for any unpatched deployments.
How an attack unfolds
An attacker supplies input that causes a compare operation to fail inside SplMinHeap, leaving a dangling pointer that is later dereferenced to execute attacker-controlled code; public exploit code exists but no named APT groups are recorded using it.
How to fix it
Upgrade epiphany-browser to the fixed versions: Debian 10/11/12/13/14 to 3.22.6-1 and Ubuntu 18.04 LTS to 3.28.6-0ubuntu1; also ensure the underlying PHP runtime is at least 5.5.27 or 5.6.11.
How to confirm the fix worked
Verify installed package versions match or exceed the listed fixed releases and confirm PHP reports 5.5.27+ or 5.6.11+; re-test the affected heap functions with known trigger inputs if regression testing is available.
Typical attack path
- Locate a service or application using a vulnerable PHP build
- Send a specially crafted request that exercises SplMinHeap::compare
- Trigger the use-after-free to corrupt heap metadata
- Achieve arbitrary code execution via the resulting memory primitive
How to detect it
Review web-server and application logs for anomalous requests that reach heap-related PHP functions; examine crash dumps or core files for use-after-free signatures around spl_heap.c; correlate with any post-exploitation activity such as unexpected process creation.
What your security team should do
- Apply the listed package upgrades immediately on all affected Debian and Ubuntu systems
- Scan for any remaining PHP versions older than 5.5.27 or 5.6.11
- Monitor EPSS and exploit-availability feeds for any future rise in activity
- Remove or isolate legacy epiphany-browser instances that cannot be updated
The record
Use-after-free vulnerability in the spl_ptr_heap_insert function in ext/spl/spl_heap.c in PHP before 5.5.27 and 5.6.x before 5.6.11 allows remote attackers to execute arbitrary code by triggering a failed SplMinHeap::compare operation.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| SUSE:Linux Enterprise Module for Web and Scripting 12 | php5 | 0 | 5.5.14-59.2 |
| SUSE:Linux Enterprise Server 11 SP2-LTSS | php53 | 0 | 5.3.17-47.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | php53 | 0 | 5.3.17-71.1 |
| SUSE:Linux Enterprise Server 11 SP3-TERADATA | php53 | 0 | 5.3.17-71.1 |
| SUSE:Linux Enterprise Server 11 SP4 | php53 | 0 | 5.3.17-71.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | php53 | 0 | 5.3.17-71.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | php53 | 0 | 5.3.17-71.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | php5 | 0 | 5.5.14-59.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | php5 | 0 | 5.5.14-59.2 |
| SUSE:Manager 2.1 | php53 | 0 | 5.3.17-71.1 |
| SUSE:Manager Proxy 2.1 | php53 | 0 | 5.3.17-71.1 |
| SUSE:OpenStack Cloud 5 | php53 | 0 | 5.3.17-71.1 |
| Ubuntu:14.04:LTS | php5 | 0 | 5.5.9+dfsg-1ubuntu4.19 |
| Ubuntu:16.04:LTS | php7.0 | 0 | 7.0.8-0ubuntu0.16.04.2 |
Related vulnerabilities
- CVE-2017-16642 In PHP before 5.6.32, 7.x before 7.0.25, and 7.1.x before 7.1.11, an error in the date… Also affects php5
- CVE-2017-12933 The finish_nested_data function in ext/standard/var_unserializer.re in PHP before 5.6.31… Also affects php5
- CVE-2017-7890 The GIF decoding function gdImageCreateFromGifCtx in gd_gif_in.c in the GD Graphics… Also affects php5
- CVE-2016-10166 Integer underflow in the _gdContributionsAlloc function in gd_interpolation.c in the GD… Also affects php5
- CVE-2015-8994 An issue was discovered in PHP 5.x and 7.x, when the configuration uses… Also affects php5
- CVE-2016-6911 The dynamicGetbuf function in the GD Graphics Library (aka libgd) before 2.2.4 allows… Also affects php5
- CVE-2016-10158 The exif_convert_any_to_int function in ext/exif/exif.c in PHP before 5.6.30, 7.0.x… Also affects php5
- CVE-2016-10161 The object_common1 function in ext/standard/var_unserializer.c in PHP before 5.6.30… Also affects php5