Summary
CVE-2026-77647 is a critical, pre-authentication remote code execution vulnerability affecting all versions of SPIP prior to 4.4.20. The flaw is caused by incorrect identification of <?php blocks combined with a mishandling in var_export when a '<' character is present, allowing an unauthenticated attacker to inject and execute arbitrary PHP code. The vulnerability has a CVSS v3.1 score of 9.8 (Critical) and has reportedly been exploited in the wild since August 2026.
Technical details
- Root cause: Incorrect identification of
<?phpcode blocks combined withvar_export‘s mishandling of certain inputs, specifically the presence of a'<'character, which allows attacker-controlled data to be interpreted and executed as PHP code. - Trigger conditions: No authentication or user interaction is required; the vulnerable code path is reachable pre-authentication, described by the vendor as exploitable "without conditions" and bypassing SPIP’s security screen.
- Attack vector: Network — an attacker sends a crafted request to a publicly reachable SPIP installation.
- Impact: Full compromise of confidentiality, integrity, and availability via arbitrary PHP code execution on the affected server.
Affected software
- SPIP versions 0 through 4.4.19 (all versions prior to 4.4.20)
Severity
- CVSS v3.1 Base Score: 9.8 (Critical)
- Vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Mitigation and recommended actions
- Immediate: Upgrade to SPIP 4.4.20 or later, either by downloading the release directly or via
spip_loaderversion 7.0.0 or later. - If patching cannot be performed immediately: No official workaround has been published; given active in-the-wild exploitation, restrict or block public access to the SPIP installation until the upgrade can be completed, and monitor logs for suspicious requests.
- Distribution-specific packages (e.g., Debian) have also released patched builds — apply OS-level package updates where SPIP was installed via a distribution repository.
How IONIX identifies potentially affected assets
IONIX matches the following signals against data already collected when it crawled the asset; identifying the technology sends no request beyond that crawl.
- Named response header
composed-by: value matchingSPIP <version> @ - Named response header
x-spip-cache: presence of the header <meta name="generator">content: value matchingSPIP <version>

