Shopware's inproper input validation can lead to Reflected XSS through Storefront Login Page
Description
Shopware is an open commerce platform. Versions 6.4.6.0 through 6.6.10.9 and 6.7.0.0 through 6.7.5.0 have a Reflected XSS vulnerability in AuthController.php. A request parameter from the login page URL is directly rendered within the Twig template of the Storefront login page without further processing or input validation. This allows direct code injection into the template via the URL parameter, waitTime, which lacks proper input validation. This issue is fixed in versions 6.6.10.10 and 6.7.5.1.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
shopware/shopwarePackagist | >= 6.4.6.0, < 6.6.10.10 | 6.6.10.10 |
shopware/storefrontPackagist | >= 6.4.6.0, < 6.6.10.10 | 6.6.10.10 |
shopware/shopwarePackagist | >= 6.7.0.0, < 6.7.5.1 | 6.7.5.1 |
shopware/storefrontPackagist | >= 6.7.0.0, < 6.7.5.1 | 6.7.5.1 |
Affected products
1Patches
1c9242c02c845Merge pull request #115 from shopware/security/account-login-page
3 files changed · +16 −5
src/Storefront/Controller/AuthController.php+3 −3 modified@@ -90,9 +90,9 @@ public function loginPage(Request $request, RequestDataBag $data, SalesChannelCo 'redirectParameters' => $request->get('redirectParameters', json_encode([])), 'errorRoute' => $request->attributes->get('_route'), 'page' => $page, - 'loginError' => (bool) $request->get('loginError'), - 'waitTime' => $request->get('waitTime'), - 'errorSnippet' => $request->get('errorSnippet'), + 'loginError' => $request->attributes->getBoolean('loginError'), + 'waitTime' => $request->attributes->get('waitTime'), + 'errorSnippet' => $request->attributes->get('errorSnippet'), 'data' => $data, ]); }
src/Storefront/Resources/views/storefront/component/account/login.html.twig+2 −2 modified@@ -35,12 +35,12 @@ {% if errorSnippet != null %} {% sw_include '@Storefront/storefront/utilities/alert.html.twig' with { type: 'danger', - content: errorSnippet|trans|sw_sanitize + content: errorSnippet|trans|sw_sanitize({}, true) } %} {% elseif waitTime != null %} {% sw_include '@Storefront/storefront/utilities/alert.html.twig' with { type: 'info', - content: 'account.loginThrottled'|trans({'%seconds%': waitTime})|sw_sanitize + content: 'account.loginThrottled'|trans({'%seconds%': waitTime|number_format})|sw_sanitize } %} {% else %} {% sw_include '@Storefront/storefront/utilities/alert.html.twig' with {
tests/integration/Storefront/Controller/AuthControllerTest.php+11 −0 modified@@ -601,6 +601,17 @@ public function testAccountGuestLoginPageWithoutRedirectRedirects(): void static::assertSame('/account/login', $response->headers->get('location')); } + public function testLoginWithUnwantedQueryParameter(): void + { + $responseContent = $this->request( + 'GET', + '/account/login?loginError=1&waitTime=<a%20href%3D"https%3A%2F%2Fde.wikipedia.org%2Fwiki%2FPhishing">Here<%2Fa>', + [] + )->getContent(); + static::assertIsString($responseContent); + static::assertStringNotContainsString('https://de.wikipedia.org/wiki/Phishing', $responseContent); + } + private function createProductOnDatabase(string $productId, string $productNumber, Context $context): void { $taxId = Uuid::randomHex();
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
4- github.com/advisories/GHSA-6w82-v552-wjw2ghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2025-67648ghsaADVISORY
- github.com/shopware/shopware/commit/c9242c02c84595d9fa3e2adf6a264bc90a657b58ghsax_refsource_MISCWEB
- github.com/shopware/shopware/security/advisories/GHSA-6w82-v552-wjw2ghsax_refsource_CONFIRMWEB
News mentions
0No linked articles in our index yet.