Description
e107 is a content management system (CMS). Prior to 2.3.7, install.php decodes the attacker-controlled previous_steps POST parameter and passes it to unserialize() at file scope and again in the e_install constructor without restricting allowed classes. The installer remains accessible after a normal installation, and a crafted object graph using the bundled GuzzleHttp\Psr7\PumpStream class can flow through paths.hash into site_path, where string coercion invokes an attacker-controlled callable. An unauthenticated attacker who can reach install.php can therefore execute arbitrary PHP functions with the web server process's privileges, leading to full server compromise. This issue is fixed in version 2.3.7.
References5
- github.com/e107inc/e107/commit/5d6d649e8cf01854d6024d07997c2449…
- github.com/e107inc/e107/commit/6c404295213952aedb9b3689be19dd4c…
- github.com/e107inc/e107/releases/tag/v2.3.7
- github.com/e107inc/e107/security/advisories/GHSA-c8h6-wpj3-4cr8
- github.com/e107inc/e107/security/advisories/GHSA-c8h6-wpj3-4cr8
Metrics
- CVSS 3.1
-
9.8
CRITICAL
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - EPSS — exploit probability
- 1% percentile: 54 · as of 11 November 2026
- CWE
- CWE-502
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.