ช่องโหว่ใน Git ที่นำไปสู่การรั่วไหลของข้อมูลและการเขียนทับ

เวอร์ชันแก้ไขของระบบควบคุมแหล่งที่มาแบบกระจาย Git 2.38.4, 2.37.6, 2.36.5, 2.35.7, 2.34.7, 2.33.7, 2.32.6, 2.31.7 และ 2.30.8 ได้รับการเผยแพร่ ซึ่งแก้ไข ช่องโหว่ XNUMX รายการ ซึ่งส่งผลต่อการเพิ่มประสิทธิภาพสำหรับการโคลนในเครื่องและคำสั่ง "git Apply" คุณสามารถติดตามการเปิดตัวการอัปเดตแพ็คเกจในหน้าของ Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD หากไม่สามารถติดตั้งการอัปเดตได้ ขอแนะนำให้ใช้วิธีแก้ปัญหาชั่วคราวเพื่อหลีกเลี่ยงการดำเนินการ "git clone" ด้วยตัวเลือก "--recurse-submodules" บนที่เก็บที่ไม่น่าเชื่อถือ และเพื่อหลีกเลี่ยงการใช้ "git Apply" และ " คำสั่ง git am" บนที่เก็บที่ไม่น่าเชื่อถือ รหัส

  • ช่องโหว่ CVE-2023-22490 ช่วยให้ผู้โจมตีที่ควบคุมเนื้อหาของที่เก็บข้อมูลโคลนสามารถเข้าถึงข้อมูลที่ละเอียดอ่อนบนระบบของผู้ใช้ได้ ข้อบกพร่องสองประการมีส่วนทำให้เกิดช่องโหว่:

    ข้อบกพร่องแรกช่วยให้เมื่อทำงานกับพื้นที่เก็บข้อมูลที่ออกแบบมาเป็นพิเศษ สามารถใช้การเพิ่มประสิทธิภาพการโคลนในเครื่องได้ แม้ในขณะที่ใช้การขนส่งที่มีการโต้ตอบกับระบบภายนอก

    ข้อบกพร่องที่สองทำให้สามารถวางลิงก์สัญลักษณ์แทนไดเร็กทอรี $GIT_DIR/objects คล้ายกับช่องโหว่ CVE-2022-39253 ซึ่งเป็นการแก้ไขที่บล็อกการวางลิงก์สัญลักษณ์ในไดเร็กทอรี $GIT_DIR/objects แต่ไม่ได้ ตรวจสอบข้อเท็จจริงที่ว่าไดเร็กทอรี $GIT_DIR/objects อาจเป็นลิงก์สัญลักษณ์

    ในโหมดการโคลนในเครื่อง git จะถ่ายโอน $GIT_DIR/objects ไปยังไดเร็กทอรีเป้าหมายโดยการยกเลิกการอ้างอิง Symlink ซึ่งทำให้ไฟล์ที่อ้างอิงโดยตรงถูกคัดลอกไปยังไดเร็กทอรีเป้าหมาย การสลับไปใช้การเพิ่มประสิทธิภาพการโคลนในเครื่องสำหรับการขนส่งที่ไม่ใช่ในเครื่องช่วยให้สามารถใช้ประโยชน์จากช่องโหว่เมื่อทำงานกับที่เก็บข้อมูลภายนอก (เช่น การรวมโมดูลย่อยแบบเรียกซ้ำด้วยคำสั่ง “git clone —recurse-submodules” สามารถนำไปสู่การโคลนของที่เก็บข้อมูลที่เป็นอันตรายซึ่งบรรจุเป็นโมดูลย่อย ในพื้นที่เก็บข้อมูลอื่น)

  • ช่องโหว่ CVE-2023-23946 อนุญาตให้เขียนทับเนื้อหาของไฟล์ที่อยู่นอกไดเร็กทอรีการทำงานโดยส่งอินพุตที่สร้างขึ้นเป็นพิเศษไปยังคำสั่ง "git Apply" ตัวอย่างเช่น การโจมตีสามารถดำเนินการได้ในระหว่างการประมวลผลแพตช์ที่ผู้โจมตีเตรียมไว้ใน "git Apply" หากต้องการบล็อกแพตช์จากการสร้างไฟล์นอกสำเนาที่ใช้งานได้ "git Apply" จะบล็อกการประมวลผลแพตช์ที่พยายามเขียนไฟล์โดยใช้ symlink แต่ปรากฎว่าการป้องกันนี้สามารถข้ามได้โดยการสร้างลิงก์สัญลักษณ์ตั้งแต่แรก

ที่มา: opennet.ru

เพิ่มความคิดเห็น