ทีมพัฒนาภาษาโปรแกรม Go ได้ออกแพตช์ฉุกเฉิน Go 1.25.6 และ 1.24.12 เพื่อแก้ไขช่องโหว่ด้านความปลอดภัยร้ายแรง 6 จุด การอัปเดตเหล่านี้แก้ไขช่องทางโจมตีแบบ Denial-of-Service (DoS), ความเสี่ยงในการรันโค้ดโดยพลการ (Arbitrary Code Execution) และการจัดการ TLS ที่ผิดพลาด ซึ่งอาจทำให้ผู้พัฒนาตกเป็นเป้าของการโจมตีจากระยะไกลได้ แพตช์ดังกล่าวเน้นย้ำถึงความจำเป็นในการอัปเกรดทันทีสำหรับโครงการที่ใช้ไลบรารีมาตรฐานของ Go โดยเฉพาะในเว็บเซิร์ฟเวอร์ เครื่องมือเข้ารหัส และระบบ Build ต่างๆ เนื่องจากผู้โจมตีสามารถใช้ประโยชน์จากช่องโหว่เหล่านี้ในสภาพแวดล้อมที่ยังไม่ได้แพตช์ได้
Severity: วิกฤต
System Impact:
- ภาษาโปรแกรม Go (เวอร์ชัน 1.25.x และ 1.24.x ก่อนการแก้ไข)
- ไลบรารีมาตรฐานของ Go (Go’s standard library)
- เว็บเซิร์ฟเวอร์ที่ใช้ Go
- เครื่องมือเข้ารหัสที่ใช้ Go (Crypto tools)
- ระบบ Build ที่ใช้ Go
- แพ็กเกจ `net/http` (สำหรับ DoS จากฟอร์ม URL-encoded)
- แพ็กเกจ `archive/zip` (สำหรับ DoS จากไฟล์ ZIP ที่เป็นอันตราย)
- คอมมานด์ `cmd/go` (สำหรับการรันโค้ดโดยพลการผ่าน CgoPkgConfig และการจัดการ VCS)
- แพ็กเกจ `crypto/tls` (สำหรับการรั่วไหลของข้อมูลและปัญหาการตรวจสอบสิทธิ์)
Technical Attack Steps:
- Memory Exhaustion (CVE-2025-61726): ผู้โจมตีสามารถสร้างฟอร์ม URL-encoded ที่มีคู่คีย์-ค่าจำนวนมากเกินไป เพื่อกระตุ้นให้เกิดการจัดสรรหน่วยความจำขนาดใหญ่ ทำให้เซิร์ฟเวอร์ทำงานล้มเหลว
- DoS (CVE-2025-61728): ไฟล์ ZIP ที่เป็นอันตรายซึ่งสร้างขึ้นมาเป็นพิเศษสามารถทำให้เกิดการประมวลผลการจัดทำดัชนีชื่อไฟล์แบบ Super-linear ใน `archive/zip` ซึ่งนำไปสู่การโจมตีแบบ Denial-of-Service
- Arbitrary Code Execution (CVE-2025-61731): ผู้โจมตีสามารถบายพาสการตรวจสอบแฟล็กใน `CgoPkgConfig` ของ `cmd/go` เพื่อสั่งให้ `pkg-config` ทำงานด้วยอินพุตที่ไม่ปลอดภัย ซึ่งส่งผลให้เกิดการรันโค้ดโดยพลการ
- Code Execution/File Writes (CVE-2025-68119): การจัดการ VCS (Git/Mercurial) ของ `cmd/go` ผิดพลาด ทำให้สามารถใช้เวอร์ชันโมดูลหรือโดเมนที่เป็นอันตราย เพื่อรันโค้ดหรือเขียนทับไฟล์ ผ่านพาธ `go get` ที่กำหนดเอง (ยกเว้น `@latest`)
- Session Key Leakage (CVE-2025-68121): ฟังก์ชัน `Config.Clone` ใน `crypto/tls` รั่วไหลคีย์ Session Ticket ที่สร้างขึ้นโดยอัตโนมัติ ทำให้ผู้โจมตีสามารถเริ่มต้นเซสชันใหม่โดยไม่ได้รับอนุญาต
- Certificate Chain Expiration Bypass (CVE-2025-68121): ระบบตรวจสอบเซสชัน TLS ไม่สนใจการหมดอายุของห่วงโซ่ใบรับรองทั้งหมด
- Information Disclosure (CVE-2025-61730): ข้อความ Handshake ของ TLS ถูกประมวลผลที่ระดับการเข้ารหัสที่ไม่ถูกต้อง ทำให้เสี่ยงต่อการรั่วไหลของข้อมูลจากการแทรกแพ็กเก็ต
Recommendations:
Short Term:
- อัปเกรด Go เป็นเวอร์ชัน 1.25.6 หรือ 1.24.12 ทันที
- สร้างไบนารีใหม่ (rebuild binaries) โดยใช้คำสั่ง `git checkout go1.25.6` (หรือ 1.24.12)
- สแกน Dependency ของโครงการเพื่อหาโมดูลที่มีช่องโหว่
Long Term:
- รักษามาตรการด้านสุขอนามัยของ Supply Chain ของซอฟต์แวร์อย่างต่อเนื่อง
- ติดตามข่าวสารและแพตช์ความปลอดภัยจากทีมพัฒนาภาษา Go และไลบรารีที่ใช้งานอยู่เสมอ
Source: https://cybersecuritynews.com/go-1-25-6-and-1-24-12-vulnerabilities/
Share this content: