CVE-2026-48012: Shopware/core Shopware SSO Referer Trust Leading Vulnerability
MODERATECVE-2026-48012 is a MODERATE (CVSS 4.3) shopware sso referer trust leading vulnerability (CWE-601: URL Redirection to Untrusted Site ('Open Redirect')) affecting Shopware/core libraries in the Packagist ecosystem. The issue involves shopware sso referer trust leading to an arbitrary redirect target. Remediation is available by upgrading affected packages to version 6.7.10.1.
CVE-2026-48012 at a Glance
Security Impact
CVSS: 4.3
The security impact metrics below are parsed directly from the CVSS v3.1 vector string (CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N).
How to Fix CVE-2026-48012
To remediate this vulnerability, upgrade all affected Shopware/core dependencies to a patched release. Both direct and transitive dependencies should be checked, as frameworks or security libraries may pull in vulnerable versions transitively.
Upgrade shopware/core to 6.7.10.1
Upgrade shopware/platform to 6.7.10.1
Run the following command in your project directory to verify that all resolved dependencies use the patched release:
inspect dependencies for shopware/core
How to Check if You Are Affected
To determine whether your application is affected by CVE-2026-48012, inspect your project dependencies for Shopware/core:
inspect dependencies for shopware/core
Analyze the terminal output to locate any version of Shopware/core in your dependency tree. If any resolved version matches the vulnerable ranges listed in the table below (for example, versions earlier than 6.7.10.1), your application is affected.
Note: Verify declared build manifests and deployed runtime container environments.
Technical Details
Vulnerability Mechanism & Technical Analysis
This vulnerability is classified under CWE-601: URL Redirection to Untrusted Site ('Open Redirect'), where the web application accepts a user-controlled input that specifies a link to an external site, and uses that link in a redirect. In Shopware/core, software state validation or input boundaries are circumvented during processing. Review the official source advisory statement below for specific affected components, classes, and reproduction details.
Source Advisory Statement
CVE-2026-48012 Affected Shopware/core Versions
2 component(s)| Product / Package | Ecosystem | Affected Versions | Fixed Version |
|---|---|---|---|
|
shopware/core
|
Packagist |
≥ 6.7.3.0
< 6.7.10.1
|
6.7.10.1
|
|
shopware/platform
|
Packagist |
≥ 6.7.3.0
< 6.7.10.1
|
6.7.10.1
|
References
Frequently Asked Questions
What is CVE-2026-48012?
Which Shopware/core versions are affected?
What version fixes CVE-2026-48012?
Is shopware/core affected?
Is shopware/platform affected?
What is the CVSS score of CVE-2026-48012?
What CWE is associated with CVE-2026-48012?
How can I check Packagist dependencies for CVE-2026-48012?
Machine-readable OSV JSON
OSV v1.5 Schema
{
"schema_version" : "1.4.0",
"id" : "GHSA-4x3x-869w-xx3m",
"modified" : "2026-06-04T19:32:36Z",
"published" : "2026-06-04T19:32:35Z",
"aliases" : [ "CVE-2026-48012" ],
"summary" : "Shopware SSO referer trust leading to an arbitrary redirect target",
"details" : "## Description\n\nThis report describes an open redirect in Shopware's public SSO entry point at `GET /api/oauth/sso/auth`. When the endpoint is reached without the expected SSO session state, the application falls back to the request's `Referer` header and uses that value as the redirect destination. In the validated behavior, the server does not restrict that fallback target to same-origin URLs, does not require a relative path, and does not reject dangerous schemes such as `javascript:`. As a result, an unauthenticated request can turn this endpoint into a reusable redirect primitive whose destination is fully controlled by attacker-supplied request metadata.\n\nThe security problem is not limited to a harmless navigation mismatch. The endpoint sits under `/api/oauth/`, which gives the redirect a trustworthy application-controlled origin and makes it suitable for phishing chains, branded redirect abuse, and cases where client software automatically follows redirects issued by a trusted host. The attached evidence also shows that the response is not only an HTTP `302` with a user-controlled `Location` header. The HTML body contains a matching meta refresh tag and redirect link built from the same attacker-controlled value. In the validated proof, the endpoint redirects to `https://attacker.example/poc` when that URL is supplied through `Referer`, and it also reflects `javascript:alert(1)` into `Location` and the HTML redirect body without any scheme filtering. This report therefore stays conservative and claims an open redirect with arbitrary redirect targets, while noting that the lack of scheme restrictions makes the behavior materially worse than a same-scheme external redirect.\n\n## Steps To Reproduce\n\n1. Start a local Shopware instance that exposes the vulnerable endpoint at `http://127.0.0.1:8000/api/oauth/sso/auth`. No login is required for the proof. The attached Python PoC already targets that base URL and is configured to send direct requests without following redirects automatically.\n2. Run the attached PoC with `python3 poc_sso_referer_open_redirect.py`. The script sends three requests to `GET /api/oauth/sso/auth` and records the raw responses as evidence files. The first request omits the `Referer` header entirely. The second request supplies `Referer: https://attacker.example/poc`. The third request supplies `Referer: javascript:alert(1)`.\n3. Inspect the first recorded response in `evidence/sso_redirect_no_referer.raw.txt`. In the validated run, the endpoint returns `401` with the message `Referrer not found. Cannot redirect.` This shows that the code path being exercised is the unauthenticated fallback behavior that depends on `Referer` when the expected SSO state is missing.\n4. Inspect `evidence/sso_redirect_https_redirect.raw.txt`. In the validated run, the endpoint returns `302` and sets `Location: https://attacker.example/poc`. The HTML body also contains a meta refresh tag and redirect link pointing to the same external URL. This demonstrates that the server accepts an attacker-controlled external target and emits it as a redirect destination.\n5. Inspect `evidence/sso_redirect_javascript_redirect.raw.txt`. In the validated run, the endpoint again returns `302`, but this time the response sets `Location: javascript:alert(1)`. The HTML body mirrors the same `javascript:` target in both the meta refresh tag and the anchor. This demonstrates that the fallback redirect does not even enforce an `http` or `https` scheme restriction before constructing the response.\n6. Compare the PoC summary in `evidence/poc_sso_referer_open_redirect.output.txt` with the raw responses. The validated run shows `401` when no `Referer` is present, `302` to `https://attacker.example/poc` when an external HTTPS URL is supplied, and `302` to `javascript:alert(1)` when a dangerous scheme is supplied. That behavior confirms the endpoint can be used as an open redirect with an arbitrary redirect target controlled through `Referer`.\n\n## Recommendations\n\nThe endpoint should stop using `Referer` as a fallback redirect target when the expected SSO state is missing. If the application cannot complete the SSO flow because the required session state does not exist, it should return a fixed error response or redirect only to a fixed internal page that is not influenced by request headers. `Referer` is not a trustworthy source of navigation intent and should not be treated as an authorization or routing signal for security-sensitive redirect logic.\n\nIf the product needs to preserve a return destination, that destination should be derived from a server-generated state value or validated against a strict allowlist. At minimum, the code should reject non-HTTP schemes, reject scheme-relative targets such as `//host`, and reject absolute URLs that are not same-origin with the current Shopware instance. A regression test should cover the exact cases proven here: no `Referer`, an external HTTPS `Referer`, and a `javascript:` `Referer`, with assertions that none of the attacker-controlled values can be emitted into `Location` or the HTML redirect body.\n\n## Impact\n\nThe demonstrated impact is that an unauthenticated attacker can cause a trusted Shopware endpoint to emit arbitrary redirect targets chosen through the request's `Referer` header. In the minimum case, that enables standard open redirect abuse for phishing, brand impersonation, and redirect chaining through a legitimate application origin. Because the redirect is served from `/api/oauth/sso/auth`, the resulting URL can look more trustworthy than a generic off-site redirect and may be more likely to be followed by users or client software that expects the endpoint to participate in an authentication flow.\n\nThe validated evidence also shows that the endpoint does not restrict the redirect target to ordinary web URLs. It reflects `javascript:alert(1)` directly into `Location` and into the HTML redirect page. This report keeps the claim conservative and classifies the issue as an open redirect with arbitrary redirect targets, but the acceptance of dangerous schemes makes the behavior more severe than a simple same-browser redirect to another HTTPS site and increases the risk of downstream abuse depending on client behavior.\n\n## Note on submission channel:\n\nI initially attempted to submit this issue through Shopware’s official security reporting form. The form backend returned HTTP 400 for normal submissions, and when an attachment was included it explicitly rejected `.md`, `.py`, `.zip` files with the message `File type not allowed`. Because the official form was not functioning correctly for me, I am submitting this report privately through GitHub’s vulnerability reporting flow.",
"severity" : [ {
"type" : "CVSS_V3",
"score" : "CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N"
} ],
"affected" : [ {
"package" : {
"ecosystem" : "Packagist",
"name" : "shopware/core"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "6.7.3.0"
}, {
"fixed" : "6.7.10.1"
} ]
} ]
}, {
"package" : {
"ecosystem" : "Packagist",
"name" : "shopware/platform"
},
"ranges" : [ {
"type" : "ECOSYSTEM",
"events" : [ {
"introduced" : "6.7.3.0"
}, {
"fixed" : "6.7.10.1"
} ]
} ]
} ],
"references" : [ {
"type" : "WEB",
"url" : "https://github.com/shopware/shopware/security/advisories/GHSA-4x3x-869w-xx3m"
}, {
"type" : "PACKAGE",
"url" : "https://github.com/shopware/shopware"
}, {
"type" : "WEB",
"url" : "https://github.com/shopware/shopware/releases/tag/v6.7.10.1"
} ],
"database_specific" : {
"cwe_ids" : [ "CWE-601" ],
"severity" : "MODERATE",
"github_reviewed" : true,
"github_reviewed_at" : "2026-06-04T19:32:35Z",
"nvd_published_at" : null
}
}