AWS Nitro Enclaves SDK for C v0.4.6 แก้ CVE-2026-119116 และ CVE-2026-119148
AWS ออก Nitro Enclaves SDK for C v0.4.6 แก้ use-after-free ใน kmstool-enclave และการตรวจ region ก่อนสร้างปลายทาง KMS ตรวจเงื่อนไขผลกระทบและการ rebuild image
AWS Nitro Enclaves SDK for C ออก v0.4.6 แก้สองช่องโหว่ใน kmstool และการสร้างชื่อปลายทาง KMS
AWS เผยแพร่ AWS Nitro Enclaves SDK for C เวอร์ชัน 0.4.6 เมื่อวันที่ 30 ตุลาคม 2026 เพื่อแก้ CVE-2026-119116 และ CVE-2026-119148 ซึ่งมีเงื่อนไขผลกระทบต่างกัน รายการแรกอยู่ในตัวอย่างโปรแกรม kmstool-enclave และอาจทำให้หน่วยความจำภายใน enclave เสียหายผ่านข้อความควบคุมจาก EC2 instance แม่ ส่วนรายการที่สองอยู่ในไลบรารีที่สร้างชื่อเซิร์ฟเวอร์ KMS จากค่า region โดยไม่ตรวจค่าอย่างรัดกุม และอาจทำให้ enclave เชื่อมต่อกับปลายทางที่ถูกสวมรอยได้
ผู้ดูแลควรแยกความเสี่ยงของสองรายการนี้ให้ชัดเจน: CVE-2026-119116 ไม่ได้กระทบตัวไลบรารี aws-nitro-enclaves-sdk-c โดยลำพัง แต่กระทบ enclave image ที่รวม kmstool-enclave หรือนำโค้ดตัวอย่างนี้ไปดัดแปลง ส่วน CVE-2026-119148 กระทบแอป enclave ที่ส่งค่า region จากภายนอกโดยไม่ตรวจสอบเข้าสู่ไลบรารี AWS ระบุว่าทั้งสองรายการไม่มีการเข้าถึงข้าม EC2 instance ข้ามบัญชี หรือข้าม tenant ตามขอบเขตที่ประกาศ
วันเปิดเผย วันเผยแพร่ระเบียน และวันออกแพตช์
GitHub release ทางการของโครงการระบุว่า v0.4.6 เผยแพร่วันที่ 30 ตุลาคม 2026 เวลา 16:00:50 UTC พร้อมรายการแก้ไขสอง CVE นี้โดยตรง จึงเป็นหลักฐานการเปิดเผยต่อสาธารณะครั้งแรกและวันที่แพตช์พร้อมใช้งานจากผู้พัฒนาที่ตรวจยืนยันได้ ต่อมา GitHub Security Advisory ของ CVE-2026-119148 เผยแพร่เวลา 16:13:01 UTC และของ CVE-2026-119116 เวลา 16:15:53 UTC ในวันเดียวกัน AWS ยังลงประกาศ Security Bulletin หมายเลข 2026-157-AWS ลงวันที่ 30 ตุลาคม 2026
ระเบียน CVE Program เผยแพร่ครั้งแรกวันที่ 30 ตุลาคม 2026 เวลา 16:10:39 UTC สำหรับ CVE-2026-119116 และ 16:12:06 UTC สำหรับ CVE-2026-119148 ทั้งการเปิดเผยครั้งแรกและการเผยแพร่ระเบียน CVE จึงอยู่ภายใน 48 ชั่วโมงก่อนรอบตรวจนี้ วันจองเลข CVE หรือวันเริ่มพัฒนาแพตช์ไม่ใช่วันเผยแพร่ข่าวช่องโหว่ต่อสาธารณะ
CVE-2026-119116: ข้อความ SetClient ทำให้หน่วยความจำใน enclave เสียหาย
Advisory ของ AWS อธิบายว่าแอปที่ทำงานบน EC2 instance แม่สามารถส่งข้อความควบคุม SetClient ที่สร้างขึ้นเป็นพิเศษไปยัง kmstool-enclave ผ่าน vsock หากตามด้วยลำดับข้อความ Decrypt ที่เหมาะสม อาจกระตุ้น use-after-free และ double-free ภายใน enclave ได้ ผลคือ heap memory อาจเสียหาย และอาจนำไปสู่การรันโค้ดภายใน enclave ตามเงื่อนไขที่ advisory ระบุ
เงื่อนไขสำคัญคือผู้โจมตีต้องมีความสามารถรันแอปบน parent instance และเป้าหมายต้องใช้ enclave image ที่รวมตัวอย่าง kmstool-enclave หรือโค้ดที่สืบทอดมาจากมัน จึงไม่ควรตีความว่า enclave ทุกแห่งที่ใช้ไลบรารี AWS Nitro Enclaves SDK for C ติดช่องโหว่นี้ AWS ระบุชัดว่าไลบรารีแกนหลักไม่ได้รับผลจาก CVE-2026-119116 และไม่มีทางเข้าถึงข้าม instance บัญชี หรือ tenant ผ่านช่องนี้ตามที่ประกาศ
CVE-2026-119148: ค่า region ทำให้ชื่อเซิร์ฟเวอร์ KMS ผิดไป
อีกช่องโหว่อยู่ในส่วนที่สร้างชื่อเซิร์ฟเวอร์ TLS สำหรับการติดต่อ AWS KMS จากค่า region ที่ผู้เรียกส่งมา หากแอปบน parent instance สามารถส่งค่า region ที่ยาวและถูกจัดรูปแบบมาเป็นพิเศษ ส่วนต่อท้ายโดเมน KMS อาจถูกตัดทิ้ง ทำให้ enclave ตีความความถูกต้องของใบรับรอง TLS สำหรับปลายทาง KMS ผิดพลาด ผู้โจมตีอาจสวมรอยปลายทาง KMS และส่งคำตอบปลอมกลับเข้าสู่คำขอของ enclave ได้
AWS เน้นว่า คำตอบจริงจาก KMS ยังถูกเข้ารหัสแยกต่างหากและไม่ได้อยู่ในความเสี่ยงจากช่องนี้ ขอบเขตที่กระทบคือแอป enclave ที่ส่งค่า region จากแหล่งภายนอกโดยไม่ตรวจสอบเข้าไลบรารี ไม่ใช่ทุกแอปที่ใช้ SDK โดยอัตโนมัติ การประเมินควรเริ่มจากจุดที่ parent instance กำหนดค่า region ให้ enclave รวมถึงโค้ดที่ประกอบ endpoint host name และขั้นตอนยืนยัน TLS ของแอปจริง
รุ่นที่ได้รับผลกระทบและวิธีแก้
Advisory ทั้งสองรายการระบุว่า เวอร์ชัน 0.4.5 และเก่ากว่า ได้รับผลในเงื่อนไขที่อธิบายข้างต้น และ v0.4.6 เป็นเวอร์ชันที่แก้แล้ว ผู้พัฒนาเผยแพร่ release notes ของ v0.4.6 พร้อมระบุการแก้ use-after-free ในเส้นทาง SetClient และการตรวจค่า region ก่อนสร้างชื่อ endpoint ดังนั้นองค์กรควรอัปเกรด SDK หรือโค้ดตัวอย่างที่ใช้งานไปยัง v0.4.6 และ สร้าง enclave image ใหม่ เพื่อให้ไบนารีที่รันอยู่มีแพตช์ ไม่ใช่เพียงเปลี่ยน dependency ในซอร์สโดยไม่ rebuild
หากมี fork ของ SDK หรือคัดลอกตัวอย่าง kmstool-enclave ไปใช้เอง ต้องตรวจว่าได้รวมการแก้ไขจาก v0.4.6 ในโค้ดที่ build จริงแล้ว AWS ระบุว่าไม่มี workaround สำหรับสองช่องโหว่นี้และให้ใช้อัปเกรดเป็นวิธีแก้ ผู้ดูแลควรทดสอบการสื่อสาร parent-to-enclave ผ่าน vsock และการติดต่อ KMS หลัง rebuild พร้อมบันทึก digest ของ enclave image ที่ deploy เพื่อยืนยันว่า runtime เปลี่ยนเป็นภาพที่แก้ไขแล้ว
ในขั้นตอนจัดลำดับความสำคัญ ให้ตรวจว่า parent instance มีแอปใดส่งข้อความควบคุมเข้าหา kmstool-enclave ได้ และ enclave ใช้ค่า region จากแหล่งใด หากพบการใช้งานตรงกับเงื่อนไข ให้เร่ง rebuild และ redeploy ส่วนระบบที่ใช้ SDK แต่ไม่ได้รวม kmstool ก็ยังต้องตรวจ CVE-2026-119148 แยกต่างหาก ข่าวนี้อ้างอิงการประเมินผลกระทบของ AWS จากแหล่งต้นทาง ไม่ได้เป็นข้อยืนยันว่ามีการโจมตีจริงเกิดขึ้นในทุกสภาพแวดล้อม