SecPod

Learn Search

Search across all Learn content

← Back to Security Research
PolyShell: Critical Magento Flaw Allows Unauthenticated RCE, Exploited Since March 2026

PolyShell: Critical Magento Flaw Allows Unauthenticated RCE, Exploited Since March 2026

CVE-2026-48356 is a critical unrestricted file upload vulnerability in Adobe Commerce and Magento Open Source. Unauthenticated attackers can submit polyglot files through guest-cart REST item routes and write them under pub/media/custom_options/. When the web server executes or serves that path as PHP, the result can be remote code execution or stored XSS. Mass exploitation has been observed since March 2026, including links to CMS-block loaders on hundreds of stores. The issue is listed in the CISA KEV catalog. This article covers how the flaw works, campaign activity, indicators of compromise, affected and fixed versions under APSB26-73, and practical remediation steps.

Oct 29, 2026By Bapanapalli Prem Sai Siddhik
vulnerability researchthreat intelligence

Summary

CVE-2026-48356 is a critical unrestricted file upload issue in Adobe Commerce and Magento Open Source. Unauthenticated callers can submit a polyglot file through guest-cart REST item routes and write it under pub/media/custom_options/. When the web server executes or serves that path as PHP, the result can be remote code execution or stored XSS leading to session takeover.

The research name PolyShell (from Sansec) reflects abuse with polyglot files that pass Magento’s image header checks while still carrying executable PHP. Adobe addressed the issue in bulletin APSB26-73 on 14 July 2026. Mass exploitation was observed from March 2026. CISA added the CVE to the Known Exploited Vulnerabilities catalog on 27 October 2026, with a federal remediation due date of 10 November 2026.

Vulnerability Details

CVE ID CVSS Score EPSS Score Type
CVE-2026-48356 9.6 (Critical) 59.078% CWE-434: Unrestricted Upload of File with Dangerous Type

Adobe rates impact as privilege escalation. Published vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:L (network, low complexity, no privileges, user interaction on the scored path, changed scope, high confidentiality and integrity impact).

Technical Information

Critical Unauthenticated Actively Exploited CISA KEV File Upload RCE

CVE-2026-48356 — Unrestricted file upload via guest-cart custom options

Magento’s REST API accepts file uploads as part of cart item custom options. An embedded file_info object carries base64 content, a MIME type, and a filename. The file is written under pub/media/custom_options/quote/.

Validation gaps in the vulnerable path include:

  • The submitted option ID is not verified against the product’s real options
  • Upload logic still runs when the product has no file-type option
  • Dangerous extensions such as .php, .phtml, and .phar are not blocked. The main content check is an image header test, which a polyglot image-plus-PHP file can pass

The highest-exposure routes need no credentials: POST /V1/guest-carts/:cartId/items and PUT /V1/guest-carts/:cartId/items/:itemId, typically under /rest/ or /rest/<store_code>/. Other REST routes can reach the same logic. GraphQL mutations use a different path and are not affected.

Upload still succeeds when directory access is blocked. Only stopping the API call prevents new files from landing on disk. Impact depends on web server configuration. Many hosts still execute or serve content from the upload tree. Nginx deny rules must sit before any PHP location. Apache needs a working .htaccess that denies access and disables the PHP engine for that path. Files left on disk remain dangerous after a later config change or migration.

Exploitation Timeline and Campaign Activity

Abuse of the guest-cart upload path was observed at scale through early 2026. Fixed builds and the later KEV listing define the main public milestones.

March 2026
Mass scanning and live uploads against Magento and Adobe Commerce stores. Follow-on activity included webshells under the media tree and secondary loaders.
May 2026
Magento 2.4.9 line ships with the core fix for this upload path.
14 July 2026
APSB26-73 publishes fixed builds for supported Adobe Commerce, Magento Open Source, B2B, and Events lines (-2026-jul releases).
27 October 2026
CISA adds CVE-2026-48356 to the Known Exploited Vulnerabilities catalog. Federal remediation due date: 10 November 2026.

Public reporting in October 2026 described 953 online stores with scanner-evading JavaScript loaders in Magento CMS blocks. A substantial share of those infections was linked to this vulnerability as the initial write path (about 471 via this upload issue; about 102 via this issue or SessionReaper). Loaders may fingerprint real shoppers versus scanners and may cache payload in browser localStorage. In documented cases, unpatched stores still had polyglot webshells under pub/media/custom_options/quote/ alongside a CMS-block loader, and at least one fully patched store was still compromised through a rogue administrator account used to inject the block.

Adobe’s APSB26-73 text stated it was not aware of in-the-wild use for issues in that bulletin at publication time. Independent observations of mass abuse predated the KEV entry by several months.

Impact

  • Unauthenticated write under the media tree
    Guest-cart custom-option uploads can place attacker-controlled files under pub/media/custom_options/ with no account required.
  • Remote code execution when PHP runs
    Hosts that execute or serve PHP from that path can turn a polyglot upload into code execution on the web server account.
  • Stored XSS and session risk
    Uploaded HTML or script content served to browsers can target customers or administrators and support session takeover.
  • Persistent backdoors and CMS loaders
    Follow-on activity includes accesson.php copies across the document root and CMS-block loaders that survive file-only cleanup.

Affected Products and Versions

Per APSB26-73:

  • Adobe Commerce: 2.4.9, 2.4.8-p5 and earlier, 2.4.7-p10 and earlier, 2.4.6-p15 and earlier, 2.4.5-p17 and earlier, 2.4.4-p18 and earlier
  • Adobe Commerce B2B: 1.5.3, 1.5.2-p5 and earlier, 1.4.2-p10 and earlier, 1.3.4-p17 and earlier, 1.3.3-p18 and earlier
  • Magento Open Source: 2.4.9, 2.4.8-p5 and earlier, 2.4.7-p10 and earlier, 2.4.6-p15 and earlier
  • Adobe Commerce Events: 1.6.0 to 1.20.0

Confirm the running build with bin/magento --version and Composer metadata. Fixed releases use the -2026-jul suffix.

Indicators of Compromise

The following indicators are associated with exploitation of CVE-2026-48356 and related post-exploitation activity. Use filesystem checks, REST access logs, and network controls together.

Source IP addresses observed in scanning

  • 3.12.250[.]83
  • 3.88.149[.]41
  • 3.150.234[.]247
  • 18.220.50[.]153
  • 23.22.254[.]35
  • 31.134.0[.]53
  • 31.134.1[.]34
  • 31.134.7[.]117
  • 31.134.11[.]173
  • 31.134.15[.]89
  • 31.134.15[.]251
  • 45.136.24[.]213
  • 45.136.26[.]181
  • 45.136.27[.]218
  • 45.147.233[.]211
  • 45.147.234[.]73
  • 45.155.166[.]228
  • 52.24.6[.]119
  • 64.49.38[.]96
  • 78.129.161[.]63
  • 79.130.2[.]23
  • 81.169.144[.]135
  • 91.132.124[.]183
  • 103.216.223[.]206
  • 109.107.178[.]102
  • 115.79.194[.]68
  • 136.244.92[.]114
  • 140.235.2[.]103
  • 140.235.171[.]72
  • 140.248.75[.]31
  • 140.248.75[.]114
  • 162.159.113[.]66
  • 185.3.235[.]111
  • 193.151.188[.]86
  • 193.233.216[.]217
  • 193.233.221[.]124
  • 194.180.233[.]186
  • 198.186.130[.]10
  • 199.96.165[.]186
  • 212.87.218[.]43
  • 216.38.6[.]137
  • 2001:19f0:6c01:15da:5400:6ff:fe05[:]e560

Upload paths and filenames

Any .php, .phtml, or .phar under pub/media/custom_options/ is a strong indicator. Observed names include:

  • index.php (often with an option-id prefix, e.g. 780index.php)
  • json-shell.php
  • bypass.phtml
  • c.php, r.php, rce.php, static.php, test.php
  • blocked-json.php, bypass-async.php, urlencode-shell.php, xx_malicious_file.php
  • ato_poc.html, mikhail.html, accesson.php
  • toggige-arrow.jpg, adman.429.txt, adman.309.txt
  • Unicode-obfuscated names that decode to bypass.php
  • Image-header files (for example GIF89a or PNG) that also contain PHP

accesson.php secondary backdoor paths

  • var/assets/images/accesson.php
  • bamboo-specs/assets/images/accesson.php
  • lib/assets/images/accesson.php
  • app/assets/images/accesson.php
  • vendor/assets/images/accesson.php
  • pub/assets/images/accesson.php
  • bin/assets/images/accesson.php
  • setup/assets/images/accesson.php
  • generated/assets/images/accesson.php
  • phpserver/assets/images/accesson.php

Live shells may respond with the fingerprint value 8194460. Cookie-gated execution and an upload parameter were reported in the same family.

Loader domains

Domains observed in Magento CMS-block loader activity over the broader campaign include:

  • manulfie[.]click
  • neswnsssn[.]click
  • lanhd6549tdhse[.]top
  • additionalver[.]com
  • deepveindrilling[.]com
  • jslibrary[.]net
  • canevaslab[.]com

Search CMS pages, static blocks, and the cms_block table for these domains or unexpected script tags. File cleanup alone does not remove database-resident loaders.

find pub/media/custom_options/ -type f ! -name '.htaccess' find /var/www -name 'accesson.php' -type f

Review REST logs for guest-cart item requests carrying file_info, especially from sources that never complete checkout. Also audit for unexpected administrator accounts.

MITRE ATT&CK Mapping

Technique ID Technique Name Tactic ID Tactic
T1190 Exploit Public-Facing Application TA0001 Initial Access
T1505.003 Server Software Component: Web Shell TA0003 Persistence
T1105 Ingress Tool Transfer TA0011 Command and Control

Mitigation and Recommendations

Apply APSB26-73 fixed builds for every Commerce, Magento Open Source, B2B, and Events instance, including staging and agency-hosted copies. Confirm the -2026-jul (or equivalent fixed) build is live on all nodes.

Fixed versions

  • Adobe Commerce: 2.4.9-2026-jul, 2.4.8-2026-jul, 2.4.7-2026-jul, 2.4.6-2026-jul, 2.4.5-2026-jul, 2.4.4-2026-jul
  • Adobe Commerce B2B: 1.5.3-2026-jul, 1.5.2-2026-jul, 1.4.2-2026-jul, 1.3.4-2026-jul, 1.3.3-2026-jul
  • Magento Open Source: 2.4.9-2026-jul, 2.4.8-2026-jul, 2.4.7-2026-jul, 2.4.6-2026-jul
  • Adobe Commerce Events: 1.21.0

Recommended actions

  • Until every node is patched, block or inspect guest-cart item requests that carry file_info at the WAF, especially filenames ending in .php, .phtml, .phar, or .html. Directory deny rules do not stop uploads.
  • Deny web access and PHP execution under pub/media/custom_options/. On nginx, place the deny block before any PHP location. On Apache, ensure .htaccess denies access and disables the PHP engine for that path.
  • Hunt for webshells and accesson.php, clean CMS blocks and static content, remove rogue admin accounts, and rotate database, admin, and integration credentials after cleanup.
  • Restrict admin URL access, require multi-factor authentication, and monitor for new files under media paths and unexpected script tags in cms_block.

Example nginx deny (before any \.php$ location):

location ~* ^/pub/media/custom_options/ { deny all; return 403; }

Example Apache content under pub/media/custom_options/.htaccess:

<IfModule mod_php.c> php_flag engine 0 </IfModule> Deny from all

Instantly Fix Risks in Endpoints & Cloud with Saner

Saner is a continuous and integrated vulnerability & exposure management platform that instantly fixes risks in endpoints and cloud.

Featured Posts

Open Node2Shell: Exploiting CVE-2026-111497 Through Malformed Brotli Streams in Node.js
vulnerability researchNode2Shell: Exploiting CVE-2026-111497 Through Malformed Brotli Streams in Node.js

CVE Research

Node2Shell: Exploiting CVE-2026-111497 Through Malformed Brotli Streams in Node.js

Node2Shell (CVE-2026-111497) is a Brotli decoder out-of-bounds write in Node.js with a public RCE exploit. Analysis, IOCs, detection queries and fixes.

Oct 27, 2026

Open PHP2Shell After the Patch: The FAQ for Verification, Detection and Response
PHP2Shell After the Patch: The FAQ for Verification, Detection and Response

CVE Research

PHP2Shell After the Patch: The FAQ for Verification, Detection and Response

Patches for PHP2Shell are out, but verifying them, trusting interim mitigations and checking for earlier compromise are where teams are stuck. This FAQ covers stale version banners, container rebuilds, WAF limits, detection signals and what to rotate.

Oct 26, 2026

Open AI-Powered Ransomware Intrusions: Inside the Phantom Framework Linked to INC and The Gentlemen
AI-Powered Ransomware Intrusions: Inside the Phantom Framework Linked to INC and The Gentlemen

CVE Research

AI-Powered Ransomware Intrusions: Inside the Phantom Framework Linked to INC and The Gentlemen

The Phantom Framework supports AI-assisted cyber intrusions by enabling lateral movement, persistence, data exfiltration, and progression toward ransomware deployment, putting enterprise networks and sensitive organizational data at risk.

Oct 26, 2026

Open Tailscale SSH Flaws Turn a Single Foothold Into Root Access on Target Servers
vulnerability researchTailscale SSH Flaws Turn a Single Foothold Into Root Access on Target Servers

CVE Research

Tailscale SSH Flaws Turn a Single Foothold Into Root Access on Target Servers

Tailworm reports high-severity Tailscale SSH issues on version 1.104.2 where Unix-socket forwarding can run as root inside tailscaled, including TOCTOU races on path checks. A policy-approved device may escalate on reachable hosts. Tailscale is reviewing the report and working on fixes. Interim steps center on tighter SSH policy and disabling forwarding.

Oct 26, 2026