โครงการ Node.js ออกเวอร์ชันแก้ช่องโหว่ในตัวถอดรหัส Brotli รหัส CVE-2026-111497 ซึ่งอาจนำไปสู่การรันโค้ดจากระยะไกล โดยผู้ใช้รุ่น 22, 24 และ 26 ควรอัปเดตเป็นเวอร์ชัน 22.23.4, 24.22.1 และ 26.12.1 ขึ้นไปตามลำดับ
ในประกาศความปลอดภัยที่เผยแพร่เมื่อวันที่ 21 โครงการ Node.js ระบุว่าไค ทรานและซิลวี เมเยอร์ นักวิจัยจาก OpenAI Codex Security เป็นผู้ค้นพบช่องโหว่ดังกล่าว ช่องโหว่นี้อยู่ในตัวถอดรหัส Brotli ที่รวมมากับ Node.js การประมวลผลข้อมูลบีบอัดที่ถูกสร้างขึ้นเพื่อโจมตีอาจทำให้เกิดการปฏิเสธการให้บริการ หน่วยความจำเสียหาย หรือการรันโค้ดจากระยะไกล
Brotli เป็นเทคโนโลยีที่ใช้บีบอัดข้อมูลเพื่อส่งต่อ แม้จะใช้ Node.js รุ่นที่มีช่องโหว่ แต่หากบริการไม่ถอดรหัสข้อมูล Brotli ที่ได้รับจากภายนอก ข้อมูลโจมตีก็จะไม่ไปถึงตัวถอดรหัส บริการที่อ่านการตอบกลับแบบบีบอัดจากเซิร์ฟเวอร์ภายนอก หรือใช้มิดเดิลแวร์ที่ถอดรหัสเนื้อหาคำขอขาเข้า ควรตรวจสอบเส้นทางการประมวลผลเหล่านี้
Imperva บริษัทด้านความปลอดภัย ระบุเมื่อวันที่ 22 ว่าได้ยืนยันการรันโค้ดในการทดลองจำลอง โดยส่งข้อมูล Brotli ที่ดัดแปลงไปยังอิมเมจ Linux arm64 อย่างเป็นทางการของ Node.js 24.22.0 ขณะที่เวอร์ชันแก้ไข 24.22.1 ปฏิเสธข้อมูลชุดเดียวกัน การทดลองครอบคลุมทั้งการอ่านการตอบกลับแบบบีบอัดผ่าน fetch() ที่มาพร้อม Node.js และการถอดรหัสเนื้อหาคำขอโดย Express 5 กับ body-parser 2
การทดลองของ Imperva ทำในสภาพแวดล้อมและการตั้งค่าแอปพลิเคชันเฉพาะ และต้องลองหลายครั้งจึงสำเร็จ เซิร์ฟเวอร์ Node.js ทั่วไปไม่ได้ถอดรหัสเนื้อหา Brotli โดยอัตโนมัติเพียงเพราะได้รับคำขอ Imperva อธิบายว่าช่องโหว่อยู่ในตัวถอดรหัสของ Node.js ซึ่ง Express หรือ body-parser อาจเรียกใช้งาน ไม่ได้อยู่ในตัว Express หรือ body-parser เอง
เวอร์ชันแก้ไขที่โครงการ Node.js ระบุคือ 22.23.4, 24.22.1 และ 26.12.1 คำแนะนำด้านความปลอดภัยบน GitHub ยังระบุว่าแพ็กเกจ Python ชื่อ Brotli ตั้งแต่เวอร์ชัน 1.0.3 แต่ต่ำกว่า 1.2.1 และ brotlicffi ตั้งแต่เวอร์ชัน 1.0.3 แต่ต่ำกว่า 1.2.1.0 อยู่ในขอบเขตที่ได้รับผลกระทบ โดยเวอร์ชันแก้ไขของแต่ละแพ็กเกจคือ 1.2.1 และ 1.2.1.0 ตามลำดับ
การเผยแพร่แพตช์กับการนำไปใช้จริงในบริการเป็นคนละขั้นตอน ผู้ดูแลระบบควรตรวจสอบเวอร์ชัน Node.js และ Brotli ทั้งในไลบรารีที่ติดตั้งบนระบบปฏิบัติการ แอปพลิเคชัน และอิมเมจคอนเทนเนอร์ในสภาพแวดล้อมที่นำไปใช้งาน
ความคิดเห็น 0