Files
RosettaBugBounty/rosetta-sdu-2026-0000/VULN-HIGH-rosetta-sdu-2026-0000

17 lines
1.2 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
https://git.rosetta.im/Rosetta/rosetta-sdu/src/branch/main/README.md
Path Traversal (выход за пределы папки kernel)
KERNEL_DIR.resolve(platform).resolve(arch) без фильтрации ..
GET через параметры platform и arch в строке запроса
в классе UpdatesResource есть метод findLatestKernel. Он берёт параметры platform и arch прямо из запроса и делает так:
----------------------------------------------------------------------------------------------------------------------------
java
java.nio.file.Path targetDir = KERNEL_DIR.resolve(platform).resolve(arch);
KERNEL_DIR это просто папка kernel. Дальше сервер смотрит есть ли там папка с таким путём, и если есть ищет в ней файлы. Но он не чистит строки от ../. Поэтому если передать arch=../../etc, то resolve склеит всё в путь kernel/../../etc, который после нормализации превратится в /etc.
Останется только скачать эту ссылку .....