CVE-2026-48008
Shopware: Privilege Escalation via Sync API Integration Admin Flag Bypass
Shopware is an open commerce platform. Prior to 6.6.10.18 and 6.7.10.1, a non-admin API user with integration:create ACL privilege can escalate to full administrator by creating an integration with admin: true through the Sync API POST /api/_action/sync; the regular integration endpoint POST /api/integration blocks this, but SyncController::sync() routes writes through SyncService to EntityWriter::upsert(), and src/Core/Framework/Integration/IntegrationDefinition.php lacks WriteProtection on the admin field. This issue is fixed in versions 6.6.10.18 and 6.7.10.1.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- High
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
6.5
Shopware: Privilege Escalation via Sync API Integration Admin Flag Bypass
Shopware is an open commerce platform. Prior to 6.6.10.18 and 6.7.10.1, a non-admin API user with integration:create ACL privilege can escalate to full administrator by creating an integration with admin: true through the Sync API POST /api/_action/sync; the regular integration endpoint POST /api/integration blocks this, but SyncController::sync() routes writes through SyncService to EntityWriter::upsert(), and src/Core/Framework/Integration/IntegrationDefinition.php lacks WriteProtection on the admin field. This issue is fixed in versions 6.6.10.18 and 6.7.10.1.
- Record
CVE-2026-48008- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-862
- Updated
- 2026-11-02
EUVDEUVD-2026-45237
6.5
Shopware is an open commerce platform. Prior to 6.6.10.18 and 6.7.10.1, a non-admin API user with integration:create ACL privilege can escalate to full administrator by creating an integration with admin: true through the Sync API POST /api/_action/sync; the regular integration endpoint POST /api/integration blocks this, but SyncController::sync() routes writes through SyncService to EntityWriter::upsert(), and src/Core/Framework/Integration/IntegrationDefinition.php lacks WriteProtection on the admin field. This issue is fixed in versions 6.6.10.18 and 6.7.10.1.
- Record
EUVD-2026-45237- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-gv8p-48fr-4fxg
6.5
Shopware: Privilege Escalation via Sync API Integration Admin Flag Bypass
Summary
A non-admin API user with integration:create ACL privilege can escalate to full administrator by creating an integration with admin: true through the Sync API (POST /api/_action/sync). The regular integration endpoint (POST /api/integration) correctly blocks this, but the Sync API bypasses the controller-level check by writing directly through the DAL EntityWriter. The integration entity definition lacks WriteProtection, and the admin field has no field-level restriction flag.
OWASP: A01:2021 — Broken Access Control
Root Cause
IntegrationController::upsertIntegration() checks $source->isAdmin() before allowing the admin field to be set. However, SyncController::sync() routes writes through SyncService → EntityWriter, which only applies:
AclWriteValidator— checks entity-level ACL (integration:createis sufficient)EntityProtectionValidator— checksWriteProtectionon entity definitions, butIntegrationDefinitionhas none
The admin field in IntegrationDefinition is a plain BoolField with no WriteProtection or special flag. The Sync API writes it without restriction.
Vulnerable code path:
src/Core/Framework/Api/Controller/SyncController.php→SyncService→EntityWriter::upsert()- Missing protection:
src/Core/Framework/Integration/IntegrationDefinition.php—adminfield has noWriteProtection(Context::SYSTEM_SCOPE)
Working protection (bypassed):
src/Core/Framework/Integration/IntegrationController.php:46-56—isAdmin()check only applies to the dedicated controller endpoint
Impact
- Complete admin API access — the escalated integration has full read/write on every entity: users, customers, orders, system configuration, integrations, plugins
- PII exfiltration — read all customer records (names, emails, addresses, order history)
- Persistent backdoor — the admin integration survives password changes and user deactivation
Remediation
Add WriteProtection(Context::SYSTEM_SCOPE) to IntegrationDefinition, matching how UserDefinition and AclRoleDefinition are already protected:
// src/Core/Framework/Integration/IntegrationDefinition.php
(new BoolField('admin', 'admin'))
->addFlags(new WriteProtection(Context::SYSTEM_SCOPE)),
- Record
GHSA-gv8p-48fr-4fxg- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-862
- Updated
- 2026-11-02
NVD
6.5
Shopware is an open commerce platform. Prior to 6.6.10.18 and 6.7.10.1, a non-admin API user with integration:create ACL privilege can escalate to full administrator by creating an integration with admin: true through the Sync API POST /api/_action/sync; the regular integration endpoint POST /api/integration blocks this, but SyncController::sync() routes writes through SyncService to EntityWriter::upsert(), and src/Core/Framework/Integration/IntegrationDefinition.php lacks WriteProtection on the admin field. This issue is fixed in versions 6.6.10.18 and 6.7.10.1.
- Record
CVE-2026-48008- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-862
- Updated
- 2026-11-02
OSV
6.5
Shopware: Privilege Escalation via Sync API Integration Admin Flag Bypass
Shopware is an open commerce platform. Prior to 6.6.10.18 and 6.7.10.1, a non-admin API user with integration:create ACL privilege can escalate to full administrator by creating an integration with admin: true through the Sync API POST /api/_action/sync; the regular integration endpoint POST /api/integration blocks this, but SyncController::sync() routes writes through SyncService to EntityWriter::upsert(), and src/Core/Framework/Integration/IntegrationDefinition.php lacks WriteProtection on the admin field. This issue is fixed in versions 6.6.10.18 and 6.7.10.1.
- Record
CVE-2026-48008- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-862
- Updated
- 2026-11-05
OSVGHSA-gv8p-48fr-4fxg
6.5
Shopware: Privilege Escalation via Sync API Integration Admin Flag Bypass
Summary
A non-admin API user with integration:create ACL privilege can escalate to full administrator by creating an integration with admin: true through the Sync API (POST /api/_action/sync). The regular integration endpoint (POST /api/integration) correctly blocks this, but the Sync API bypasses the controller-level check by writing directly through the DAL EntityWriter. The integration entity definition lacks WriteProtection, and the admin field has no field-level restriction flag.
OWASP: A01:2021 — Broken Access Control
Root Cause
IntegrationController::upsertIntegration() checks $source->isAdmin() before allowing the admin field to be set. However, SyncController::sync() routes writes through SyncService → EntityWriter, which only applies:
AclWriteValidator— checks entity-level ACL (integration:createis sufficient)EntityProtectionValidator— checksWriteProtectionon entity definitions, butIntegrationDefinitionhas none
The admin field in IntegrationDefinition is a plain BoolField with no WriteProtection or special flag. The Sync API writes it without restriction.
Vulnerable code path:
src/Core/Framework/Api/Controller/SyncController.php→SyncService→EntityWriter::upsert()- Missing protection:
src/Core/Framework/Integration/IntegrationDefinition.php—adminfield has noWriteProtection(Context::SYSTEM_SCOPE)
Working protection (bypassed):
src/Core/Framework/Integration/IntegrationController.php:46-56—isAdmin()check only applies to the dedicated controller endpoint
Impact
- Complete admin API access — the escalated integration has full read/write on every entity: users, customers, orders, system configuration, integrations, plugins
- PII exfiltration — read all customer records (names, emails, addresses, order history)
- Persistent backdoor — the admin integration survives password changes and user deactivation
Remediation
Add WriteProtection(Context::SYSTEM_SCOPE) to IntegrationDefinition, matching how UserDefinition and AclRoleDefinition are already protected:
// src/Core/Framework/Integration/IntegrationDefinition.php
(new BoolField('admin', 'admin'))
->addFlags(new WriteProtection(Context::SYSTEM_SCOPE)),
- Record
GHSA-gv8p-48fr-4fxg- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-862
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
shopware/platformPackagist |
6.7.0.0 up to 6.7.10.1 | 6.7.10.1 |
shopware/platformPackagist |
before 6.6.10.18 | 6.6.10.18 |
shopware/corePackagist |
6.7.0.0 up to 6.7.10.1 | 6.7.10.1 |
shopware/corePackagist |
before 6.6.10.18 | 6.6.10.18 |
shopware/platformPackagist |
6.7.0.0 up to 6.7.10.1, plus listed versions v6.7.0.0v6.7.0.1v6.7.1.0v6.7.1.1v6.7.1.2 Show 21 moreShow lessv6.7.10.0v6.7.2.0v6.7.2.1v6.7.2.2v6.7.3.0v6.7.3.1v6.7.4.0v6.7.4.1v6.7.4.2v6.7.5.0v6.7.5.1v6.7.6.0v6.7.6.1v6.7.6.2v6.7.7.0v6.7.7.1v6.7.8.0v6.7.8.1v6.7.8.2v6.7.9.0v6.7.9.1 |
6.7.10.1 |
shopware/platformPackagist |
before 6.6.10.18, plus listed versions 6.3.0.06.3.0.16.3.0.26.3.1.06.3.1.1 Show 45 moreShow less6.3.2.06.3.2.16.3.3.06.3.3.16.3.4.06.3.4.16.3.5.06.3.5.16.3.5.26.3.5.36.3.5.46.4.0.06.4.0.0-RC16.4.1.06.4.1.16.4.1.26.4.10.06.4.10.16.4.11.06.4.11.16.4.12.06.4.13.06.4.14.06.4.15.06.4.15.16.4.15.26.4.16.06.4.16.16.4.17.06.4.17.16.4.17.26.4.18.06.4.18.16.4.19.06.4.2.06.4.2.16.4.20.06.4.20.16.4.20.26.4.3.06.4.3.16.4.4.06.4.4.16.4.5.06.4.5.1 |
6.6.10.18 |
shopware/corePackagist |
6.7.0.0 up to 6.7.10.1, plus listed versions v6.7.0.0v6.7.0.1v6.7.1.0v6.7.1.1v6.7.1.2 Show 21 moreShow lessv6.7.10.0v6.7.2.0v6.7.2.1v6.7.2.2v6.7.3.0v6.7.3.1v6.7.4.0v6.7.4.1v6.7.4.2v6.7.5.0v6.7.5.1v6.7.6.0v6.7.6.1v6.7.6.2v6.7.7.0v6.7.7.1v6.7.8.0v6.7.8.1v6.7.8.2v6.7.9.0v6.7.9.1 |
6.7.10.1 |
shopware/corePackagist |
before 6.6.10.18, plus listed versions 6.3.0.06.3.0.16.3.0.26.3.1.06.3.1.1 Show 45 moreShow less6.3.2.06.3.2.16.3.3.06.3.3.16.3.4.06.3.4.16.3.5.06.3.5.16.3.5.26.3.5.36.3.5.46.4.0.06.4.0.0-RC16.4.1.06.4.1.16.4.1.26.4.10.06.4.10.16.4.11.06.4.11.16.4.12.06.4.13.06.4.14.06.4.15.06.4.15.16.4.15.26.4.16.06.4.16.16.4.17.06.4.17.16.4.17.26.4.18.06.4.18.16.4.19.06.4.2.06.4.2.16.4.20.06.4.20.16.4.20.26.4.3.06.4.3.16.4.4.06.4.4.16.4.5.06.4.5.1 |
6.6.10.18 |
History
| Recorded | Changed | Sources |
|---|---|---|
| facts | OSV | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-48008 is a medium vulnerability (CVSS 6.5) in Runzero Platform, published June 4, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.47%, the 40th percentile. Fixed in shopware/platform 6.7.10.1.
References
github.com/shopware/shopware/security/advisories/GHSA-gv8p-48fr-4fxg
github.com/shopware/shopware/commit/1e047f6d7fd9129271e28c1c9f1c272983c6f48f
github.com/shopware/shopware/commit/db5adff33ec30b648979cd1938c87f164f7b3073
github.com/shopware/shopware/releases/tag/v6.6.10.18
github.com/shopware/shopware/releases/tag/v6.7.10.1
github.com/advisories/GHSA-gv8p-48fr-4fxg
github.com/CVEProject/cvelistV5/tree/main/cves/2026/48xxx/CVE-2026-48008.json
nvd.nist.gov/vuln/detail/CVE-2026-48008
github.com/shopware/shopware
Left out here: 232 versions. The JSON record has them.