Microsoft ปล่อยอัปเดตฉุกเฉินแก้ช่องโหว่ ASP.NET บน macOS และ Linux
ยึดสิทธิ์ระบบได้แม้จะอัปเดตไปแล้ว

Microsoft ได้ประกาศปล่อยแพตช์ฉุกเฉินสำหรับ ASP.NET Core เพื่อแก้ไขช่องโหว่ความรุนแรงสูงที่เปิดโอกาสให้ผู้ไม่หวังดีซึ่งไม่จำเป็นต้องผ่านการยืนยันตัวตน สามารถเข้ามายึดสิทธิ์ระดับ SYSTEM บนอุปกรณ์ที่ใช้งานเฟรมเวิร์กนี้บนระบบปฏิบัติการ Linux หรือ macOS ได้ ช่องโหว่ดังกล่าวถูกระบุรหัสคือ CVE-2026-40372 ซึ่งส่งผลกระทบต่อ NuGet แพ็กเกจที่ชื่อว่า Microsoft.AspNetCore.DataProtection ตั้งแต่เวอร์ชัน 10.0.0 ถึง 10.0.6 โดยปัญหาหลักเกิดจากการตรวจสอบลายเซ็นเข้ารหัสที่ผิดพลาด
ต้นตอของปัญหาถูกค้นพบเมื่อสัปดาห์ที่แล้ว หลังจาก Microsoft พยายามอัปเดตแพ็กเกจแล้วพบว่าระบบถอดรหัสล้มเหลว จนตรวจเจอข้อผิดพลาดในส่วนการคำนวณ HMAC validation tag ที่ทำงานผิดตำแหน่งและดันละทิ้งค่าแฮกที่คำนวณได้ไปเสียเฉยๆ ส่งผลให้แฮกเกอร์สามารถปลอมแปลงข้อมูลการยืนยันตัวตนเพื่อยกระดับสิทธิ์ตัวเองได้ โดยช่องโหว่นี้ได้รับคะแนนความรุนแรงสูงถึง 9.1 จากเต็ม 10 คะแนน ซึ่งถือว่าเป็นระดับวิกฤตที่ต้องรีบจัดการโดยเร็วที่สุด
สิ่งที่น่ากังวลเป็นพิเศษคือ แม้ผู้ใช้งานจะทำการอัปเดตแพตช์เป็นเวอร์ชัน 10.0.7 เรียบร้อยแล้ว แต่อุปกรณ์ก็อาจจะยังตกอยู่ในอันตรายได้ หากแฮกเกอร์เคยแฝงตัวเข้ามาสร้างข้อมูลการยืนยันตัวตนเอาไว้ในช่วงก่อนหน้า เนื่องจากโทเคนหรือกุญแจสำคัญที่แฮกเกอร์สร้างขึ้นจะยังคงมีผลใช้งานได้ตามปกติ Microsoft จึงย้ำเตือนว่าการอัปเดตซอฟต์แวร์เป็นเพียงก้าวแรก แต่ต้องมีการล้างข้อมูลเดิมทิ้งเพื่อความปลอดภัยที่แท้จริง

ทาง Microsoft ให้คำแนะนำว่า หากแอปพลิเคชันมีการใช้งาน ASP.NET Core Data Protection และเปิดให้เข้าถึงผ่านอินเทอร์เน็ตในช่วงที่มีช่องโหว่ ผู้ดูแลระบบควรทำการหมุนเวียนกุญแจ (Key Rotation) ใน DataProtection key ring ใหม่ทันที เพื่อยกเลิกสิทธิ์เดิมที่อาจถูกปลอมแปลงไว้ นอกจากนี้ยังต้องตรวจสอบวัตถุที่มีอายุการใช้งานยาวนานในระดับแอปพลิเคชัน เช่น ลิงก์รีเซ็ตรหัสผ่านหรือ API key ที่อาจถูกสร้างขึ้นโดยมิชอบในช่วงเวลานั้นด้วย
สำหรับผู้ที่ได้รับผลกระทบโดยตรงคือกลุ่มที่ใช้ ASP.NET Core บน macOS, Linux หรือระบบปฏิบัติการอื่นที่ไม่ใช่ Windows โดยเฉพาะคนที่ใช้งาน .NET 10 ซึ่งระบบมีการเปิดฟีเจอร์ PrunePackageReference ไว้เป็นค่าเริ่มต้น ส่วนแอปพลิเคชันบน Windows นั้นรอดพ้นจากปัญหานี้ไปได้ เนื่องจากระบบการเข้ารหัสตามค่าเริ่มต้นของ Windows ไม่ได้ใช้ตัวประมวลผลที่มีข้อผิดพลาดดังกล่าวนั่นเอง
ในยุคที่การพัฒนาแอปพลิเคชันแบบ Cross-platform เป็นที่นิยม การอัปเดตความปลอดภัยในเฟรมเวิร์กอย่าง ASP.NET Core จึงเป็นเรื่องสำคัญอย่างยิ่ง Microsoft ทิ้งท้ายให้ผู้พัฒนาเร่งอัปเดตแพ็กเกจ Microsoft.AspNetCore.DataProtection เป็นเวอร์ชัน 10.0.7 โดยด่วนที่สุด เพื่ออุดช่องโหว่และแก้ไขปัญหาการถอดรหัสที่ผิดพลาดก่อนที่จะเกิดความเสียหายในวงกว้างไปมากกว่านี้ครับ







