In der quelloffenen verteilten NoSQL-Datenbank Apache Cassandra haben Sicherheitsforscher eine Schwachstelle entdeckt, durch die Angreifer möglicherweise beliebigen Code einschleusen und ausführen können (CVE-2021-44521, CVSS 9.1, Risiko kritisch; JFrog stuft das Risiko hingegen mit CVSS 8.4 als hoch ein). Dafür müssen einige Konfigurationsoptionen gesetzt sein, die vom Standard abweichen. Updates zum Beheben des Fehlers stehen bereit. Die Sicherheitslücke lässt sich offenbar leicht ausnutzen, wenn die Optionen enable_user_defined_functions: true,enable_scripted_user_defined_functions: true
und enable_user_defined_functions_threads: false
in der Konfigurationsdatei cassandra.yaml
respektive Config.java
gesetzt wurden. Zudem benötigt ein Angreifer die Berechtigungen, benutzerdefinierte Funktionen im Cluster anzulegen – standardmäßig dürfen das jedoch auch anonyme Anmeldungen. Diese Konfiguration wurde laut CVE-Eintrag als unsicher dokumentiert und bleibt es, auch nachdem die Updates installiert wurden. Die Entdecker der Lücke vom IT-Sicherheitsunternehmen JFrog erläutern in ihrer Sicherheitsmeldung, dass die benutzerdefinierten Funktionen etwa in Java oder JavaScript geschrieben sein können. JavaScript führt die sogenannte Nashorn-JavaScript-Engine aus, die ihrerseits in der Java-Virtual-Machine läuft. Nashorn garantiere keine Sicherheit bezüglich nicht vertrauenswürdigem Code, sodass die Ausführung von Code in Nashorn nochmals in eine Sandbox verfrachtet werden sollte. Die Cassandra-Entwickler haben als Sandbox einen Filtermechanismus implementiert, der auf einer White- und Blacklist an Klassen basiert. Zudem nutzen sie den Java Security Manager, um die Zugriffsbefugnisse ausgeführten Codes zu kontrollieren. Oben genannte Konfigurationsoptionen setzen diese Sandbox-Mechanismen außer Kraft, erläutern die Sicherheitsforscher. Die Auswirkungen der einzelnen Konfigurationsoptionen erklären sie in ihrem Blog-Beitrag detailliert und stellen dabei auch einen Proof-of-Concept-Exploit vor. Betroffen sind die Versionen von Apache Cassandra 3.0.x, 3.11.x sowie 4.0.x. Die Versionen 3.0.26, 3.11.12 und 4.0.2 schließen die Sicherheitslücken. Die Fehlerbehebung der Apache-Entwickler ergänzt eine neue Konfigurationsoption allow_extra_insecure_udfs
, die standardmäßig auf false
gesetzt ist. Sie verhindert das Abschalten des Java Security Managers sowie den Zugriff auf java.lang.System
. Administratoren sollten die verfügbaren Aktualisierungen installieren, empfehlen die IT-Sicherheitsforscher nachdrücklich, um das mögliche Ausnutzen der Sicherheitslücken zu verhindern.