Download the PHP package ceymox/module-style-smuggler-shield without Composer

On this page you can find all versions of the php package ceymox/module-style-smuggler-shield. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package module-style-smuggler-shield

StyleSmuggler Shield for Magento 2

Ceymox_StyleSmugglerShield is a free Magento 2 / Adobe Commerce security module. It started as a fix for StyleSmuggler, a GraphQL template-injection vulnerability disclosed by Sansec and actively exploited in the wild since September 4, 2026, and has grown to cover a few other unpatched or partially-patched Magento vulnerabilities using the same plugin-based approach.

Adobe released an official fix on September 7, 2026 — CVE-2026-75650 / APSB26-146, CVSS 10.0, patch identifier VULN-39341. Apply that patch first — it's the real fix. This module remains useful as defense-in-depth and for stores that haven't applied VULN-39341 yet.

The vulnerability

Attackers send a GraphQL request whose styles input value smuggles Magento template directive syntax ({{block ...}}, {{template ...}}, {{layout ...}}) past existing input validation. The payload sits dormant until Magento renders the Payment Transaction Failed Reminder transactional email — a notification the malware deliberately triggers — at which point the directive executes with full PHP code execution on the server.

Adobe's fix is tracked as CVE-2026-75650 (APSB26-146), patch VULN-39341, released September 7, 2026.

What this module does

Two independent, non-breaking protection layers, kept because neither is made redundant by VULN-39341:

  1. GraphQL request guard — inspects every GraphQL query and its variables (including HTML-entity and URL-encoded obfuscation) for Magento directive syntax and rejects the request with an HTTP 400 before it reaches a resolver or gets persisted.
  2. DI compiler scanner CLI guard — blocks Magento's setup:di:compile scanner classes (ArrayScanner, ClassesScanner, XmlInterceptorScanner, and the rest of ScannerInterface) from running outside a CLI process. These classes include/ require_once arbitrary file paths with no execution-context check of their own, and have no legitimate reason to run during a web request — closing this off is independent, root-cause hardening regardless of how a payload reaches this point.

Both layers are logged to var/log/style_smuggler_shield.log (payload + IP where applicable) and are individually toggleable from the admin panel.

Plus two standalone GraphQL access-control features, unrelated to StyleSmuggler specifically:

Other vulnerabilities this module hardens

Separate from StyleSmuggler, using the same plugin-only approach:

Installation

Composer (recommended)

Published on Packagist:

Manual

Configuration

Admin Panel → Stores → Configuration → General → Security → StyleSmuggler Protection

Setting Default
Enable Protection Yes
Reject GraphQL Requests Containing Template Directive Syntax Yes
Restrict DI Compiler Scanners to CLI Only Yes
Disable GraphQL Endpoint No
Blocked GraphQL Operations (empty)

Admin Panel → Stores → Configuration → General → Security → Magento Security Hardening (Ceymox)

Setting Default
Block Non-Image File Extensions in Image Uploads (PolyShell) Yes
Require Customer Login for Address File Upload (SessionReaper) Yes

In production deployment mode, run bin/magento setup:di:compile after installing or updating this module so the new plugins are baked into the generated interceptor classes.

Compatibility

Why keep this module after applying VULN-39341

Apply Adobe's patch first — it fixes the actual source. But there's still a reason to leave this module running afterward:

An earlier third layer (an email template variable sanitizer) was removed once VULN-39341 shipped — setTemplateStyles/setTemplateText now do the equivalent job more precisely at the source, so keeping a duplicate, cruder version around added no protection, only surface area.

Disclaimer

This is a virtual patch, not a substitute for Adobe's official fix (VULN-39341 / CVE-2026-75650). Apply that patch — it corrects the vulnerable source directly, which this module does not do.

Applying the patch does not clean a store that was already compromised during the exploitation window (September 4–7, 2026). Given active exploitation in the wild, also scan for existing backdoors (e.g. with Sansec's eComscan) and review admin users and cron jobs for signs of prior compromise — this module does not do either of those.

Credits

Vulnerability research and disclosure: Sansec (StyleSmuggler, PolyShell, SessionReaper)

License

Copyright © Ceymox. All rights reserved.


All versions of module-style-smuggler-shield with dependencies

PHP Build Version
Package Version
Requires php Version ~8.1.0||~8.2.0||~8.3.0
magento/framework Version >=103.0.0
magento/module-graph-ql Version >=100.4.0
magento/module-email Version >=101.1.0
magento/module-sales Version >=103.0.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package ceymox/module-style-smuggler-shield contains the following files

Loading the files please wait ...