Skip to content

Shopware vulnerable to Server Side Template Injection in Twig using Context functions

High severity GitHub Reviewed Published Aug 8, 2024 in shopware/shopware • Updated Aug 12, 2024

Package

composer shopware/core (Composer)

Affected versions

<= 6.5.8.12
>= 6.6.0.0, <= 6.6.5.0

Patched versions

6.5.8.13
6.6.5.1
composer shopware/platform (Composer)
<= 6.5.8.12
>= 6.6.0.0, <= 6.6.5.0
6.5.8.13
6.6.5.1

Description

Impact

The context variable is injected into almost any Twig Template and allows to access to current language, currency information. The context object allows also to switch for a short time the scope of the Context as a helper with a callable function.

Example call from PHP:

$context->scope(Context::SYSTEM_SCOPE, static function (Context $context) use ($mediaService, $media, &$fileBlob): void {
    $fileBlob = $mediaService->loadFile($media->getId(), $context);
});

This function can be called also from Twig and as the second parameter allows any callable, it's possible to call from Twig any statically callable PHP function/method.

It's not possible as customer to provide any Twig code, the attacker would require access to Administration to exploit it using Mail templates or using App Scripts.

Patches

Update to Shopware 6.6.5.1 or 6.5.8.13

Workarounds

For older versions of 6.1, 6.2, 6.3 and 6.4 corresponding security measures are also available via a plugin. For the full range of functions, we recommend updating to the latest Shopware version.

References

@pweyck pweyck published to shopware/shopware Aug 8, 2024
Published to the GitHub Advisory Database Aug 8, 2024
Reviewed Aug 8, 2024
Published by the National Vulnerability Database Aug 8, 2024
Last updated Aug 12, 2024

Severity

High

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

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

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L

EPSS score

0.077%
(34th percentile)

CVE ID

CVE-2024-42356

GHSA ID

GHSA-35jp-8cgg-p4wj

Source code

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.