Skip to content

GHSA-27c9-vp3w-6ww8

Shopware exposes sensitive user information via CSV export mapping

Medium Packagist
Severity
4.9 / 10
Medium · CVSS 3.1
Exploit chance (EPSS)
—
No score published
Known exploited
No
Not in CISA's catalog
Weakness
CWE-212 Improper Removal of Sensitive Information Before Storage or Transfer
Fix
Available
2 packages have a fixed version

Description

Impact

Malicious actors can exploit this finding to export sensitive customer information from a Shopware application, including password hashes and password reset tokens. In SaaS deployments, this primarily affects customer accounts. In on-premise deployments, however, it also includes the hashes and recovery tokens of administrator-level accounts, which increases the potential impact. This risk is noteworthy because users may reuse the same or similar passwords across different services. In such cases, exposed hashes could allow attackers to recover credentials that might also be valid outside of Shopware.

Description

Sensitive information disclosure occurs when an application inadvertently displays sensitive information to its users. Depending on the context, websites can leak all kinds of information including: • Data regarding other users, such as usernames and/or e-mail addresses • Sensitive commercial data such as customer names • Technical details about the website and/or the underlying infrastructure Disclosing technical details, such as detailed version information, allows malicious actors to look for targeted vulnerabilities and/or misconfigurations in the application or in the underlying infrastructure. In addition, an application is more likely to be targeted by attacks that specifically target a particular version of the software used.

Applicability

The Shopware application exposes sensitive information to users within the export section. The Shopware application allows admins to import and export data within the application. To do this import/export profiles can be created. These profiles tell the application which tables within the database map to which columns in the generated file. During testing it was noticed that sensitive information such as password hashes or reset codes can also be included within the export. This can be done by creating a custom mapping that includes these fields within the export. To exploit this vulnerability, an account with permissions to create import/export profiles and to create exports, is required.

Reproduction

To reproduce this vulnerability, the steps below can be followed.

  1. Log in to Shopware application with an admin account capable of creating import/export profiles and creating exports
  2. Create a new import/export profile
  3. Add a new mapping for the ‘password’ database entry
  4. Create an export using the new profile
  5. Notice that the password hashes of the users are available within the export file.

Affected versions

Packagist

PackageVulnerableFixed in
shopware/core
>= 6.7.0.0, < 6.7.3.1
6.7.3.1
shopware/core
< 6.6.10.7
6.6.10.7
shopware/platform
>= 6.7.0.0, < 6.7.3.1
6.7.3.1
shopware/platform
< 6.6.10.7
6.6.10.7

How to fix

Move to the fixed version or later with your package manager, update the lockfile, and run your tests. If the package only arrives through another dependency, upgrade that dependency first. If none of its releases pulls a fixed version yet, force the version with your package manager's override.

shopware/core Packagist → 6.7.3.1

composer
composer require shopware/core:^6.7.3.1

shopware/platform Packagist → 6.7.3.1

composer
composer require shopware/platform:^6.7.3.1

Severity breakdown

CVSS 3.1 4.9

CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N

Attack vector
Network
Attack complexity
Low
Privileges required
High
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

Weakness

CWE-212: Improper Removal of Sensitive Information Before Storage or Transfer

The product stores, transfers, or shares a resource that contains sensitive information, but it does not properly remove that information before the product makes the resource available to unauthorized actors.

How to prevent it
  • Requirements: Clearly specify which information should be regarded as private or sensitive, and require that the product offers functionality that allows the user to cleanse the sensitive information from the resource before it is published or exported to other parties.
  • Architecture and Design: Compartmentalize the system to have "safe" areas where trust boundaries can be unambiguously drawn. Do not allow sensitive data to go outside of the trust boundary and always be careful when interfacing with a compartment outside of the safe area. Ensure that appropriate compartmentalization is built into the system design, and the compartmentalization allows for and reinforces privilege separation functionality. Architects and designers should rely on the principle of least privilege to decide the appropriate time to use privileges and the time to drop privileges.
  • Implementation, Operation: Some tools can automatically analyze documents to redact, strip, or "sanitize" private information, although some human review might be necessary. Tools may vary in terms of which document formats can be processed. When calling an external program to automatically generate or convert documents, invoke the program with any available options that avoid generating sensitive metadata. Some formats have well-defined fields that could contain private data, such as Exchangeable image file format (Exif), which can contain potentially sensitive metadata such as geolocation, date, and time [REF-1515] [REF-1516].
  • Implementation: Use naming conventions and strong types to make it easier to spot when sensitive data is being used. When creating structures, objects, or other complex entities, separate the sensitive and non-sensitive data as much as possible.
  • Implementation: Avoid errors related to improper resource shutdown or release (CWE-404), which may leave the sensitive data within the resource if it is in an incomplete state.

References

Timeline

  1. Published
  2. Last updated by the source
AdvisorySeverityWhy it's related
GHSA-gq96-5pfx-f4vc
Shopware: SSRF in Media External-Link Endpoint Bypasses IP Validation
Medium Also affects shopware/core
GHSA-xvhc-gm7j-mhmc
Shopware: Stored XSS via SVG file upload — no SVG sanitization
Medium Also affects shopware/core
GHSA-9v5m-39wh-5chq
Shopware: Unauthorized Payment Trigger for Foreign Orders via /store-api/handle-payment
Medium Also affects shopware/core
GHSA-f8q6-3g5w-jjr6
Shopware: Admin API ACL Bypass in Order State Transition Endpoints
Medium Also affects shopware/core
GHSA-4x3x-869w-xx3m
Shopware SSO referer trust leading to an arbitrary redirect target
Medium Also affects shopware/core
GHSA-7w52-7jvm-m9vw
Shopware: Timing-attack on admin panel allowing enumeration of administrator usernames
Low Also affects shopware/core
GHSA-v39m-97p8-gqg7
Shopware: Privilege escalation: non-admin user with user:create ACL can create admin accounts
Medium Also affects shopware/core
GHSA-8v9p-g828-v98f
Shopware: Admin Account Takeover via User Recovery Hash Exposure
Medium Also affects shopware/core
Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor