CVE-2026-48009: Shopware Admin Account Takeover Vulnerability
MODERATECVE-2026-48009 is a MODERATE (CVSS 6.8) admin account takeover vulnerability (CWE-200: Exposure of Sensitive Information to an Unauthorized Actor) affecting Shopware libraries in the Packagist ecosystem. The issue involves admin account takeover via user recovery hash exposure. Remediation is available by upgrading affected packages to version 6.7.10.1, 6.6.10.18.
CVE-2026-48009 at a Glance
Security Impact
CVSS: 6.8
The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N).
How to Fix CVE-2026-48009
To remediate this vulnerability, upgrade all affected Shopware dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Upgrade shopware/platform to 6.7.10.1
Upgrade shopware/platform to 6.6.10.18
Upgrade shopware/core to 6.7.10.1
Upgrade shopware/core to 6.6.10.18
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for shopware/platform
How to Check if You Are Affected
To determine whether your application is affected by CVE-2026-48009, inspect your project dependencies for Shopware:
inspect dependencies for shopware/platform
Analyze the terminal output to locate any version of Shopware in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 6.7.10.1), your application is affected.
Note: Verify declared build manifests and deployed runtime container environments.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-200: Exposure of Sensitive Information to an Unauthorized Actor, where the product exposes sensitive information to an actor that is not explicitly authorized to have access to that information. In Shopware, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2026-48009 Affected Shopware Versions
4 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
shopware/platform
|
Packagist |
≥ 6.7.0.0
< 6.7.10.1
|
6.7.10.1
|
|
shopware/platform
|
Packagist |
< 6.6.10.18
|
6.6.10.18
|
|
shopware/core
|
Packagist |
≥ 6.7.0.0
< 6.7.10.1
|
6.7.10.1
|
|
shopware/core
|
Packagist |
< 6.6.10.18
|
6.6.10.18
|
References
Frequently Asked Questions
What is CVE-2026-48009?
Which Shopware versions are affected?
What version fixes CVE-2026-48009?
Is shopware/platform affected?
Is shopware/core affected?
What is the CVSS score of CVE-2026-48009?
What CWE is associated with CVE-2026-48009?
How can I check Packagist dependencies for CVE-2026-48009?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-8v9p-g828-v98f",
"modified" : "2026-06-04T19:27:15Z",
"published" : "2026-06-04T19:27:15Z",
"aliases" : [ "CVE-2026-48009" ],
"summary" : "Shopware: Admin Account Takeover via User Recovery Hash Exposure",
"details" : "## Summary\n\nA low-privilege admin user with `user_recovery:read` ACL can take over any admin account. The attacker triggers password recovery for the victim (unauthenticated endpoint), reads the recovery hash from the Admin API search endpoint, then uses the hash to reset the victim's password (another unauthenticated endpoint). The recovery hash — intended to be secret and delivered only via email — is fully readable through the standard entity search API.\n\n**OWASP:** A01:2021 — Broken Access Control\n\n## Root Cause\n\nThe `user_recovery` entity exposes its `hash` field through the Admin API search endpoint (`POST /api/search/user-recovery`). The `hash` field lacks `ApiAware(false)` or `ReadProtection`, so any user with `user_recovery:read` ACL can read it.\n\nThe password recovery flow assumes the hash is delivered exclusively via email. The Admin API provides an alternative channel to obtain it, breaking this assumption.\n\n**Three endpoints combine to form the attack:**\n\n1. `POST /api/_action/user/user-recovery` — triggers recovery, creates hash in DB (**no auth required**)\n2. `POST /api/search/user-recovery` — reads the hash (**requires only `user_recovery:read` ACL**)\n3. `PATCH /api/_action/user/user-recovery/password` — resets password using hash (**no auth required**)\n\n**Vulnerable code:**\n- `src/Core/System/User/Recovery/UserRecoveryDefinition.php` — `hash` field is `ApiAware` with no `ReadProtection`\n\n## Impact\n\n- **Full admin account takeover** — attacker gains the highest privilege level in the system\n- **All admin capabilities** — user/role management, system configuration, plugin management, customer data access\n- **Cascading compromise** — taken-over admin account can be used to pivot to other attacks\n- **Low barrier** — `user_recovery:read` is a seemingly harmless permission that grants devastating access\n\n## Remediation\n\nRemove the `hash` field from API responses:\n\n```php\n// src/Core/System/User/Recovery/UserRecoveryDefinition.php\n(new StringField('hash', 'hash'))\n ->addFlags(new Required(), new ApiAware(false)),\n```",
"severity" : [ {
"type" : "CVSS_V3",
"score" : "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "Packagist",
"name" : "shopware/platform"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "6.7.0.0"
}, {
"fixed" : "6.7.10.1"
} ]
} ]
}, {
"package" : {
"ecosystem" : "Packagist",
"name" : "shopware/platform"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "6.6.10.18"
} ]
} ]
}, {
"package" : {
"ecosystem" : "Packagist",
"name" : "shopware/core"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "6.7.0.0"
}, {
"fixed" : "6.7.10.1"
} ]
} ]
}, {
"package" : {
"ecosystem" : "Packagist",
"name" : "shopware/core"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "0"
}, {
"fixed" : "6.6.10.18"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/shopware/shopware/security/advisories/GHSA-8v9p-g828-v98f"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/shopware/shopware"
}, {
"type" : "WEB",
"url" : "https://github.com/shopware/shopware/releases/tag/v6.6.10.18"
}, {
"type" : "WEB",
"url" : "https://github.com/shopware/shopware/releases/tag/v6.7.10.1"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-200" ],
"severity" : "MODERATE",
"github_reviewed" : true,
"github_reviewed_at" : "2026-06-04T19:27:15Z",
"nvd_published_at" : null
}
}