Media

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

  • Publicada: 04.06.2026
  • Actualizado: 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

Software afectado

Haz clic en una tecnología para ver todas sus vulnerabilidades.

PlataformaPaqueteVersiones vulnerablesCorregida en
Paquete de Composer shopware/core >= 6.7.0.0, < 6.7.10.1, < 6.6.10.18 6.7.10.1, 6.6.10.18
Paquete de Composer shopware/platform >= 6.7.0.0, < 6.7.10.1, < 6.6.10.18 6.7.10.1, 6.6.10.18

Referencias

Puntuación CVSS 6.5/10
Vector CVSS
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N
Debilidad (CWE)
CWE-269
Plataforma
Composer
Paquete
shopware/core, shopware/platform
Publicada
04.06.2026
Actualizado
11.10.2026 10:22

Fuentes y licencias

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

Historial de vulnerabilidades: shopware/core

Todas las vulnerabilidades publicadas de este paquete (Paquete de Composer), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.

Todas (65) en el archivo
Entradas en total
65
Primera → última
09.2020 06.2026
Sin corrección
0
Explotada en ataques
0

Distribución por gravedad

  • Crítica 5
  • Alta 16
  • Media 31
  • Baja 13

Divulgaciones por año

  1. 2020: 7
  2. 2021: 13
  3. 2022: 7
  4. 2023: 6
  5. 2024: 7
  6. 2025: 12
  7. 2026: 13
Gravedad:
  1. Shopware: Privilege escalation: non-admin user with user:create ACL can create admin accounts esta entrada
    Media · 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. Alta · 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. Alta CVE-2026-31887 >= 6.7.0.0, < 6.7.8.1, < 6.6.10.15 6.7.8.1, 6.6.10.15
  4. Alta · 7.2 CVE-2026-23498 >= 6.7.0.0, < 6.7.6.1 6.7.6.1
  5. Alta · 8.8 ghsa-9v82-vcjx-m76j >= 6.7.0.0, < 6.7.2.1 6.7.2.1
  6. Alta · 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
  7. Alta · 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
  8. Alta · 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
  9. Alta · 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
  10. Crítica · 9.3 CVE-2024-22406 < 6.5.7.4 6.5.7.4
  11. Alta · 7.5 CVE-2020-13997 >= 6.0.0, < 6.2.3 6.2.3
  12. Alta · 8.1 CVE-2022-24872 < 6.4.10.1 6.4.10.1
  13. Alta · 7.2 CVE-2022-24871 < 6.4.10.1 6.4.10.1
  14. Crítica ghsa-r64m-qchj-hrjp < 6.4.6.1 6.4.6.1
  15. Alta · 8.8 CVE-2021-37708 < 6.4.3.1 6.4.3.1
  16. Alta · 8.0 CVE-2021-37710 < 6.4.3.1 6.4.3.1
  17. Alta · 8.8 CVE-2021-37711 < 6.4.3.1 6.4.3.1
  18. Alta · 7.5 CVE-2021-32717 < 6.4.1.1 6.4.1.1

Identifica las vulnerabilidades de tu aplicación

Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.