Średnia

Shopware: Privilege Escalation via Sync API Integration Admin Flag Bypass

  • Ujawniono: 04.06.2026
  • Aktualizacja: 11.10.2026 10:22

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:

  1. AclWriteValidator — checks entity-level ACL (integration:create is sufficient)
  2. EntityProtectionValidator — checks WriteProtection on entity definitions, but IntegrationDefinition has 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 — admin field has no WriteProtection(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:

php
// src/Core/Framework/Integration/IntegrationDefinition.php
(new BoolField('admin', 'admin'))
    ->addFlags(new WriteProtection(Context::SYSTEM_SCOPE)),

Czego dotyczy

Kliknij technologię, aby zobaczyć wszystkie dotyczące jej podatności.

PlatformaPaczkaPodatne wersjePoprawka w wersji
Paczka Composer shopware/core >= 6.7.0.0, < 6.7.10.1, < 6.6.10.18 6.7.10.1, 6.6.10.18
Paczka Composer shopware/platform >= 6.7.0.0, < 6.7.10.1, < 6.6.10.18 6.7.10.1, 6.6.10.18

Odnośniki

Ocena CVSS 6.5/10
Wektor CVSS
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N
Słabość (CWE)
CWE-862
Platforma
Composer
Paczka
shopware/core, shopware/platform
Ujawniono
04.06.2026
Aktualizacja
11.10.2026 10:22

Źródła i licencje

OSV / GitHub Advisory Database - GHSA-gv8p-48fr-4fxg - CC BY 4.0

Historia podatności: shopware/core

Wszystkie opisane podatności tej paczki (Paczka Composer), od najnowszej. Widać, czy to jednorazowa wpadka, czy paczka, której trzeba pilnować.

Wszystkie (65) w archiwum
Wszystkich wpisów
65
Pierwsza → ostatnia
09.2020 06.2026
Bez poprawki
0
Wykorzystywana w atakach
0

Rozkład istotności

  • Krytyczna 5
  • Wysoka 16
  • Średnia 31
  • Niska 13

Ujawnienia w latach

  1. 2020: 7
  2. 2021: 13
  3. 2022: 7
  4. 2023: 6
  5. 2024: 7
  6. 2025: 12
  7. 2026: 13
Istotność:
  1. Shopware: Privilege Escalation via Sync API Integration Admin Flag Bypass ten wpis
    Średnia · 6.5 CVE-2026-48008 >= 6.7.0.0, < 6.7.10.1, < 6.6.10.18 6.7.10.1, 6.6.10.18
  2. Wysoka · 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. Wysoka CVE-2026-31887 >= 6.7.0.0, < 6.7.8.1, < 6.6.10.15 6.7.8.1, 6.6.10.15
  4. Wysoka · 7.2 CVE-2026-23498 >= 6.7.0.0, < 6.7.6.1 6.7.6.1
  5. Wysoka · 8.8 ghsa-9v82-vcjx-m76j >= 6.7.0.0, < 6.7.2.1 6.7.2.1
  6. Wysoka · 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. Wysoka · 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. Wysoka · 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. Wysoka · 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. Krytyczna · 9.3 CVE-2024-22406 < 6.5.7.4 6.5.7.4
  11. Wysoka · 8.8 CVE-2023-2017 < 6.4.20.1 6.4.20.1
  12. Wysoka · 7.5 CVE-2020-13997 >= 6.0.0, < 6.2.3 6.2.3
  13. Wysoka · 8.1 CVE-2022-24872 < 6.4.10.1 6.4.10.1
  14. Wysoka · 7.2 CVE-2022-24871 < 6.4.10.1 6.4.10.1
  15. Krytyczna ghsa-r64m-qchj-hrjp < 6.4.6.1 6.4.6.1
  16. Wysoka · 8.8 CVE-2021-37708 < 6.4.3.1 6.4.3.1
  17. Wysoka · 8.0 CVE-2021-37710 < 6.4.3.1 6.4.3.1
  18. Wysoka · 8.8 CVE-2021-37711 < 6.4.3.1 6.4.3.1
  19. Wysoka · 7.5 CVE-2021-32717 < 6.4.1.1 6.4.1.1
Pokaż więcej (2) Widać 20 z 22

Dowiedz się, które podatności dotyczą Twojej aplikacji

Po podłączeniu integracji DockRay i włączeniu raportowania oprogramowania DockRay porównuje zgłoszone wersje komponentów ze znanymi podatnościami i powiadamia o potwierdzonych dopasowaniach. Zakres zależy od obsługiwanej technologii i dostępnych biuletynów.

Podłącz swoją aplikację
Newsletter DockRay

Bezpieczeństwo aplikacji w Twojej skrzynce

Najważniejsze podatności, konkretne zalecenia i praktyczne wskazówki dla Twoich aplikacji. Wybierz technologie i śledź to, co ma znaczenie dla Twojego projektu.

  • Codzienne zestawienie nowych podatności, także krytycznych.
  • Powiadomienia o ważnych aktualizacjach.
  • Praktyczne porady o bezpieczeństwie i monitoringu aplikacji.

Pozostaw puste, aby otrzymywać informacje o wszystkich technologiach.

Zapis jest bezpłatny. Wypiszesz się jednym kliknięciem w wiadomości.