APSB26-138: September's Magento Patch Doesn't Contain the Zero-Day Fix
Adobe shipped two Magento security patches in two days. The emergency fix for the StyleSmuggler zero-day went out on Monday the 7th as APSB26-146. The scheduled monthly bulletin, APSB26-138, followed on Tuesday.
Applying one does not apply the other. From Adobe's release notes:
The APSB26-146 hotfix for CVE-2026-75650 is not included in the September Isolated patch file. You must apply the hotfix first, then apply the Isolated patch.
Hotfix, then the monthly patch. A store that took only Tuesday's update is still open to the bug people are actually exploiting.
APSB26-146: the zero-day now has a CVE
The zero-day we wrote about on September 6 is CVE-2026-75650. Adobe published the bulletin the next day at priority 1, the tier that means patch inside 72 hours.
| Bulletin | APSB26-146 |
| Published | September 7, 2026 |
| CVE | CVE-2026-75650 |
| Category | Improper neutralization of special elements used in a template engine (CWE-1336) |
| Impact | Arbitrary code execution |
| CVSS base score | 10.0 |
| Authentication required | No |
| Adobe priority rating | 1 |
| Exploited in the wild | Yes, per Adobe |
A 10.0 is the top of the scale, and you don't see many. Adobe's vector is CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H: remote, easy, no credentials, nothing for anyone to click, and it escapes the component it starts in.
CISA added it to the Known Exploited Vulnerabilities catalog on the 8th and gave federal agencies until the 11th. Three days. They also marked it for forensic triage under BOD 26-04, a flag that appears on 48 of the 1,703 entries in the catalog.
Which hotfix file you need depends on your patch level:
| Your version | Hotfix file |
|---|---|
| Any 2026-jul or 2026-aug patch level, 2.4.8-p4/p5, 2.4.7-p9/p10, 2.4.6-p14/p15, 2.4.5-p16/p17, 2.4.4-p17/p18 | VULN-39341-composer-patches.zip |
| 2.4.8-p2, 2.4.8-p3 | VULN-39341_248-p3.patch.zip |
| 2.4.8, 2.4.8-p1 | VULN-39341_248-p1.patch.zip |
| 2.4.7-p7, 2.4.7-p8 | VULN-39341_247-p8.patch.zip |
| 2.4.7 through 2.4.7-p6 | VULN-39341_247-p5.patch.zip |
| 2.4.6-p12/p13, 2.4.5-p14/p15, 2.4.4-p15/p16 | VULN-39341_246-p13.patch.zip |
| 2.4.6 through 2.4.6-p11, 2.4.5 through 2.4.5-p13, 2.4.4 through 2.4.4-p14 | VULN-39341_246-p11.patch.zip |
Adobe widened that coverage after the first release. The note now says the hotfix is "compatible with all the Adobe Commerce and Magento Open Source versions between 2.4.4 - 2.4.7", so for once a store on an old patch level doesn't have to get current before it can take the fix. Below 2.4.4, Sansec's timeline records Scandiweb backporting it to a long list of older releases.
Check it landed with the Quality Patches Tool:
vendor/bin/magento-patches -n status | grep "39341\|Status"
What's in APSB26-138
Eight CVEs. Adobe's vulnerability table marks all eight critical while the summary above it says critical, important and moderate. Trust the table.
| CVE | Category | Impact | CVSS | Credentials needed | Notes |
|---|---|---|---|---|---|
| CVE-2026-76200 | Stored XSS (CWE-79) | Privilege escalation | 9.3 | No | Needs a victim to load the page |
| CVE-2026-76201 | Stored XSS (CWE-79) | Privilege escalation | 9.3 | No | Needs a victim to load the page |
| CVE-2026-77111 | Incorrect authorization (CWE-863) | Security feature bypass | 8.7 | Yes, high privilege | |
| CVE-2026-77109 | Incorrect authorization (CWE-863) | Privilege escalation | 8.6 | No | B2B |
| CVE-2026-77774 | Incorrect authorization (CWE-863) | Security feature bypass | 8.6 | No | |
| CVE-2026-76202 | Incorrect authorization (CWE-863) | Privilege escalation | 8.2 | No | |
| CVE-2026-77110 | Path traversal (CWE-22) | Security feature bypass | 7.6 | Yes, high privilege | |
| CVE-2026-77108 | Incorrect authorization (CWE-863) | Privilege escalation | 7.5 | No | B2B |
Six of the eight need no credentials. The two 9.3s are stored XSS in form fields: somebody submits the script, and it runs later in the browser of whoever opens that record. In Magento that's usually an admin.
Nothing in this set is remote code execution, and Adobe reports no exploitation of any of it. Priority 2, the 30-day tier. We spent a section arguing with that rating last month and we'll let it stand this time. August's headline bug was an account takeover that needed no login. These are a rung below.
Affected versions:
- 2.4.9-2026-aug and earlier
- 2.4.8-2026-aug and earlier
- 2.4.7-2026-aug and earlier
- 2.4.6-2026-aug and earlier
- 2.4.5-2026-aug and earlier
- 2.4.4-2026-aug and earlier
Adobe Commerce B2B 1.3.3 through 1.5.3 sits on the same list at the same patch level.
Those are August's patch levels, not release numbers. Patching last month doesn't take you off the list.
Adobe's two tables don't agree with each other on Open Source. Fixed versions run down to 2.4.4 for Adobe Commerce; for Magento Open Source they stop at 2.4.7, while the affected column goes down to 2.4.6. The download note says the same thing from the other end — Open Source merchants can only fetch patches for 2.4.7 and later. On Open Source 2.4.6, there is no September patch for you.
Applying them: hotfix, then July, August, September
Isolated patches stack. Sam James, in his write-up of this month's release: "Isolated patches stack, so 2026-09-001 will not apply unless 2026-08-001 is already on."
For a Community Edition store on 2.4.6-p15 that means the hotfix, then 246p15-2026-07-001-CE, then -08-001-CE, then -09-001-CE. Enterprise puts its -EE file after each CE file. B2B adds its own after that. All of it assumes you're on the latest -p release for your line, which is the only build Adobe tested any of these against.
| Release line | Isolated patch file | Download |
|---|---|---|
| 2.4.9 | 2-4-9-sep-2026.zip |
Direct |
| 2.4.8-p5 | 2-4-8-p5-sep-2026.zip |
Direct |
| 2.4.7-p10 | 2-4-7-p10-sep-2026.zip |
Direct |
| 2.4.6-p15 | 2-4-6-p15-sep-2026.zip |
Keys required |
| 2.4.5-p17 | 2-4-5-p17-sep-2026.zip |
Keys required |
| 2.4.4-p18 | 2-4-4-p18-sep-2026.zip |
Keys required |
The 2.4.6 file moved behind Composer keys this month. In August it was a direct download; the September URL redirects to the authenticated path. When the browser asks, your public key is the username and your private key is the password, the same pair already sitting in auth.json.
Cloud stores get September through the cloud patches package instead. Adobe warns that layering the isolated patch on top of a cloud-patches update that already carries the fix can fail the installation.
Find out what you're actually running
Adobe shipped a tool for this in July and barely mentioned it. The Commerce Version Tool lives at vendor/bin/patch-status and prints what's applied, what's missing, and a per-CVE verdict of PROTECTED, VULNERABLE or UNKNOWN:
php vendor/bin/patch-status
No such command means you don't have it yet. It ships inside the July 2026 isolated patch, starting with the Community Edition file for your line, so July is on your list either way.
Run it against production. A local checkout tells you what somebody meant to deploy.
Test these paths on staging
Sam James found three behavior changes in this month's patch that don't announce themselves:
- Guest PayPal Express. Where the quote in play isn't the session quote and the customer isn't signed in,
setPayPalQuoteIdnow gets skipped silently. Put a guest order all the way through. - GraphQL on multi-website setups. Tokens that worked before can come back as an anonymous context on website-scoped accounts when the
Storeheader isn't handled right. - Backup rollback.
Magento_Backup::rollbackis a new ACL resource and has to be granted. Custom admin roles lose rollback until somebody ticks it.
Add email to that list yourself. The hotfix changes how template directives are handled, so transactional emails, admin template previews and any custom code that renders a template are where this one bites.
Mage-OS gets it as one release
Mage-OS 3.5.0 landed on September 8 with the lot in a single version bump: Adobe's hotfix, the APSB26-138 content, four unrelated bug fixes, and hardening Adobe didn't ship. A deny list checked when a {{block}} directive instantiates a class. Resolved directive output neutralized, so a later filtering pass can't re-read it as template code. A SecurePathValidator anchoring include paths to the application root.
One composer update instead of four patch files, then. The release notes also list what the hardening breaks:
- Email template previews now require
Magento_Email::template,Magento_Newsletter::templateorMagento_Newsletter::queueas an explicit ACL resource. - Custom transactional templates using unusual block classes may render as empty directives.
- Custom filters that depend on re-parsing directive output stop working.
- Templates rendered from outside the application root need moving.
If your store was reachable between September 4 and 7
Sansec's first confirmed exploitation was September 4 at 22:20 UTC. Adobe's fix went out on the 7th at 20:20 UTC. Friday night to Monday evening, which is an awkward three days to need somebody watching.
Patching now doesn't settle what happened then. Adobe's guidance on that is blunt:
Rotating the encryption key alone does not invalidate credentials that may already have been exposed. Rotate all associated credentials at their source (for example, at the payment gateway or third-party service), not only within Commerce.
The sequence Adobe publishes: maintenance mode, cron off, hotfix applied, then the encryption key, every admin password, all REST/SOAP/GraphQL integration tokens, OAuth client secrets, payment gateway credentials at the provider, database credentials, SSH and deploy keys, and third-party API keys for shipping and tax. Cloud stores redeploy at the end to pick up the new database credentials.
Scan before you start and after you finish. The indicators Sansec published are in our zero-day post. The implant has been renamed twice since — [kworker/u:8:0], then fc-cache, then chronyd — so match on the cron entry and the behavior instead of the filename.
What to do this week
Apply the hotfix. Today, if it isn't on. It's the only part of this month with anybody actively exploiting it.
Then work forward through the isolated patches. July, August, September, in order, on the latest -p release.
Run php vendor/bin/patch-status against production and keep the output.
Test guest checkout, GraphQL and transactional email on staging before any of it goes near production.
Decide whether the store was exposed between September 4 and 7. If you can't rule it out, rotate the credentials.
On a store that's current, all of that is about a day. If nobody can tell you this morning what patch level production is on, start there instead — patch-status answers it in under a minute, and you need July's patch to get the tool.
Emyrix does Magento security work and ongoing support, including patch management, compromise investigation and cleanup, and Adobe Commerce work on stores that have fallen behind. If you want someone to apply this month's patches properly, or to check whether StyleSmuggler reached you, get in touch.
Sources: Adobe Security Bulletin APSB26-138 · Adobe Security Bulletin APSB26-146 · Release notes: September 2026 security update (APSB26-138) · Release notes: urgent update for CVE-2026-75650 (APSB26-146) · NVD: CVE-2026-75650 · CISA Known Exploited Vulnerabilities catalog · Sansec: StyleSmuggler 0-day under active attack · Sam James: StyleSmuggler and September's isolated patch · Mage-OS 3.5.0 emergency security release · Adobe severity and priority rating definitions
Frequently asked questions
What is APSB26-138?
Adobe's scheduled security bulletin for Adobe Commerce and Magento Open Source, published on September 8, 2026. It fixes eight CVEs, all rated critical by Adobe, with a top CVSS score of 9.3. Adobe rated the bulletin priority 2 and says it isn't aware of exploits in the wild for anything in it.
Does the September patch include the StyleSmuggler fix?
No. Adobe's release notes for APSB26-138 state that the APSB26-146 hotfix for CVE-2026-75650 is not included in the September isolated patch file, and that you must apply the hotfix first and the isolated patch second. A store that took only the monthly patch is still exposed to the bug being exploited.
What is CVE-2026-75650?
The zero-day Sansec named StyleSmuggler, disclosed on September 5 and patched by Adobe on September 7 as APSB26-146. Adobe classes it as improper neutralization of special elements used in a template engine (CWE-1336), scores it 10.0, and records that no authentication is needed. The result is arbitrary code execution on the store server. Adobe says it is aware of exploitation in the wild.
Which CVEs does APSB26-138 fix?
Eight: CVE-2026-76200 and CVE-2026-76201, both stored XSS at 9.3; CVE-2026-77111 at 8.7 and CVE-2026-77110 at 7.6, which both need admin-level privileges; CVE-2026-77109 at 8.6 and CVE-2026-77108 at 7.5, both B2B only; and CVE-2026-77774 at 8.6 and CVE-2026-76202 at 8.2. Six of the eight need no credentials. Adobe lists the impacts as privilege escalation and security feature bypass.
Which Magento and Adobe Commerce versions are affected?
All the supported lines at their August patch level: 2.4.9-2026-aug and earlier down through 2.4.4-2026-aug and earlier, plus Adobe Commerce B2B 1.3.3 through 1.5.3. Adobe's fixed versions are the -2026-sep releases, though the Magento Open Source column lists only 2.4.9, 2.4.8 and 2.4.7.
How urgent is the September update?
The hotfix is urgent and the monthly patch isn't, which is unusual enough to separate. CVE-2026-75650 is being exploited, carries Adobe's priority 1 rating and sits in CISA's KEV catalog with a September 11 due date, so it goes on inside 72 hours. APSB26-138 is priority 2 with no known exploits, Adobe's 30-day tier — apply it in your next release window, after the hotfix.
How do I check which patches are actually applied?
Run php vendor/bin/patch-status from the project root. The Commerce Version Tool reports applied patches, missing patches and a per-CVE status of PROTECTED, VULNERABLE or UNKNOWN. It only ships inside the July 2026 isolated patch, so if the command isn't found, apply July's CE patch first. For the hotfix on its own, the Quality Patches Tool will confirm it: vendor/bin/magento-patches -n status | grep "39341\|Status".
Do I need to rotate credentials after patching?
If the store was reachable while the zero-day was being exploited, yes. Adobe's guidance says plainly that rotating the encryption key alone doesn't invalidate credentials that may already have been taken, and that they have to be rotated at their source — at the payment gateway or third-party service, not only inside Commerce. The list runs to admin passwords, integration tokens, OAuth secrets, gateway credentials, database credentials and SSH keys.
What do Mage-OS users need to do?
Upgrade to Mage-OS 3.5.0, released September 8. It ports Adobe's hotfix, adds hardening of its own around template and block directives, and includes the APSB26-138 content, so it's one version bump instead of two patch files. Read the release notes first: email template previews now need explicit ACL resources, and custom templates using unusual block classes or filters that re-parse directive output can stop rendering.