CVE-2026-70558 in Dinky
Сводка
по VulDB • 07.08.2026
Обработчик POST /download/uploadFromRsByLocal в приложении Dinky напрямую передает переданный вызывающей стороной параметр пути в new File(path) и file.transferTo(dest) без какой-либо проверки пути (path validation). Маршрут помечен как @SaIgnore, а путь /download/** исключен из обработки интерцептором Sa-Token, поэтому единственной мерой защиты является проверка равенства заголовка со значением dinkyToken. Значение по умолчанию (efda1551-7958-4e0f-80a8-dfd107df3e38) захардкожено в исходном коде и поставляется с каждым развертыванием. Любой, кто имеет доступ к HTTP-порту Dinky (по умолчанию 8888) и предоставляет этот захардкоженный токен, может записывать произвольные файлы от имени учетной записи сервиса Dinky. Стандартный Docker-образ работает на порту 8888 без прокси или аутентификации, при этом права доступа к /opt/dinky установлены как chmod 777, что делает writable класспуть приложения, скрипты запуска и статические ресурсы. Демонстрация воздействия: перезапись файла /opt/dinky/config/static/index.html позволила немедленно обслуживать JavaScript атакующего в браузерах администраторов, а запись в файл /opt/dinky/org/dinky/Dinky.class привела к выполнению кода атакующего от имени сервиса Dinky при следующем запуске JVM через теневую подгрузку класса (classpath-shadow), инициированную скриптом bin/auto.sh. Записи выполняются с uid 9999 (flink), а не root, поэтому доступ к /etc, /root, /home и /usr запрещен. Затрагивает Dinky v1.2.5 (текущий релиз) и ветвь разработки, где код полностью идентичен на уровне байт-кода.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.