
Behebt eine nicht authentifizierte SQL-Injection in einem Setup-Endpunkt, indem rohe JDBC-Abfragen durch ORM-Parametrisierung und Token-Validierung in konstanter Zeit ersetzt werden.
Dieses Repository enthält den Hotfix für CVE-2026-72898, eine nicht authentifizierte SQL-Injection-Schwachstelle im Setup-Endpunkt von selbst gehosteten Metabase-Instanzen.
Ohne den Patch können Angreifer die Validierung des Setup-Tokens umgehen, beliebige Datenbankbefehle ausführen und Data-Warehouse-Zugangsdaten extrahieren.
Die Funktion validate-setup-token akzeptierte zuvor unvalidierte Benutzereingaben und fügte sie direkt in einen rohen JDBC-String ein. Dadurch konnte ein Angreifer aus dem SQL-String ausbrechen und schädliche Befehle anhängen.
Dieser Patch verlagert den Validierungsmechanismus grundlegend, um SQL-Injection-Vektoren zu neutralisieren:
t2), Metabases nativem Object-Relational Mapper.crypto.equality/eq?, um die Token im Arbeitsspeicher der Anwendung (Clojure) zu vergleichen, statt in der Datenbank.crypto.equality/eq? wird in konstanter Zeit ausgeführt und verhindert so, dass Angreifer das Token über Timing-Unterschiede per Brute-Force ermitteln können.Ersetzt die anfällige rohe jdbc/query-Logik in metabase.api.setup.
Metabase ist unter der AGPL lizenziert. Dieser Patch wird unter denselben Bedingungen bereitgestellt.