Home/ Blog/ Security news/ Article
Blog · Security news

A single web request can hijack SPIP websites with no login, and the first patch missed it (CVE-2026-77806)

SPIP before 4.4.21 has a critical unauthenticated code-execution flaw (CVE-2026-77806, CVSS 9.8) exploited in the wild. The 4.4.20 patch fell short; update now.

A thin sliver of light piercing a narrow gap in a dark wall

A single crafted web request can take full control of a SPIP-powered website, and the fix most operators installed yesterday does not stop it. SPIP is a widely deployed open-source content management system used by news outlets, associations, and public-sector sites, and it has a critical flaw tracked as CVE-2026-77806. It carries a CVSS score of 9.8, needs no login, and both MITRE and SPIP's own team report it is being exploited in the wild this month.

The sequence is the urgent part. SPIP shipped an emergency release, 4.4.20, to patch this corner of its code. Within about a day it had to ship 4.4.21, because the first fix left the door open. If you updated to 4.4.20 and moved on, your site is still exposed. The only version that closes the flaw is 4.4.21.

CVE-2026-77806 at a glance
9.8
CVSS severity
critical
None
Login needed to exploit
unauthenticated, remote
4.4.21
Version that fixes it
update from any 4.4.x
Source: MITRE CVE record and the SPIP 4.4.21 security advisory.

What the flaw lets an attacker do

SPIP builds its pages through a template engine that runs filters over incoming data. This bug lives in that machinery. An attacker sends an ordinary-looking HTTP request with one extra header named X-Spip-Filtre, and SPIP's analyse_resultat_skel routine handles the header contents unsafely. The header carries a chain of SPIP template filters, and a crafted chain turns attacker-supplied text into a command the server then runs. No account, no password, and nothing for a victim to click.

Execution lands as the web server user. From that position an attacker can read application secrets, drop a web shell for persistence, reach the database, or use the host as a foothold into the rest of your infrastructure. It is the same class of unauthenticated takeover we walked through with the Forminator WordPress plugin and the Phoca Cart flaws: the front door is a public web request that needs nothing from the person running the site.

Why patching to 4.4.20 is not enough

SPIP's team, which received the report anonymously through France's national cybersecurity agency ANSSI, describes this as a universal pre-authentication code-execution flaw that its built-in security screen does not catch. That screen normally blocks a large share of injection attempts before they reach application logic, so operators lean on it. Here it offers no protection, which is why the vendor calls the update mandatory and urgent.

What makes this one worse than a routine critical is the double release. The 4.4.20 build, put out one day earlier, addressed the same code path but did not fully close it. Public exploit development already reflects that: a Metasploit module in progress targets exactly this header handling, and the contributor behind it flags 4.4.20 as an incomplete fix. That work is filed under the earlier identifier CVE-2026-77647, while MITRE tracks the flaw that 4.4.21 fixes as CVE-2026-77806. For a defender the identifier matters less than the version: anything below 4.4.21 in the 4.4 branch should be treated as vulnerable, and teams on older SPIP branches should follow the vendor's advisory for their line.

How to tell if someone tried it

This flaw comes with an unusually clean detection signal. The attack rides a request header that legitimate traffic essentially never sends, so its presence against a SPIP site is suspicious on its own. Pull your web server, reverse proxy, and application-firewall logs and search for inbound requests carrying that X-Spip-Filtre header. Because SPIP has been under active exploitation this month, extend the search back through the days before you patched, not just forward from now.

Header hits are the first pass. The second is looking for what a successful hit leaves behind: PHP processes or files created by the web server user that you cannot explain, new files under the web root, unexpected outbound connections from the host, and modified template or configuration files. Public exploit code circulating is the reason to treat exploitation as ongoing rather than theoretical, the same posture we take on any flaw where a working unauthenticated attack is already in the open.

Patch to 4.4.21, then hunt for the header

Update every SPIP install in the 4.4 branch to 4.4.21 now, using the current spip_loader from the official SPIP download site. Confirm the running version afterward, since a site stopped at 4.4.20 will look patched but is not. If you genuinely cannot patch in the next hours, block or strip requests that contain the X-Spip-Filtre header at your web application firewall or reverse proxy as a stopgap, then patch as soon as you can, because only 4.4.21 removes the flaw.

After patching, do the log review rather than assuming the update ended it. Patching closes the hole going forward; it tells you nothing about whether you were hit in the window while the fix was incomplete or before you applied it. On an internet-facing content management system under confirmed exploitation, that window is exactly where the compromise you have not noticed yet would live.

Topics

Frequently asked questions

What is CVE-2026-77806?

CVE-2026-77806 is a critical unauthenticated remote code execution flaw in the SPIP content management system, rated CVSS 9.8. An attacker can run commands on the web server by sending a crafted X-Spip-Filtre HTTP request header, with no login. SPIP versions before 4.4.21 are affected.

Which SPIP versions are affected, and which one fixes it?

SPIP 4.4.20 and earlier in the 4.4 branch are vulnerable to CVE-2026-77806; version 4.4.21 fixes it. SPIP released 4.4.20 a day earlier to patch the same code path, but according to SPIP's advisory and public Metasploit development notes that fix was incomplete, so updating only to 4.4.20 does not protect you.

Is CVE-2026-77806 being exploited?

Yes. Both the MITRE CVE record and SPIP's own advisory state the flaw has been exploited in the wild in August 2026. A Metasploit exploit module targeting it is also in development, so any exposed, unpatched SPIP site should be treated as an active target.

How can defenders detect exploitation attempts?

Search your web server, proxy, and firewall logs for inbound requests carrying an X-Spip-Filtre header. Normal clients do not send this header, so its presence against a SPIP site is a strong indicator. Also hunt for unexpected PHP execution or new files created by the web server user.

Does SPIP's security screen protect against this?

No. SPIP's advisory states that its built-in security screen does not cover this vulnerability. That layer catches many injection attempts, but not this one, which is why upgrading to 4.4.21 is the only reliable fix rather than a workaround.

What should I do if I cannot patch immediately?

Block or strip inbound requests that contain the X-Spip-Filtre header at your web application firewall or reverse proxy as an interim measure. Then review your logs for that header and update to SPIP 4.4.21 as soon as possible, since only the patch closes the flaw.

Ready to meet the Guardians?

Deploys fast - agentless for monitoring and cloud, a lightweight agent for deep endpoint security. Just Suriq, standing watch.