☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]

CVE-2025-71241

CVE-2025-71241 Cross-Site Scripting in Spip
📅 PUBLISHED: 2026-02-19 14:58 UTC 🔄 UPDATED: 2026-09-23 20:34 UTC
[ OFFICIAL PATCH DEPLOYED ↓ ] FIX: CONFIRMED — 3+ independent sources confirm fix
[ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.19%
👁️
0.19% probability
4.8× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
Patch available — upgrade to latest release
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
4.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-71241 is a Cross-Site Scripting (XSS) vulnerability in the SPIP content management system, affecting versions prior to 4.3.6, 4.2.17, and 4.1.20. The flaw resides in the private area's transmettre API, where error messages are not properly sanitized before being displayed. An authenticated attacker with access to the private area can inject malicious scripts, leading to session hijacking, data theft, or further compromise. The vulnerability is partially mitigated by the SPIP security screen, but exploitation remains possible. No public proof-of-concept (PoC) or exploit code is available at this time.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

CVSS Breakdown & Threat Level

  • CVSS Score: 0.0 (No official vector provided)
  • Attack Vector (AV): Network (likely)
  • Attack Complexity (AC): Low (likely)
  • Privileges Required (PR): Low (requires private area access)
  • User Interaction (UI): None (likely)
  • Scope (S): Changed (likely)
  • Confidentiality (C): Low (likely)
  • Integrity (I): Low (likely)
  • Availability (A): None (likely)
  • Threat Level: Medium (due to authenticated requirement but potential for significant impact)

Deep Dive & Mechanics

The vulnerability exists in the transmettre API endpoint within SPIP's private administration area. When an error occurs during a transmission operation, the API returns an error message that includes user-supplied input without proper sanitization. Specifically, the content of the error message is not HTML-encoded or filtered, allowing an attacker to inject arbitrary HTML and JavaScript.

The attack flow:

  1. An authenticated user with access to the private area crafts a malicious request to the transmettre API.
  2. The request includes a payload in a parameter that is reflected in the error message.
  3. The server returns the error message containing the unsanitized payload.
  4. The victim's browser executes the injected script, leading to XSS.

The SPIP security screen provides some mitigation by blocking certain payloads, but it can be bypassed with careful encoding or alternative vectors.

Vulnerable vs. Patched Code

Vulnerable Code (SPIP < 4.3.6):

// In ecrire/inc/transmettre.php
function transmettre_error($msg) {
    return array('error' => $msg);
}

The $msg parameter is directly returned without sanitization.

Patched Code (SPIP >= 4.3.6):

// In ecrire/inc/transmettre.php
function transmettre_error($msg) {
    return array('error' => spip_htmlspecialchars($msg));
}

The spip_htmlspecialchars() function encodes HTML entities, preventing script injection.

Exploitation & Lab Setup

Red Team

Prerequisites:

  • Access to SPIP private area (authenticated user)
  • Target SPIP version < 4.3.6, 4.2.17, or 4.1.20

Exploitation Steps:

  1. Identify the transmettre API endpoint (typically /ecrire/?action=transmettre).
  2. Craft a POST request with a malicious payload in a parameter that triggers an error.
  3. Example payload: <script>alert('XSS')</script>
  4. Send the request and observe the reflected XSS in the error message.

Example Request:

POST /ecrire/?action=transmettre HTTP/1.1
Host: target-spip-site.com
Content-Type: application/x-www-form-urlencoded

param=<script>alert('XSS')</script>

Blue Team

Detection:

  • Monitor for unusual requests to /ecrire/?action=transmettre with suspicious parameters.
  • Look for error messages containing HTML tags or JavaScript in server logs.
  • Use WAF rules to block common XSS payloads in the transmettre endpoint.

Hunting:

  • Search logs for action=transmettre and inspect the error parameter for encoded or raw script tags.
  • Check for anomalous user agents or repeated failed requests to the endpoint.

Indicators of Compromise (IOCs)

  • Network: HTTP requests to /ecrire/?action=transmettre with parameters containing <script>, onerror, javascript:, or other XSS patterns.
  • Logs: Error messages in SPIP logs containing HTML tags or JavaScript code.
  • File: Modified ecrire/inc/transmettre.php (if attacker has file write access).
  • Behavior: Unusual JavaScript execution in the private area, such as unexpected redirects or data exfiltration.

Detection Engineering

YARA Rule

rule spip_transmettre_xss {
    meta:
        description = "Detects SPIP transmettre XSS payloads in logs or requests"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-71241"
    strings:
        $xss1 = /<script[^>]*>/i
        $xss2 = /onerror\s*=/i
        $xss3 = /javascript\s*:/i
        $xss4 = /onload\s*=/i
        $xss5 = /<img[^>]*>/i
    condition:
        any of ($xss*) and #xss1 > 0
}

Sigma Rule

title: SPIP Transmettre XSS Detection
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects XSS attempts against SPIP transmettre API
author: Valters IT
date: 2025-04-10
references:
    - CVE-2025-71241
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'POST'
        cs-uri-query|contains: 'action=transmettre'
    keywords:
        - '<script'
        - 'onerror='
        - 'javascript:'
        - 'onload='
    condition: selection and keywords
falsepositives:
    - Legitimate use of HTML in error messages (unlikely)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"SPIP Transmettre XSS Attempt";
    flow:to_server,established;
    content:"POST";
    http_method;
    content:"action=transmettre";
    http_uri;
    pcre:"/(<script|onerror=|javascript:|onload=)/i";
    sid:1000001;
    rev:1;
    reference:cve,2025-71241;
    classtype:web-application-attack;
)

Remediation & Mitigation

Immediate:

  • Upgrade SPIP to version 4.3.6, 4.2.17, or 4.1.20 (or later).
  • Apply the patch manually if upgrade is not possible: modify ecrire/inc/transmettre.php to use spip_htmlspecialchars() on error messages.

Compensating Controls:

  • Enable and properly configure the SPIP security screen.
  • Implement a Web Application Firewall (WAF) with rules to block XSS payloads in the transmettre endpoint.
  • Restrict access to the private area to trusted users only.
  • Monitor logs for suspicious activity related to the transmettre API.

Long-term:

  • Conduct regular security audits of SPIP installations.
  • Implement Content Security Policy (CSP) headers to mitigate XSS impact.
  • Train developers on secure coding practices, especially input sanitization.

Valters IT
Securing Digital Frontiers

◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-71241/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.