From 5692a2366bf4898e691417042cf1bc9ec7d348a3 Mon Sep 17 00:00:00 2001 From: hugy Date: Fri, 29 May 2026 07:22:41 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20rosetta-sdu-2026-0000/VULN-HIGH-rosetta-sdu-2026-0000?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rosetta-sdu-2026-0000/VULN-HIGH-rosetta-sdu-2026-0000 | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/rosetta-sdu-2026-0000/VULN-HIGH-rosetta-sdu-2026-0000 b/rosetta-sdu-2026-0000/VULN-HIGH-rosetta-sdu-2026-0000 index 008a6f0..514ec2a 100644 --- a/rosetta-sdu-2026-0000/VULN-HIGH-rosetta-sdu-2026-0000 +++ b/rosetta-sdu-2026-0000/VULN-HIGH-rosetta-sdu-2026-0000 @@ -14,3 +14,10 @@ java.nio.file.Path targetDir = KERNEL_DIR.resolve(platform).resolve(arch); KERNEL_DIR – это просто папка kernel. Дальше сервер смотрит есть ли там папка с таким путём, и если есть ищет в ней файлы. Но он не чистит строки от ../. Поэтому если передать arch=../../etc, то resolve склеит всё в путь kernel/../../etc, который после нормализации превратится в /etc. Останется только скачать эту ссылку ..... + +Что проверяется: +fileName().startsWith(".") — пропускает файлы типа .hidden, .gitignore и т.п. + +Что НЕ проверяется: +arch может быть "../../../etc" — и тогда итоговый путь станет: +Нет нормализации пути (Path.normalize(), getCanonicalPath() и т.п.)