Priority 2, Four Exploit Routes in 24 Hours: BlockStrap Is a 10.0 in Every Magento Store

Six weeks after StyleSmuggler, Magento’s email template engine has broken a second time, in the same place, at the same maximum severity. CVE-2026-103849, dubbed BlockStrap by the Sansec forensics team, is a CVSS 10.0 unauthenticated remote code execution flaw affecting Adobe Commerce and Magento Open Source through version 2.4.9 (and Commerce B2B through 1.5.3). Adobe published the fix in bulletin APSB26-153 on 13 October 2026; Sansec disclosed its research on 15 October and updated it on 20 October. We read Sansec’s analysis first-hand, cross-checked the NVD record, and the picture it paints is uncomfortable: Sansec reproduced four different attack routes within 24 hours of the patch, no exploitation has been observed yet — and Adobe rated the flaw priority 2, patch within 30 days. That rating is the story.

A signature that signs the attacker’s input

BlockStrap is a second-pass template-engine directive injection, and its mechanism is a direct commentary on the September fix. The StyleSmuggler hotfix (VULN-39341) signs trusted directives — but attacker-controlled data inside a child template can still pass through signing and be rescanned at the root level, where a smuggled {{block}} directive executes inside Magento’s rendering pipeline with the privileges of the store server: arbitrary PHP, no login, no user interaction. The NVD entry describes it as improper neutralisation of special elements in a template engine with changed scope. Adobe’s October patch replaces the generic rescan with registered placeholders, which closes the second pass rather than merely authenticating the first one.

The researcher credit matters here: Sansec attributes the find to vozec, and the write-up is explicit that the attack path is complex — then immediately explains why complexity is no defence. StyleSmuggler went from a priority-1 hotfix to mass exploitation in three days. BlockStrap, Sansec argues, is of similar complexity, and “anyone with an AI agent can reverse-engineer the patch into working exploits in a relatively short time.” That sentence is doing double duty: it is both a patch-now argument and a statement about what exploit development looks like in late 2026, when diff-to-weapon pipelines run on agents rather than analysts.

The patch gaps are the second vulnerability

The fix itself has sharp edges that store operators need to hear in full, because several of them look like successful patches that are not:

  • A fresh Composer install is still vulnerable. A plain install pulls the vulnerable base version, so administrators must apply the October 2026 release or Adobe’s isolated patch — installing from scratch does not save you.
  • 2.4.6 and older have no public patch. Adobe’s public October patches cover Open Source 2.4.7-p10, 2.4.8-p5 and 2.4.9; the builds for 2.4.4-p18, 2.4.5-p17 and 2.4.6-p15 require an Adobe Commerce licence. A third party, Happy Horizon, has published backports for those three — which Sansec pointedly offers no warranty for. The alternative is upgrading to 2.4.7-p10 or later.
  • The September hotfix must stay. The October patch does not include the StyleSmuggler VULN-39341 hotfix, and Adobe’s patch registry does not list it as a prerequisite — install it separately, before the October patch, or you close the second pass while reopening the first.
  • The 2.4.8-p5 zip was silently reissued. The first version omitted an EmailAddress.php change for a second bulletin bug, CVE-2026-91013; on 14 October Adobe replaced the file inside the identically named download and published the missing change separately. Operators who patched on the 13th should verify, not assume.
  • Mage-OS is affected too. Up to version 3.5.0; 3.6.0, released 14 October, carries Adobe’s fix via the framework and four modules.

Verification is a one-liner Sansec documents precisely: run grep -c resolveDeferredDirectives vendor/magento/framework/Filter/Template.php in the Magento root. The October patch adds that function, so a count of 0 means the BlockStrap fix is missing — and Sansec warns to check the code even when the deploy reported no errors, because Composer patch plugins can skip a hunk without failing the build and deploy scripts that append || true swallow the failure. (One cosmetic side effect to know rather than fear: the patch creates an empty lock file named 976bc24c… in the Magento root — the SHA-256 of /var/.regenerate.lock, mis-pathed. It is benign; delete it or gitignore it.)

What to do, in order

  • Patch today, not within 30 days. Adobe reserves priority 1 for vulnerabilities it knows are being exploited, which is why a 10.0 with four same-day exploit routes got a month-long window. Sansec’s three-day StyleSmuggler precedent is the rebuttal: the window between patch-diff and mass exploitation is now measured in days, and agent-assisted exploit generation only compresses it. Treat priority 2 as a vendor triage label, not a risk assessment.
  • Apply both fixes, in order. September VULN-39341 hotfix first, then the October APSB26-153 patch — and re-verify the EmailAddress.php hunk if you took 2.4.8-p5 on day one. Run Sansec’s grep checks rather than trusting deploy logs.
  • If you cannot patch within hours, filter at the HTTP layer. Sansec reports its Shield rules already block BlockStrap traffic; any WAF rule that constrains template-directive syntax in inbound mail-template inputs buys time, but it buys time, not safety.
  • Hunt for the template writes, not just the shells. No attacks have been observed yet, so baselines taken now are clean. Log and alert on {{block}} and unexpected directive content reaching the template engine — the same week PHP’s engine flaws drew emergency patches, server-side template and engine injection is the vulnerability class of the month, and the stores that detect the injection attempt are the ones that survive the exploit wave Sansec expects “soon.”

The deeper pattern running through the Sansec write-up is fixes that authenticate the first pass while leaving the rescan generic, advisories that rate weaponisable 10.0s on 30-day clocks, and patch packages that silently change under identical filenames. Every one of those is a machine-speed problem now — diffs get agent-reversed in hours, Composer installs propagate the vulnerable base automatically, and backports for the oldest stores come with no warranty. The merchants who patch this week are not being hasty. They are matching the actual tempo.

Our verification was read-only. The CVE identifier, CVSS 10.0 score, affected products and versions, 13 October 2026 bulletin date, second-pass injection mechanism, four-routes-in-24-hours finding, priority-2 dispute, Composer and version-coverage gaps, Mage-OS status, grep verification commands and lock-file explanation were read first-hand from Sansec’s BlockStrap research (published 15 October 2026, modified 20 October). The NVD description, CVSS 3.1 vector, 13 October publication timestamp and “Undergoing Analysis” status were read first-hand from the NVD record. BleepingComputer’s 16 October 2026 coverage is cited as secondary confirmation of the urgency assessment. No store was probed and no exploit was run. Brave Search was used for discovery only.

Sources: