Mittel

Shopware: Privilege escalation: non-admin user with user:create ACL can create admin accounts

  • Veröffentlicht: 04.06.2026
  • Aktualisiert: 11.10.2026 10:22

UserController::upsertUser() writes user data in SYSTEM_SCOPE and does not filter the admin field. A non-admin API user with user:create or user:update ACL permission can set admin: true on new or existing users, escalating to full admin access.

The Problem

In src/Core/Framework/Api/Controller/UserController.php, line 210-234:

php
public function upsertUser(?string $userId, Request $request, Context $context, ResponseFactoryInterface $factory): Response
{
    $data = $request->request->all(); // raw request data, no field filtering
    // ...
    $events = $context->scope(Context::SYSTEM_SCOPE, fn (Context $context) =>
        $this->userRepository->upsert([$data], $context)
    );
}

SYSTEM_SCOPE bypasses AclWriteValidator entirely (line 52 of AclWriteValidator::preValidate() returns early for SYSTEM_SCOPE). The admin boolean field is accepted without restriction.

Compare with IntegrationController::upsertIntegration() in the same codebase, which correctly checks:

php
if ((!$source instanceof AdminApiSource)
    || (!$source->isAdmin()
    && isset($data['admin']))
) {
    throw new PermissionDeniedException();
}

UserController is missing this exact check.

Impact

Any API user with the low-privilege user:create permission can create accounts with full admin access, or with user:update can promote any existing user to admin. This is a direct privilege escalation.

Suggested Fix

Add the same isAdmin() check from IntegrationController:

php
$source = $context->getSource();
if ((!$source instanceof AdminApiSource) || (!$source->isAdmin() && isset($data['admin']))) {
    throw new PermissionDeniedException();
}

Best regards, Keyvan Hardani

Betroffene Software

Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.

PlattformPaketAnfällige VersionenBehoben in
Composer-Paket shopware/core >= 6.7.0.0, < 6.7.10.1, < 6.6.10.18 6.7.10.1, 6.6.10.18
Composer-Paket shopware/platform >= 6.7.0.0, < 6.7.10.1, < 6.6.10.18 6.7.10.1, 6.6.10.18

Verweise

CVSS-Wert 6.5/10
CVSS-Vektor
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N
Schwäche (CWE)
CWE-269
Plattform
Composer
Paket
shopware/core, shopware/platform
Veröffentlicht
04.06.2026
Aktualisiert
11.10.2026 10:22

Quellen und Lizenzen

OSV / GitHub Advisory Database - GHSA-v39m-97p8-gqg7 - CC BY 4.0

Schwachstellenhistorie: shopware/platform

Alle veröffentlichten Schwachstellen dieses Pakets (Composer-Paket), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.

Alle (70) im Archiv
Einträge insgesamt
70
Erste → letzte
09.2020 06.2026
Ohne Fix
1
In Angriffen ausgenutzt
0

Verteilung nach Schweregrad

  • Kritisch 6
  • Hoch 16
  • Mittel 33
  • Niedrig 15

Veröffentlichungen pro Jahr

  1. 2020: 7
  2. 2021: 17
  3. 2022: 9
  4. 2023: 6
  5. 2024: 8
  6. 2025: 11
  7. 2026: 12
Schweregrad:
  1. Shopware: Privilege escalation: non-admin user with user:create ACL can create admin accounts dieser Eintrag
    Mittel · 6.5 CVE-2026-48010 >= 6.7.0.0, < 6.7.10.1, < 6.6.10.18 6.7.10.1, 6.6.10.18
  2. Hoch · 8.9 CVE-2026-31889 >= 6.7.0.0, < 6.7.8.1, < 6.6.10.15 6.7.8.1, 6.6.10.15
  3. Hoch CVE-2026-31887 >= 6.7.0.0, < 6.7.8.1, < 6.6.10.15 6.7.8.1, 6.6.10.15
  4. Hoch · 7.3 CVE-2025-27892 >= 6.7.0.0-rc1, < 6.7.0.0-rc2, >= 6.6.0.0, < 6.6.10.3, < 6.5.8.18 6.7.0.0-rc2, 6.6.10.3, 6.5.8.18
  5. Hoch · 7.5 CVE-2025-30151 >= 6.6.0.0, < 6.6.10.3, >= 6.7.0.0-rc1, < 6.7.0.0-rc2, < 6.5.8.17 6.6.10.3, 6.7.0.0-rc2, 6.5.8.17
  6. Hoch · 8.3 CVE-2024-42356 < 6.5.8.13, >= 6.6.0.0, < 6.6.5.1 6.5.8.13, 6.6.5.1
  7. Hoch · 8.3 CVE-2024-42355 < 6.5.8.13, >= 6.6.0.0, < 6.6.5.1 6.5.8.13, 6.6.5.1
  8. Hoch · 7.5 CVE-2024-27917 >= 6.5.8.0, < 6.5.8.7 6.5.8.7
  9. Kritisch · 9.3 CVE-2024-22406 < 6.5.7.4 6.5.7.4
  10. Hoch · 7.5 CVE-2020-13997 >= 6.0.0, < 6.2.3 6.2.3
  11. Hoch · 8.8 CVE-2020-13970 < 6.2.3 6.2.3
  12. Hoch · 8.1 CVE-2022-24872 < 6.4.10.1 6.4.10.1
  13. Hoch · 7.2 CVE-2022-24871 < 6.4.10.1 6.4.10.1
  14. Kritisch ghsa-r64m-qchj-hrjp < 6.4.6.1 6.4.6.1
  15. Hoch · 8.8 CVE-2021-37708 < 6.4.3.1 6.4.3.1
  16. Hoch · 8.0 CVE-2021-37710 < 6.4.3.1 6.4.3.1
  17. Hoch · 8.8 CVE-2021-37711 < 6.4.3.1 6.4.3.1
  18. Hoch · 7.5 CVE-2021-32717 < 6.4.1.1 6.4.1.1
  19. Kritisch · 9.1 CVE-2021-32711 < 6.3.5.1 6.3.5.1

Erkennen Sie Schwachstellen in Ihrer Anwendung

Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.

Anwendung verbinden
DockRay Newsletter

Anwendungssicherheit in Ihrem Postfach

Wichtige Schwachstellen, konkrete Empfehlungen und praktische Tipps für Ihre Anwendungen. Wählen Sie Ihre Technologien und verfolgen Sie, was für Ihr Projekt relevant ist.

  • Eine tägliche Zusammenfassung neuer Schwachstellen, auch kritischer.
  • Benachrichtigungen über wichtige Updates.
  • Praktische Tipps zur Sicherheit und Überwachung von Anwendungen.

Leer lassen, um Meldungen zu allen Technologien zu erhalten.

Kostenlos anmelden. In jeder E-Mail mit einem Klick abmelden.