Niedrig

Shopware: Timing-attack on admin panel allowing enumeration of administrator usernames

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

Summary

There is a Proof of Concept which is able to enumerate the usernames of administrator users. This was possible by performing a timing attack.

Details

The faulty code exists in src/Core/Framework/Api/OAuth/UserRepository.php:

php
public function getUserEntityByUserCredentials(
        string $username,
        #[\SensitiveParameter]
        string $password,
        string $grantType,
        ClientEntityInterface $clientEntity
    ): ?UserEntityInterface {
        if ($this->loginConfigService->getConfig()?->useDefault === false) {
            // never allow login via password if the default login is disabled (e.g. using SSO only)
            return null;
        }

        $builder = $this->connection->createQueryBuilder();
        $user = $builder->select('user.id', 'user.password')
            ->from('user')
            ->where('username = :username')
            ->setParameter('username', $username)
            ->fetchAssociative();

        // PATH 1: EARLY RETURN WHEN USERNAME IS NOT FOUND
        if (!$user) {
            return null;
        }

        // PATH 2: VERIFY PASSWORD IF USER IS FOUND
        if (!password_verify($password, (string) $user['password'])) {
            return null;
        }

        return new User(Uuid::fromBytesToHex($user['id']));
    }

Subroutine getUserEntityByUserCredentials() is called when an auth request is send to api/oauth/token. If the given username is not found an early return is done (PATH 1). Only if the user is found we verify the password using password_verify.

PHP method password_verify by default uses hashing algorithm Argon2id which by design is intentionally 'slow' by introducing a timing cost to an attempt to bruteforce hashes more costly.

Since password_verify has a notable executable time, PATH 2 where an user is found and verified will be slower on average then PATH 1 where we do an early return for non-existing users.

Proposed fix

Before doing the early return, password_verify a dummy hash.

Impact

  1. More targeted dictionary/bruteforce attacks.
  2. Spear phishing / eases social engineering.
  3. Credential stuffing from other data leaks.

Authors

Niel Duysters (@NielDuysters) and Thomas Brankaer (@tbrankaer)

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 3.7/10
CVSS-Vektor
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
Schwäche (CWE)
CWE-208
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-7w52-7jvm-m9vw - 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: Timing-attack on admin panel allowing enumeration of administrator usernames dieser Eintrag
    Niedrig · 3.7 CVE-2026-48011 >= 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.