
โครงการ Git ได้ออก Patch แก้ไขช่องโหว่ด้านความปลอดภัยทั้งหมด 6 รายการ รวมถึงช่องโหว่ระดับ Critical ที่ทำให้ Repository ที่เป็นอันตรายสามารถรันโค้ดได้ระหว่างการ Clone แบบ Recursive ส่วนอีก 5 ช่องโหว่เกี่ยวข้องกับการเขียนไฟล์อย่างไม่ปลอดภัย และปัญหา Memory Corruption ในกระบวนการ Merge และการใช้ Patch โดย Git ประกาศการแก้ไขช่องโหว่เหล่านี้เมื่อวันที่ 10 พฤศจิกายน 2026
Patch ดังกล่าวถูกเผยแพร่ใน Git เวอร์ชัน 2.56.1 และมีการ Backport ไปยังเวอร์ชัน 2.55.1, 2.54.1, 2.53.1, 2.52.1, 2.51.3 และ 2.50.2 ผู้ใช้งานควรอัปเดตเป็นเวอร์ชัน 2.56.1 หรือเวอร์ชันล่าสุดที่ได้รับการแก้ไขในสายเวอร์ชันที่ใช้งานอยู่ รวมถึงแอปพลิเคชันที่มี Git ติดตั้งมาภายในตัวเองก็จำเป็นต้องได้รับการอัปเดตเช่นกัน
ช่องโหว่ที่มีความรุนแรงสูงที่สุดคือ CVE-2026-111760 ซึ่งมีระดับความรุนแรง High และคะแนน CVSS 8.0 โดยปกติ Git จะตรวจสอบ File Path ก่อนเขียนไฟล์ และป้องกันไม่ให้มีการเขียนทับข้อมูลภายใน Repository ของตัวเอง
อย่างไรก็ตาม ปัญหา Integer Truncation ในโค้ดส่วน Index ทำให้ File Path ที่มีความยาวมากผิดปกติสามารถผ่านการตรวจสอบภายใต้ชื่อหนึ่ง แต่เมื่อมีการเขียนไฟล์จริงกลับใช้ชื่อที่สั้นลง
ผู้โจมตีสามารถใช้ช่องโหว่นี้แทนที่ไฟล์ `.git` ของ Submodule ด้วย Symbolic Link (Symlink) ที่ชี้ไปยังโฟลเดอร์ซึ่งมีการตั้งค่าหรือ Hooks ที่เป็นอันตราย เมื่อ Git เรียกใช้งานโฟลเดอร์ดังกล่าวในภายหลัง ก็จะทำให้โค้ดของผู้โจมตีถูก Execute
Git แก้ไขช่องโหว่ด้านความปลอดภัย 6 รายการ
ประกาศด้านความปลอดภัยระบุว่า การ Exploit ช่องโหว่นี้ดูเหมือนจะต้องใช้ตัวเลือก `–recurse-submodules` โดย Patch ที่ออกมาจะแก้ไขปัญหาด้วยการปฏิเสธ Index Path ที่มีความยาวมากเกินไป ก่อนที่จะเกิดการตัดทอนค่าความยาว
นี่ไม่ใช่ครั้งแรกที่การ Clone Repository ก่อให้เกิดช่องโหว่ด้านความปลอดภัย ก่อนหน้านี้มีรายงานเกี่ยวกับช่องโหว่ CVE-2025-48384 ซึ่ง CISA ยืนยันว่าถูก Exploit แล้ว รวมถึงแคมเปญโจมตีของ Lazarus Group ที่ใช้เทคนิค Symlink ในลักษณะคล้ายกันเพื่อโจมตีนักพัฒนา กรณีเหล่านี้แสดงให้เห็นว่าผู้โจมตีสามารถนำช่องโหว่ในกระบวนการ Clone ไปใช้โจมตีจริงได้อย่างรวดเร็วเพียงใด
ช่องโหว่ CVE-2026-113408 ส่งผลกระทบต่อการ Clone Repository ที่ว่างเปล่าผ่าน Protocol v2 โดย Server ที่เป็นอันตรายสามารถประกาศ HEAD Pointer ที่มีส่วนประกอบของ Path Traversal อยู่ภายในชื่อได้
Git ไม่ได้ตรวจสอบค่าดังกล่าว ทำให้การอัปเดต Branch ในภายหลังอาจเขียนไฟล์ออกไปนอกโฟลเดอร์ Reference ที่กำหนดไว้ ปัจจุบัน Git ได้เพิ่มการตรวจสอบปลายทางของ Pointer รวมถึงชื่อ Reference อื่น ๆ ที่ได้รับผ่าน Protocol v2 แล้ว
ช่องโหว่ CVE-2026-114467 เป็นช่องโหว่ด้านหน่วยความจำ Stack โดยเมื่อ Git ลบ GPG signatures ออกจาก Message ระบบจะตั้งสมมติฐานว่ามี signatures ไม่เกิน 2 รายการ แต่ Tag ที่ถูกสร้างขึ้นเป็นพิเศษ และมี signatures มากกว่านั้น สามารถทำให้เกิด Buffer Overflow ใน Array ที่มีขนาดคงที่ได้ การ Merge Tag ดังกล่าวอาจทำให้หน่วยความจำเสียหาย หรือโปรแกรม Crash และบริการ Hosting ที่ทำการ Merge แทนผู้ใช้งานก็อาจได้รับผลกระทบเช่นกัน
ช่องโหว่ CVE-2026-114469 เกี่ยวข้องกับ Binary Patch โดย Git จะปฏิเสธ Patch ที่มีขนาดเกินประมาณ 1 GiB แต่ก่อนหน้านี้ระบบจะตรวจสอบเฉพาะขนาดข้อมูลที่ถูก compressed เท่านั้น ทำให้ Patch ที่เป็นอันตราย และมีขนาดเล็กสามารถขยายข้อมูลจนเกินขีดจำกัด ส่งผลให้เกิด Out-of-Bounds Read และทำให้ Git Crash ได้ ปัจจุบัน Git ได้เพิ่มการตรวจสอบขนาดข้อมูลก่อนการ compressed ตามที่ระบุไว้ด้วย
ช่องโหว่ CVE-2026-105437 เป็นช่องโหว่ Heap Corruption ในกระบวนการ Merge ขนาดใหญ่ โดยการคำนวณหน่วยความจำอาจเกิด Overflow เมื่อมี Conflict จำนวนมากร่วมกับการตั้งค่า `conflict-marker-size` ที่มีค่าสูง ส่งผลให้ Git จัดสรรพื้นที่หน่วยความจำน้อยกว่าที่จำเป็น และเขียนข้อมูลเกินขอบเขตที่จัดสรรไว้ ทั้งการ Merge ภายในเครื่อง และบริการที่ทำการ Merge เนื้อหาที่ไม่น่าเชื่อถืออาจได้รับผลกระทบจากช่องโหว่นี้
ช่องโหว่สุดท้ายคือ CVE-2026-114466 ซึ่งส่งผลกระทบต่อ `git fast-import` โดยฟีเจอร์ 3 รายการ ได้แก่ `rewrite-submodules-from`, `rewrite-submodules-to` และ `export-pack-edges` อาจถูกใช้เพื่ออ่าน หรือเขียนไฟล์ภายนอก Repository ได้ ปัจจุบันฟีเจอร์เหล่านี้ถูกบล็อกเมื่อประมวลผล Input ที่ไม่น่าเชื่อถือ เว้นแต่ผู้เรียกใช้งานจะกำหนดตัวเลือก `–allow-unsafe-features` โดยควรเปิดใช้งานตัวเลือกนี้เฉพาะกับ Data Stream ที่เชื่อถือได้เท่านั้น
GitHub ระบุว่า ได้แก้ไขช่องโหว่บน github.com และผลิตภัณฑ์ Enterprise Cloud เรียบร้อยแล้ว ส่วนผู้ดูแลระบบ GitHub Enterprise Server ควรติดตั้งเวอร์ชัน 3.19.15, 3.20.11, 3.21.9 หรือ 3.22.4 ขณะที่ GitHub Desktop, แอป GitHub Copilot, Codespaces และ Actions จะได้รับการอัปเดต Git Build ที่มี Patch แก้ไขช่องโหว่เหล่านี้เช่นกัน
ทีมงานควรตรวจสอบ Build Server และเครื่องมือ Automation ด้วย เนื่องจากระบบเหล่านี้มักทำการ Clone Repository โดยไม่มีผู้ดูแลคอยตรวจสอบ นอกจากนี้ ความเสี่ยงที่เกี่ยวข้องยังเพิ่มสูงขึ้น ดังที่เห็นจากช่องโหว่ GitSpawn ซึ่งทำให้ Repository ที่ถูกฝังโค้ดอันตรายสามารถรันโค้ดผ่าน AI Coding Agent ได้
หากยังไม่สามารถอัปเดตได้ทันที ควร Clone Repository จาก Server ที่เชื่อถือได้เท่านั้น และหลีกเลี่ยงการ Clone แบบ Recursive จาก Repository ที่ไม่รู้จัก รวมถึงหลีกเลี่ยงการ Merge Tag หรือเนื้อหาที่ไม่น่าเชื่อถือ และไม่ประมวลผล Binary Patch หรือ Fast-import Stream จากภายนอก มาตรการเหล่านี้สามารถช่วยลดความเสี่ยงได้ แต่ไม่สามารถใช้ทดแทนการติดตั้ง Patch ได้
ที่มา : cybersecuritynews

You must be logged in to post a comment.