Content management and web applications
Magento, Adobe Commerce and Mage-OS email-template RCE: BlockStrap (CVE-2026-103849)
Magento email-template RCE check
CVE-2026-103849 ("BlockStrap") is an unauthenticated remote code execution flaw in the email template engine, rated CVSS 10.0 (CVSS 3.1). It is a second-pass directive injection: a directive hidden in a child email template is signed, passes the check, and is processed again by the parent template. Researchers found four attack paths within a day of disclosure and expect exploitation. None was confirmed in the sources used for this document.
| CVE | CVE-2026-103849 |
| Severity | 10.0 Critical (CVSS 3.1) |
| Authentication | None |
| Affected | Adobe Commerce 2.4.4 to 2.4.9, Adobe Commerce B2B 1.3.3 to 1.5.3, and Magento Open Source (the sources give 2.4.6 or 2.4.7 as the first affected line) to 2.4.9, in builds before APSB26-153. Mage-OS up to and including 3.5.0 |
| Fixed | Adobe's October 2026 releases (APSB26-153, 13 October 2026); Mage-OS 3.6.0 (14 October 2026) |
| Workaround | Adobe documents none |
What a version number can and cannot show
Adobe ships this fix as an isolated patch, and applying it does not change the version string, so a store on 2.4.8-p5 or 2.4.9 may or may not be fixed. The script therefore does not guess for Magento and Adobe Commerce: it tells you which patch to confirm. It gives a firm answer where the version can carry one:
| Install | How it is judged |
|---|---|
| Mage-OS below 3.6.0 (3.5.x included) | Exposed |
| Mage-OS 3.6.0 or later | Fixed |
A Mage-OS pre-release of 3.6.0 (3.6.0-beta1, 3.6.0-rc2) |
Not judged as the release: it may not carry the fix. Warns, exit 1 |
A dated release string such as 2.4.9-2026-oct |
By the month: before October exposed, October or later fixed |
| Any other Magento or Adobe Commerce version | Cannot confirm from the version: confirm in your patch tooling that the APSB26-153 fix is applied, or move to the October 2026 release |
The distribution and version are read from composer.lock (the mage-os/product-community-edition, magento/product-enterprise-edition or magento/product-community-edition package), and from composer.json on a git checkout.
Quick start
curl -fLO https://raw.githubusercontent.com/PrivacySafe/security-patches/refs/heads/main/magento/magento-check.sh
less magento-check.sh
chmod +x magento-check.sh
./magento-check.sh check
By default it looks for bin/magento under /var/www /srv /home /opt. Pass directories to narrow it. Everything is read-only.
| Command | What it does |
|---|---|
check (default) |
Finds installs, reads the distribution and version, and reports as above. Exit 0 nothing exposed, 1 exposed or unconfirmed |
version |
Prints the script version |
There is no hunt
No indicators of exploitation have been published for this flaw, so the script has none. A clean check shows that the version is fixed, not that the store was never attacked.
Update
Apply the APSB26-153 fix or move to the October 2026 release for your line, or to Mage-OS 3.6.0.
If a store was exposed
Review your email templates for directives you did not add. That suggestion is the project's, not Adobe's.
Sources
- Sansec: BlockStrap
- BleepingComputer: BlockStrap
- Adobe security bulletin APSB26-153
Before you run it
- The fix. Apply Adobe's APSB26-153 fix or move to the October 2026 release for your line, or to Mage-OS 3.6.0. Adobe documents no workaround.
- A version number cannot show this fix. Adobe ships it as an isolated patch that does not change the version string, so for Magento and Adobe Commerce the script tells you which patch to confirm. It gives a firm answer for Mage-OS and for a dated release string such as
2.4.9-2026-oct. - A Mage-OS pre-release is not the release.
3.6.0-beta1and3.6.0-rc2are reported with a warning, not as fixed. - There is no hunt. No indicators of exploitation have been published for this flaw.
- It also checks running docker and podman containers, unless you name a directory or set
SCAN_CONTAINERS=0. The check finds installs inside running docker and podman containers by their marker file, copies only the files it reads into a private temporary directory, and judges them like a host install. A path shown as.../docker_NAME_PATHis the PATH inside the container NAME. It never runs anything in a container beyondfindand a file copy, never copies.envorwp-config.php, never keeps a staged symlink, and is skipped when you name directories yourself.
The Security Patches software and this documentation are dedicated to the public domain under CC0 1.0 Universal. Other pages on privacysafe.app/docs are CC BY-SA 4.0 unless the page says otherwise.