Attacke über Checkout\Cart

Moin zusammen..
ich habe in einem Shop seit zweit Tagen auffallend viele Exceptions, die über Checkout/Cart was versuchen:

[2025-03-31T12:38:32.597834+00:00] request.ERROR: Uncaught PHP Exception Shopware\Core\Checkout\Cart\CartException: „Line item type „‚;print(md5(31337));$a=‘“ is not supported.“ at CartException.php line 260 {„exception“:„[object] (Shopware\Core\Checkout\Cart\CartException(code: 0): Line item type "‚;print(md5(31337));$a=‘" is not supported. at /www/htdocs/xxxx/vendor/shopware/core/Checkout/Cart/CartException.php:260)“}
[2025-03-31T12:39:34.323629+00:00] request.ERROR: Uncaught PHP Exception Shopware\Core\Checkout\Cart\CartException: „Line item type „redirtest.acx“ is not supported.“ at CartException.php line 260 {„exception“:„[object] (Shopware\Core\Checkout\Cart\CartException(code: 0): Line item type "redirtest.acx" is not supported. at /www/htdocs/xxxx/vendor/shopware/core/Checkout/Cart/CartException.php:260)“}
[2025-03-31T12:39:35.348631+00:00] request.ERROR: Uncaught PHP Exception Shopware\Core\Checkout\Cart\CartException: „Line item is invalid: Identifier contains invalid characters. Only alphanumeric characters, dashes, underscores and dots are allowed.“ at CartException.php line 445 {„exception“:„[object] (Shopware\Core\Checkout\Cart\CartException(code: 0): Line item is invalid: Identifier contains invalid characters. Only alphanumeric characters, dashes, underscores and dots are allowed. at /www/htdocs/xxxx/vendor/shopware/core/Checkout/Cart/CartException.php:445)“}

Ja, in die LineItems kann man über den Storefront API schreiben, was man möchte. Wenn man kein Storefront API Rate Limit hat und vom Bot nicht verschont wird, dann kann das unschön Enden. Hatte einen Test-Shop ohne Rate-Limit, etc. Da waren in 2 Tagen 30 GB an Daten in den Error-Logs.

Das ist jedoch kein Sicherheitsrisiko.

Da will jemand wohl witzig sein, print(md5(31337))… Lässt sich leider nie ganz vermeiden, wenn Du selbst hostest oder einen guten Hoster hast, könnte man ggf. was mit fail2ban machen. Oder per Firewall, die auf bestimmte Muster reagiert.

Bei unseren Kunden haben wir das Problem auch per Fail2ban in den Griff bekommen.

Je nach Konfiguration können im schlimmsten Fall diese Einträge in Massen, durch das MySQL Binlog, das Dateisystem vollschreiben. Bei uns waren diese „Angriffe“ auch häufig am Wochenende und daher anfangs nicht immer sofort entdeckt.