Technical assessment
Python exploit for CVE-2025-71243, an unauthenticated remote code execution vulnerability in the SPIP Saisies plugin. The script injects PHP code via the `_anciennes_valeurs` parameter into a form, leveraging SPIP's template engine to execute arbitrary system commands. It includes check, single-command execution, and interactive shell modes, along with a crawler to discover vulnerable forms.
Backdoor review
No backdoor observed in reviewed code
The supplied evidence consists of a README and a Python exploit script for CVE-2025-71243. The exploit script performs the advertised vulnerability check and command execution against a user-supplied target. No concealed executable behavior, persistence, credential theft, unrelated payload, or operator-directed harm was observed. The script's network activity is limited to the user-specified target URL and optional proxy.
Model confidence98%
AuthenticationNot required
Languagespython
Target softwareSPIP Saisies plugin
Attack typesremote code executioncode injection
Evidence & reasoningClassification basis · observed behavior · safety review
Technical evidenceClassification basis and observed behavior
Classification basis
The artifact is a fully functional Python script that actively exploits CVE-2025-71243 by sending crafted HTTP requests to inject and execute arbitrary PHP code on a remote target, achieving remote code execution. It includes modes for checking vulnerability, executing single commands, and providing an interactive shell.
exploit.py:1-17exploit.py:79-80exploit.py:182-208Requirements
- Target must have a publicly accessible page containing a saisies-powered form (e.g., via Formidable plugin).
README.md:28 - Saisies plugin version must be between 5.4.0 and 5.11.0 inclusive.
exploit.py:57
Observed behavior
- Sends a POST request with a crafted `_anciennes_valeurs` parameter containing a PHP code injection payload that breaks out of an HTML attribute and executes arbitrary PHP.
exploit.py:79-80exploit.py:184-186 - Executes shell commands by base64-encoding them and injecting a `system(base64_decode(...))` call, then extracts the command output from the HTTP response.
exploit.py:188-193 - Provides an interactive shell loop that repeatedly prompts for commands and prints the output.
exploit.py:195-208 - Includes a crawler that starts from a sitemap page and follows internal links to automatically discover pages containing saisies forms.
exploit.py:145-180
Safety-review evidenceBehaviors behind the backdoor verdict
Observables
- Network Connection
- User-supplied target URLThe exploit sends HTTP requests only to the target URL provided via the -u argument and to the optional proxy specified via --proxy. No hardcoded external hosts are contacted.
exploit.py:60-70exploit.py:211-222 - Command Execution
- PHP code injection via _anciennes_valeurs parameterThe script constructs a payload that injects PHP code into the target SPIP application. The injected code executes a base64-encoded shell command provided by the user via -c or interactive input. This is the advertised exploit behavior.
exploit.py:79-80exploit.py:188-193
Review boundariesWhat the analysis did not establish
- Evidence includes only README.md and exploit.py; two additional files (LICENSE and .gitignore) are omitted but are not material to classification.
- The artifact's code was not executed; classification is based solely on static analysis of the provided source code.
- Two files (3766 bytes) were omitted from text analysis and flagged as metadata-only; their content was not inspected.
- The review is limited to the supplied evidence and does not assess the safety of executing the script against a real target.
Model interpretationThis review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.