← All CVEs NewScan detects
critical

CVE-2026-72710

SPIP remote code execution via the editer_objet action - attacker rows injected into the spip_jobs queue are unserialized and executed by cron

Severity
critical
Affected product
SPIP
Affected versions
SPIP ≥ 4.4.0, < 4.4.18
Fixed in
SPIP 4.4.18
Added to NewScan
2026-09-12
Detected by
NewScan — free, self-hosted

How NewScan reports it

COMPONENT VERSION RANGE

NewScan fingerprints SPIP from its response and reports this CVE when the detected version falls inside the affected range below.

Added 2026-09-12. CVSS 9.3 (v4) / 9.8 (v3.1). The editer_objet action resolves the SQL table named by `arg` without an editable-columns allowlist, so `arg=job/0` writes an attacker-controlled row into spip_jobs; its `fonction` and `args` are unserialized and called when the cron queue drains, which is arbitrary PHP execution on the host. Link 3 of the Lexfo chain and the reason the other two matter - it needs only `a valid nonce`, which CVE-2026-72709's missing autoriser() check hands to an unauthenticated caller. Note the deferred trigger: execution happens when cron next runs, NOT in the attacker's request, so nothing about this is provable by response-time or by an in-band echo. Same `ge 4.4.0` bound and same three-row rationale as the CVE-2026-72709 row above. Version-match only. Reachable through the SPIP tech_signatures rows via GET /CHANGELOG.md; what was re-measured live on 2026-09-12 is the version read - a running ipeos/spip served `## 4.4.21 - 2026-08-20` and fingerprinted as SPIP 4.4.21 with no findings - which puts the container above this row's `lt 4.4.18`, i.e. on the patched side. Both sides of 4.4.18 are pinned as fixtures in tests/integration/tech_version_from_checks.py.

References

Scan for this yourself — local, in-band scanning is free.

Get NewScan (FREE) →