ghsa-35jp-8cgg-p4wj
Vulnerability from github
8.7 (High) - CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N
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:
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.
{ "affected": [ { "database_specific": { "last_known_affected_version_range": "\u003c= 6.5.8.12" }, "package": { "ecosystem": "Packagist", "name": "shopware/core" }, "ranges": [ { "events": [ { "introduced": "0" }, { "fixed": "6.5.8.13" } ], "type": "ECOSYSTEM" } ] }, { "database_specific": { "last_known_affected_version_range": "\u003c= 6.5.8.12" }, "package": { "ecosystem": "Packagist", "name": "shopware/platform" }, "ranges": [ { "events": [ { "introduced": "0" }, { "fixed": "6.5.8.13" } ], "type": "ECOSYSTEM" } ] }, { "database_specific": { "last_known_affected_version_range": "\u003c= 6.6.5.0" }, "package": { "ecosystem": "Packagist", "name": "shopware/platform" }, "ranges": [ { "events": [ { "introduced": "6.6.0.0" }, { "fixed": "6.6.5.1" } ], "type": "ECOSYSTEM" } ] }, { "database_specific": { "last_known_affected_version_range": "\u003c= 6.6.5.0" }, "package": { "ecosystem": "Packagist", "name": "shopware/core" }, "ranges": [ { "events": [ { "introduced": "6.6.0.0" }, { "fixed": "6.6.5.1" } ], "type": "ECOSYSTEM" } ] } ], "aliases": [ "CVE-2024-42356" ], "database_specific": { "cwe_ids": [ "CWE-1336", "CWE-94" ], "github_reviewed": true, "github_reviewed_at": "2024-08-08T14:50:11Z", "nvd_published_at": "2024-08-08T15:15:18Z", "severity": "HIGH" }, "details": "### Impact\nThe `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. \n\nExample call from PHP:\n\n```php\n$context-\u003escope(Context::SYSTEM_SCOPE, static function (Context $context) use ($mediaService, $media, \u0026$fileBlob): void {\n $fileBlob = $mediaService-\u003eloadFile($media-\u003egetId(), $context);\n});\n```\n\nThis function can be called also from Twig and as the second parameter allows any callable, it\u0027s possible to call from Twig any statically callable PHP function/method.\n\nIt\u0027s 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.\n\n### Patches\nUpdate to Shopware 6.6.5.1 or 6.5.8.13\n\n### Workarounds\nFor 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.\n", "id": "GHSA-35jp-8cgg-p4wj", "modified": "2024-08-08T17:00:22Z", "published": "2024-08-08T14:50:11Z", "references": [ { "type": "WEB", "url": "https://github.com/shopware/shopware/security/advisories/GHSA-35jp-8cgg-p4wj" }, { "type": "ADVISORY", "url": "https://nvd.nist.gov/vuln/detail/CVE-2024-42356" }, { "type": "WEB", "url": "https://github.com/shopware/core/commit/04183e0c02af3b404eb7d52c683734bfe0595038" }, { "type": "WEB", "url": "https://github.com/shopware/core/commit/a784aa1cec0624e36e0ee4d41aeebaed40e0442f" }, { "type": "WEB", "url": "https://github.com/shopware/shopware/commit/8504ba7e56e53add6a1d5b9d45015e3d899cd0ac" }, { "type": "WEB", "url": "https://github.com/shopware/shopware/commit/e43423bcc93c618c3036f94c12aa29514da8cf2e" }, { "type": "PACKAGE", "url": "https://github.com/shopware/shopware" } ], "schema_version": "1.4.0", "severity": [ { "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L", "type": "CVSS_V3" }, { "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:L/SC:N/SI:N/SA:N", "type": "CVSS_V4" } ], "summary": "Shopware vulnerable to Server Side Template Injection in Twig using Context functions" }
Sightings
Author | Source | Type | Date |
---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.