メインコンテンツへスキップ
記事一覧へ戻る

Node.js ออกแพตช์ความปลอดภัยสาย 22, 24, 26 รวมช่องโหว่ Brotli ระดับ High

Node.js ออก 22.23.4, 24.22.1 และ 26.12.1 เพื่อแก้ช่องโหว่หลายรายการ พร้อมแนวทางตรวจ runtime จริงใน container และ production

Node.js ออกแพตช์ความปลอดภัยสาย 22, 24, 26 รวมช่องโหว่ Brotli ระดับ High

โครงการ Node.js เผยแพร่ security releases เมื่อ 21 ตุลาคม 2026 สำหรับสาย 22.x, 24.x และ 26.x โดยรุ่นที่ประกาศคือ 22.23.4, 24.22.1 และ 26.12.1 รายการแก้ไขมีทั้งปัญหาใน Node.js เองและ dependency เช่น c-ares, CA certificate, OpenSSL, SQLite และ Undici หนึ่งในปัญหาระดับ high คือการเขียนหน่วยความจำนอกขอบเขตของ Brotli decoder ซึ่งประกาศระบุว่าอาจนำไปสู่ remote code execution ทีมที่รันบริการ Node จึงควรตรวจเวอร์ชันจริงของ runtime ใน production ไม่ใช่ดูเพียงเวอร์ชันในเครื่องนักพัฒนา

ช่วงเวอร์ชันที่ได้รับผลกระทบ

ประกาศทางการระบุว่า CVE-2026-111497 ใน Brotli decoder กระทบทั้ง 22.x, 24.x และ 26.x ข้อบกพร่องเกี่ยวกับการตัดชื่อใน dns.resolve เมื่อมี NUL และปัญหา TLS hostname บางรูปแบบก็กระทบหลายสาย ส่วนบางรายการจำกัดอยู่ที่ 26.x เช่น ZipFile คืน prefix byte จากข้อมูลที่ผู้โจมตีควบคุมหลังตรวจ ZIP header ไม่ผ่าน หรือ Permission Model ให้สิทธิ์ filesystem กว้างเกินจาก wildcard radix lookup การอ่านเลข CVE อย่างเดียวโดยไม่ดูสายเวอร์ชันอาจทำให้ทีมพลาดงานที่ต้องแก้จริง

Node.js จัดความรุนแรงสูงสุดของชุดนี้เป็น high ไม่ได้หมายความว่าทุกแอปเปิดรับการโจมตีได้เท่ากัน เส้นทางที่รับข้อมูลบีบอัดจากภายนอก การตรวจ certificate ไปยังบริการอื่น และการใช้ Permission Model มีรูปแบบความเสี่ยงต่างกัน ทีมควรสำรวจว่า endpoint ใดรับข้อมูลที่ผู้ใช้ควบคุม และไลบรารีหรือ gateway มีการถอดรหัสก่อนถึง Node หรือไม่ จากนั้นจัดลำดับการอัปเดตตามการเปิดรับจริงและความสำคัญของบริการ

ตรวจสิ่งที่รันอยู่ ไม่ใช่สิ่งที่ตั้งใจจะรัน

ใน container ให้ตรวจ base image และผล node --version ภายใน image ที่ deploy แล้ว เพราะ package.json ระบุ engines ไม่ได้บังคับว่า production เปลี่ยนตาม เมื่ออัปเดต image ให้สร้างใหม่โดยไม่พึ่ง cache ของชั้นที่มี runtime เก่า ตรวจ digest ของ image และ rollout ไปยัง staging ก่อน สำหรับ VM หรือ PaaS ให้ตรวจ runtime ของทุก worker และ job รวมถึง cron, queue worker และ serverless function ที่มี deployment แยกจาก API หลัก

หลังอัปเดตควรทดสอบอย่างน้อยการเริ่มโปรเซส TLS outbound request, DNS lookup, การถอดรหัส compressed response และงานที่ใช้ native module เพราะชุด security release มีการเปลี่ยน dependency หลายตัว ตรวจ error rate, CPU, memory และ log หลังทยอย rollout หากพบปัญหา ให้ย้อนเวอร์ชันแอปอย่างมีขั้นตอน แต่ต้องไม่ปล่อย runtime ที่มีช่องโหว่กลับเข้าผลิตโดยไม่มีแผนชดเชยและกำหนดเวลาปิดงาน

เรื่องที่ไม่ควรสรุปเกินประกาศ

คำว่า remote code execution ในคำอธิบาย Brotli ไม่ได้ยืนยันว่ามี exploit ใช้งานแพร่หลายหรือทุกเว็บเปิดเส้นทางโจมตีได้ ข่าวนี้จึงไม่ควรใส่ตัวอย่าง payload ที่ยังไม่ตรวจหรือกล่าวว่าระบบใดถูกเจาะแล้ว สิ่งที่ยืนยันได้คือโครงการออกแพตช์และเผยรายการเวอร์ชันชัดเจน ระบบที่ยังใช้ Node สายหมดอายุควรวางแผนย้ายไปสายที่รองรับ เพราะโครงการเตือนว่าสาย EOL ไม่ได้รับประกันแพตช์แบบเดียวกัน

สำหรับทีมปฏิบัติการ ให้บันทึกเวอร์ชันก่อนและหลัง rollout วันอัปเดต ผู้รับผิดชอบ และรายการบริการที่ยังค้างไว้ การสแกน dependency ในแอปไม่อาจแทนการตรวจ binary ของ Node เองได้ การแก้ครั้งนี้จบเมื่อ workload ทุกชุดที่ใช้งานจริงอยู่บนรุ่นที่แก้แล้วและผ่านการทดสอบการทำงานสำคัญ

แหล่งข่าว: ประกาศโครงการ Node.js วันที่ 21 ตุลาคม 2026