## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-KUSHIRO45-METABASE-CVE-2023-38646
cd ~/metabase-poc cat > README.md << 'EOF'
# CVE-2023-38646 — Удаленное выполнение кода до аутентификации в Metabase
## Краткое описание
CVSS 9.8. Версии Metabase до 0.46.6.1 / 1.46.6.1 (и эквивалентные более ранние ветки) предоставляют возможность RCE до аутентификации через конечную точку `/api/setup/validate`, которая предназначена для проверки параметров подключения к базе данных во время начальной настройки, но доступна без аутентификации даже после завершения настройки.
## Коренная причина
Конечная точка принимает полезную нагрузку подключения к базе данных, и при указании `engine: h2` с поддельной строкой подключения JDBC позволяет внедрять произвольный JavaScript через синтаксис H2 `CREATE TRIGGER ... AS $$//javascript`. Тело триггера выполняется во время проверки, предоставляя атакующему выполнение JavaScript внутри JVM — что тривиально приводит к выполнению команд ОС через `java.lang.Runtime.getRuntime().exec()`.
Основная проблема заключается в том, что движок базы данных H2 доверяет коду, внедренному в строку подключения, в рамках "проверки" источника данных, в сочетании с тем, что Metabase открывает этот путь проверки до аутентификации.