Skip to main content
Mallory
CriticalCISA KEVExploited in the wildPublic exploit

SessionReaper in Adobe Commerce / Magento Open Source

IdentifiersCVE-2025-54236CWE-20· Improper Input ValidationAlso known assessionreaper

CVE-2025-54236, also referred to publicly as SessionReaper, is a critical improper input validation vulnerability in Adobe Commerce, Adobe Commerce B2B, and Magento Open Source. The provided content consistently describes the flaw as affecting the Commerce REST API, with multiple sources identifying the vulnerable path as /customer/address_file/upload and the vulnerable code path as ServiceInputProcessor.php, specifically getConstructorData(). The issue arises from insufficient validation of attacker-controlled nested input structures during request processing, enabling unsafe nested deserialization / arbitrary PHP object instantiation. According to the supplied material, attackers can submit crafted REST API payloads that manipulate session-related state and bypass normal security controls, resulting in session takeover of customer or administrator accounts without user interaction. Several sources in the content further state that, under certain conditions, especially where file-based session storage is used, the flaw can be chained into unauthenticated remote code execution and webshell deployment.

Share:
For your environment

Are you exposed to this one?

Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.

ANALYST BRIEF

Impact, mitigation & remediation

What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.

Impact

What an attacker gets, and what they’ve been doing with it.

Successful exploitation allows remote takeover of valid Adobe Commerce or Magento sessions, including customer sessions and, per the supplied reporting, potentially administrator sessions. This creates high confidentiality and integrity impact through account hijacking, unauthorized access to customer data, order manipulation, fraudulent purchases, and administrative abuse. The provided content also states that in some environments the vulnerability can be escalated to unauthenticated remote code execution, enabling deployment of persistent PHP webshells, theft of configuration secrets such as database credentials and API keys, persistence, and broader compromise of the underlying commerce server.

Mitigation

If you can’t patch tonight, do this now.

If immediate patching is not possible, use temporary defensive controls only as a stopgap. The content states Adobe deployed WAF protections for Commerce Cloud customers and recommends implementing WAF rules, monitoring API traffic, enabling API logging, flushing active sessions, and restricting customer self-registration where operationally feasible. Additional mitigation from the supplied material includes heightened monitoring for suspicious requests to /customer/address_file/upload, suspicious session creation or rapid session changes, unexpected admin activity, and signs of uploaded PHP webshells. These measures do not replace patching.

Remediation

Patch, then assume compromise.

Apply Adobe’s vendor fix immediately. The supplied content references Adobe Security Bulletin APSB25-88 and hotfix VULN-32437-2-4-X-patch as the primary remediation. Upgrade affected Adobe Commerce, Adobe Commerce B2B, Magento Open Source, and the Custom Attributes Serializable module to vendor-fixed releases beyond the affected versions identified in the content. Where applicable, the content also recommends upgrading magento/out-of-process-custom-attributes to a fixed version and moving to current stable patched branches. After patching, review for compromise, including anomalous POST requests to /customer/address_file/upload, unauthorized files in web-accessible directories, phpinfo files, unfamiliar administrative users, and suspicious sessions.
PUBLIC EXPLOITS

Exploits

7 valid exploits after Mallory filtered fakes, detection scripts, and README-only repos (1 hidden).

VALID 7 / 8 TOTALView more in app
session_reaper_labMaturityPoCVerified exploit

This repository is a real exploit lab and PoC for CVE-2025-54236 ('SessionReaper'), targeting Magento Open Source and Adobe Commerce up to 2.4.7. The main exploit is `SessionReaper-CVE-2025-54236/session_reaper.py`, a standalone Python script that automates an unauthenticated deserialization-to-RCE chain. It generates a serialized PHP gadget with phpggc (`Guzzle/FW1`), stores it in a fake `sess_<id>` file, uploads that file through `/customer/address_file/upload`, abuses nested JSON deserialization in Magento's `ServiceInputProcessor` to override `session.save_path` to the upload directory, and then triggers PHP session loading with a crafted `PHPSESSID`. Successful exploitation causes PHP to deserialize the attacker-controlled session content and write a PHP payload to disk, typically under `pub/errors/`, yielding a reachable webshell. Repository structure is split into three logical parts: (1) the exploit PoC under `SessionReaper-CVE-2025-54236/`, including `session_reaper.py` and a minimal default `payload.php`; (2) reusable payload artifacts under `payloads/`, including a command webshell and a prebuilt serialized session payload; and (3) a full Dockerized vulnerable Magento lab under `lab-magento/`, with Dockerfile, compose stack, nginx/PHP configuration, and an installation script that intentionally enables file-based sessions and guest checkout. The lab is clearly designed to reproduce the vulnerability safely and consistently. Exploit capabilities are substantial: unauthenticated remote exploitation, multiple deserialization trigger methods (`address`, `checkmo`, `order` per the documentation), optional use of a real guest cart/SKU flow, automatic phpggc discovery or Docker fallback, upload of malicious session files, session path redirection, and arbitrary PHP file write leading to command execution. The included payloads demonstrate both benign validation (`phpinfo`) and active post-exploitation (`system($_GET['cmd'])`). This is not a scanner or detector; it is an operational PoC with a basic but functional payload chain.

brito101Disclosed May 24, 2026pythonphpwebnetwork
magento-upload-auto-submit-zonehMaturityPoCVerified exploit

This repository contains a single Python exploit script, blabla.py, plus a README. The script is a multithreaded mass-exploitation tool targeting a claimed Magento file upload vulnerability identified in the README as CVE-2025-54236. Its purpose is not merely detection: it attempts to upload a text file to each supplied target, verifies whether the file becomes publicly accessible, and then reports successful targets. Operational flow: the script reads hosts from a user-supplied list file, normalizes them to HTTP(S) URLs, and processes them with 10 worker threads. For each host, it generates a random form_key, sends a multipart POST request to /customer/address_file/upload, and places the payload in the custom_attributes[country_id] field as dog.txt with text/plain content. If the server returns JSON containing a file path, the script then probes likely public media locations (/media/customer_address, /pub/media/customer_address, /media plus returned file path) to confirm the uploaded file is reachable. The verification logic is more than a simple status-code check: it first fetches a random nonexistent path to establish baseline error-page content, then compares retrieved content against common error keywords and a similarity threshold to avoid false positives caused by custom 404 pages. If the uploaded content is confirmed, the script records the host as vulnerable and prints the accessible media URL. A notable secondary capability is automatic submission of successful URLs to Zone-H via http://www.zone-h.org/notify/single using form fields defacer, domain1, hackmode, and reason. This indicates the tool is intended for website defacement reporting rather than benign validation alone. Overall, the repository is small and straightforward: one README and one Python 2-style script using requests, threading, Queue, and difflib. The exploit is operational, supports bulk target processing, includes basic validation and error handling, and carries a hardcoded defacement-style payload rather than a customizable shell or code execution stage.

Jenderal92Disclosed May 13, 2026pythonmarkdownwebnetwork
SessionReaper-CVE-2025-54236MaturityPoCVerified exploit

This repository is a small, focused exploit PoC for CVE-2025-54236 ('SessionReaper'), targeting Magento 2 / Adobe Commerce. It contains three files: a detailed README, a Python exploit driver (session_reaper.py), and a minimal PHP payload (payload.php). The Python script is the main entry point and operational exploit. It automates the full attack chain: resolving phpggc locally or via Docker, validating/loading a local PHP payload, optionally authenticating or operating as guest, optionally verifying a SKU and creating a guest cart, generating a malicious serialized session object with the Guzzle/FW1 gadget chain, uploading that fake session file through /customer/address_file/upload, triggering one of three deserialization vectors (address, checkmo, or order), and finally directing the operator to check the dropped PHP file at /errors/404.php. The included payload is benign-looking test code (phpinfo), but the mechanism supports arbitrary PHP content. The exploit is clearly intended for remote unauthenticated web exploitation against vulnerable Magento instances using file-based sessions, and it provides real exploitation capability rather than mere detection. The README documents the vulnerability, attack stages, prerequisites, and the three supported vectors, while the Python code implements the automation and dependency handling.

alexb616Disclosed Mar 19, 2026markdownphpnetworkunauthenticated web API deserializationfile upload + session deserialization
CVE-2025-54236_PoCMaturityPoCVerified exploit

Repository contains a minimal PoC for CVE-2025-54236 targeting Magento/Adobe Commerce 2.4.x, demonstrating likely PHP object injection leading to RCE using a Monolog gadget (Monolog\Handler\ProcessHandler). Structure: - README.md: Step-by-step exploitation workflow: generate a serialized payload, upload it to a Magento customer address file upload endpoint, parse the JSON response to obtain a file-view URL, then request that URL to trigger execution. - generate_payload.php: Payload generator that defines a minimal ProcessHandler class in the Monolog\Handler namespace with private fields `command` (attacker-controlled) and `cwd` (fixed to /tmp), instantiates it with a supplied command, serializes the object, and prints the serialized string. Exploit capabilities: - Generates attacker-controlled PHP serialized object payload intended to be deserialized by the target. - Achieves arbitrary command execution (demonstrated with `touch /tmp/...`) when the uploaded payload is later accessed via the returned viewfile URL. Notable targeting details: - Example target endpoints in README: POST upload to `https://mivetshop.com.ar/customer/address_file/upload` with multipart field `custom_attributes[country_id]=@poc_session.txt` and a `form_key` cookie/field; trigger via returned `https://www.mivetshop.com.ar/customer_custom_attributes/address_file/viewfile/file/<base64-ish>/` URL. - The PoC is not a scanner; it is an exploit demonstration with a simple, user-supplied command payload generator.

bolich12Disclosed Feb 2, 2026phpmarkdownnetwork
cve-2025-54236MaturityPoCVerified exploit

This repository provides a working exploit for CVE-2025-54236, a critical unauthenticated remote code execution vulnerability in Adobe Commerce (Magento) via unsafe deserialization in the ServiceInputProcessor class. The exploit leverages the Magento REST API, specifically the /rest/V1/guest-carts and /rest/V1/guest-carts/{cart_id}/estimate-shipping-methods endpoints, to inject a malicious serialized PHP object (using either a Laminas or Monolog gadget chain) into the 'region' or 'extension_attributes' fields of the address object. The payload is generated using the included PHP script (generate_payload.php), which creates a serialized Monolog ProcessHandler object that executes arbitrary system commands. The main exploitation logic is implemented in session_reaper.py, which automates payload generation, cart creation, and payload delivery. The exploit.py script provides a simpler proof-of-concept using a hardcoded payload. The YAML file (CVE-2025-54236.ymal) describes a detection template for the vulnerability, suitable for automated scanners. The repository is operational and provides all necessary components for successful exploitation, assuming the target is vulnerable and accessible.

Baba01hacker666Disclosed Dec 30, 2025pythonphpnetwork
magento_sessionreaper.rbMaturityWeaponizedFrameworkmetasploitVerified exploit

This repository contains a single Metasploit module (magento_sessionreaper.rb) that exploits CVE-2025-54236, a critical unauthenticated remote code execution vulnerability in Magento/Adobe Commerce 2.x. The exploit leverages improper nested deserialization and an unauthenticated file upload endpoint to achieve code execution. The attack chain involves uploading a malicious PHP session file via /customer/address_file/upload, then triggering deserialization and execution via the /rest/default/V1/guest-carts/{cart_id}/order endpoint. The module supports multiple payloads, including PHP Meterpreter and command shells for Unix/Linux and Windows. The code is mature, weaponized, and part of the Metasploit framework, making it easy to use and customize. The only file in the repository is the exploit module itself, written in Ruby, and it is fully operational for targeting unpatched Magento 2.x instances with file-based session storage.

Disclosed Oct 22, 2025rubynetwork
day01-sessionreaper-labMaturityPoCVerified exploit

This repository is an educational lab simulating the core vulnerability reported in CVE-2025-54236 ("SessionReaper"). The lab consists of a minimal PHP web application running in a Docker container. The main vulnerability is in 'public/api/service.php', which accepts POSTed JSON and unsafely trusts nested fields under 'payload', leading to a command injection sink via the 'cmd' field. The exploit ('exploit.sh') sends a crafted JSON payload to the API endpoint, triggering command execution and reading the flag from '/opt/flag.txt'. The flag is generated fresh on each container start by 'entrypoint.sh'. The repository includes setup files (Dockerfile, entrypoint.sh), the exploit script, the vulnerable PHP API, and a simple HTML index page. The main purpose is to provide a safe environment to practice exploiting nested JSON vulnerabilities and command injection, not to target real-world systems.

amalpvatayam67Disclosed Sep 10, 2025phpbashnetwork
EXPOSURE SURFACE

Affected products & vendors

Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.

VendorProductType
AdobeCommerceapplication
AdobeCommerce B2bapplication
AdobeMagentoapplication

Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.

What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets are affected, which adversaries are exploiting it right now, which detections to deploy, and what to do tonight.
Exposure mapping

Query your assets running an affected version, and investigate the blast radius.

Threat actor evidence

Every observed campaign linking this CVE to a named adversary.

Associated malware11

Malware families riding this exploit, with evidence and IOCs.

Detection signatures3

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

Vendor-by-vendor mapping

Cross-references every affected SKU, including bundled OEM variants.

Social activity167

Community discussion across Reddit, Mastodon, and other social sources.