ช่องโหว่ใน Git เมื่อทำการโคลนโมดูลย่อยและใช้เชลล์ git

เวอร์ชันแก้ไขของระบบควบคุมแหล่งที่มาแบบกระจาย Git 2.38.1, 2.30.6, 2.31.5, 2.32.4, 2.33.5, 2.34.5, 2.35.5, 2.36.3 และ 2.37.4 ได้รับการเผยแพร่ ซึ่งแก้ไข ช่องโหว่ XNUMX รายการ ซึ่งปรากฏขึ้นเมื่อใช้คำสั่ง “git clone” ในโหมด “—recurse-submodules” พร้อมที่เก็บที่ไม่ได้ตรวจสอบ และเมื่อใช้โหมดโต้ตอบ “git shell” คุณสามารถติดตามการเปิดตัวการอัปเดตแพ็คเกจในหน้าของ Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD

  • CVE-2022-39253 - ช่องโหว่ดังกล่าวทำให้ผู้โจมตีที่ควบคุมเนื้อหาของ CVE-XNUMX-XNUMX เข้าถึงข้อมูลที่เป็นความลับบนระบบของผู้ใช้โดยการวางลิงก์สัญลักษณ์ไปยังไฟล์ที่สนใจในไดเร็กทอรี $GIT_DIR/objects ของ CVE-XNUMX-XNUMX ปัญหาจะปรากฏขึ้นเฉพาะเมื่อมีการโคลนในเครื่อง (ในโหมด "--local" ซึ่งใช้เมื่อข้อมูลเป้าหมายและแหล่งที่มาของโคลนอยู่ในพาร์ติชันเดียวกัน) หรือเมื่อทำการโคลนพื้นที่เก็บข้อมูลที่เป็นอันตรายซึ่งทำแพ็กเกจเป็นโมดูลย่อยในพื้นที่เก็บข้อมูลอื่น (ตัวอย่างเช่น เมื่อรวมโมดูลย่อยแบบเรียกซ้ำด้วยคำสั่ง "git clone" --recurse-submodules")

    ช่องโหว่นี้เกิดจากความจริงที่ว่าในโหมดการโคลน “--local” คอมไพล์จะถ่ายโอนเนื้อหาของ $GIT_DIR/objects ไปยังไดเร็กทอรีเป้าหมาย (การสร้างฮาร์ดลิงก์หรือสำเนาของไฟล์) ดำเนินการยกเลิกการอ้างอิงลิงก์สัญลักษณ์ (เช่น ผลลัพธ์ ลิงก์ที่ไม่ใช่สัญลักษณ์จะถูกคัดลอกไปยังไดเร็กทอรีเป้าหมาย แต่เป็นไฟล์ที่ลิงก์ชี้โดยตรง) เพื่อป้องกันช่องโหว่ git รุ่นใหม่ห้ามไม่ให้มีการโคลนที่เก็บข้อมูลในโหมด "--local" ที่มีลิงก์สัญลักษณ์ในไดเร็กทอรี $GIT_DIR/objects นอกจากนี้ ค่าเริ่มต้นของพารามิเตอร์ protocol.file.allow ได้ถูกเปลี่ยนเป็น "ผู้ใช้" ซึ่งทำให้การดำเนินการโคลนโดยใช้โปรโตคอล file:// ไม่ปลอดภัย

  • CVE-2022-39260 - จำนวนเต็มล้นในฟังก์ชัน split_cmdline() ที่ใช้ในคำสั่ง "git shell" ปัญหานี้สามารถใช้เพื่อโจมตีผู้ใช้ที่มี "git shell" เป็นเชลล์สำหรับเข้าสู่ระบบและเปิดใช้งานโหมดโต้ตอบได้ (สร้างไฟล์ $HOME/git-shell-commands แล้ว) การใช้ประโยชน์จากช่องโหว่สามารถนำไปสู่การรันโค้ดที่กำหนดเองบนระบบเมื่อส่งคำสั่งที่ออกแบบมาเป็นพิเศษที่มีขนาดใหญ่กว่า 2 GB

ที่มา: opennet.ru

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