ช่องโหว่ Brotli ระดับวิกฤต กระทบซอฟต์แวร์หลายระบบ เปิดทางรันโค้ดจากระยะไกล
มีการรายงานพบช่องโหว่ร้ายแรงใน Brotli ซึ่งเป็นไลบรารีบีบอัดข้อมูลโอเพนซอร์สที่พัฒนาโดย Google ซึ่งถูกนำไปใช้ในซอฟต์แวร์และแพลตฟอร์มจำนวนมาก โดยช่องโหว่ CVE-2026-111497 อาจเปิดทางให้ผู้โจมตีทำให้หน่วยความจำเสียหาย เปิดเผยข้อมูลสำคัญ หรือรันโค้ดจากระยะไกลได้ หากระบบเป้าหมายถอดรหัสข้อมูล Brotli ที่ผู้โจมตีสร้างขึ้นเป็นพิเศษ
ช่องโหว่นี้เริ่มเป็นที่รู้จักจากรายงานด้านความปลอดภัยของ Node.js ภายใต้ชื่อ Node2Shell ก่อนที่นักวิจัยจะพบว่าปัญหาไม่ได้จำกัดอยู่เฉพาะ Node.js แต่ยังอาจกระทบซอฟต์แวร์อื่นที่ใช้ตัวถอดรหัส Brotli เวอร์ชันที่มีช่องโหว่ จึงมีการเรียกชื่อเพิ่มเติมว่า HTTP2Shell และ Broccoli2Shell ตามขอบเขตผลกระทบที่กว้างขึ้น
Google ประเมินความรุนแรงไว้ที่ 9.2 จาก 10 ตามเกณฑ์ CVSS 4.0 ระดับ Critical ขณะที่ผู้พัฒนาและผู้ดูแลซอฟต์แวร์หลายโครงการทยอยออกอัปเดตเพื่อแก้ไขปัญหาแล้ว
เสี่ยงทำระบบล่มจนถึงรันโค้ด
CVE-2026-111497 เป็นช่องโหว่ประเภท Out-of-bounds Write ซึ่งเกิดขึ้นเมื่อตัวถอดรหัสเขียนข้อมูลเกินขอบเขตหน่วยความจำที่จัดสรรไว้ โดยปัญหาอยู่ในกระบวนการจัดการข้อมูล Brotli ที่ถูกสร้างขึ้นเป็นพิเศษ ทำให้ตัวถอดรหัสเข้าใจข้อมูลที่ผิดรูปแบบว่าเป็นข้อมูลที่ยังต้องรับเพิ่มเติม และเขียนข้อมูลต่อไปเกินขอบเขตของบัฟเฟอร์
ผลกระทบที่อาจเกิดขึ้นมีตั้งแต่ทำให้โปรแกรมหยุดทำงาน เปิดเผยข้อมูลบางส่วนที่อยู่ในหน่วยความจำ ไปจนถึงเปิดช่องให้ผู้โจมตีรันโค้ดด้วยสิทธิ์ของโปรเซสที่ได้รับผลกระทบ ทั้งนี้ ความสำเร็จในการรันโค้ดขึ้นอยู่กับสภาพแวดล้อมและมาตรการป้องกันของแต่ละระบบ ไม่ได้หมายความว่าทุกระบบที่มีช่องโหว่จะถูกยึดได้ทันที
เส้นทางการโจมตีเกิดขึ้นได้หลายรูปแบบ เช่น ส่งข้อมูล Brotli ที่สร้างขึ้นเป็นพิเศษไปยังเซิร์ฟเวอร์ที่ถอดรหัสข้อมูลขาเข้า หรือทำให้แอปพลิเคชันที่ติดต่อกับเซิร์ฟเวอร์ภายนอกได้รับข้อมูลตอบกลับที่เป็นอันตรายแล้วนำมาถอดรหัสโดยอัตโนมัติ
แม้ชื่อ HTTP2Shell จะชวนให้เข้าใจว่าเกี่ยวข้องกับ HTTP/2 โดยเฉพาะ แต่ช่องโหว่นี้ไม่ได้จำกัดอยู่กับ HTTP/2 เพราะต้นตออยู่ที่ตัวถอดรหัส Brotli ซึ่งสามารถถูกเรียกใช้งานผ่านระบบรับส่งข้อมูลหลายรูปแบบ
กระทบหลายแพลตฟอร์ม รวมถึง PHP, Node.js และ .NET
นอกจาก Node.js แล้ว ยังมีการแจ้งเตือนและออกแพตช์สำหรับซอฟต์แวร์และไลบรารีอื่นที่ใช้ Brotli เวอร์ชันที่ได้รับผลกระทบ เช่น Bun, .NET, Python และส่วนประกอบด้านเครือข่ายอย่าง Envoy และ Istio ขอบเขตผลกระทบที่แท้จริงของแต่ละผลิตภัณฑ์ขึ้นอยู่กับเวอร์ชันและวิธีนำไลบรารีไปใช้งาน
สำหรับ PHP ทีมพัฒนาได้ออกแพ็กเกจ Windows ที่ปรับปรุงใหม่เมื่อวันที่ 26 ตุลาคม 2026 ครอบคลุม PHP เวอร์ชัน 8.2 ถึง 8.5 โดยเปลี่ยนมาใช้ Brotli 1.2.1 ซึ่งแก้ไขช่องโหว่แล้ว การเข้าถึงช่องโหว่ใน PHP เกี่ยวข้องกับส่วนขยาย cURL เมื่อเปิดใช้การถอดรหัส HTTP Response อัตโนมัติ ซึ่งอาจเกิดขึ้นจากการตั้งค่าของแอปพลิเคชันหรือไลบรารี HTTP ที่ใช้งานอยู่
ส่วนในระบบ Python แพ็กเกจ Brotli และ brotlicffi ก็มีเวอร์ชันที่แก้ไขแล้วเช่นกัน ขณะที่ Google Brotli ระบุเวอร์ชันแก้ไขเป็น 1.0.10, 1.1.1 และ 1.2.1 ตามสายเวอร์ชันที่เกี่ยวข้อง
รายงานจาก Imperva ระบุว่าสามารถสาธิตการใช้ช่องโหว่เพื่อรันโค้ดบนสภาพแวดล้อม Node.js ที่ได้รับผลกระทบได้ อย่างไรก็ตาม ข้อมูลที่เผยแพร่ ณ เวลาที่รายงานยังไม่ยืนยันว่ามีการนำช่องโหว่นี้ไปโจมตีจริงในวงกว้าง
เร่งอัปเดตและตรวจสอบไลบรารีที่ฝังมากับซอฟต์แวร์
ผู้ดูแลระบบควรตรวจสอบเวอร์ชันของ Node.js, PHP, Python, .NET และส่วนประกอบอื่นที่ใช้งานอยู่ พร้อมติดตั้งแพตช์จากผู้พัฒนาโดยเร็ว โดยต้องตรวจสอบไลบรารีที่ถูกรวมมากับแอปพลิเคชันด้วย เพราะการอัปเดต Brotli ที่ติดตั้งแยกไว้ในระบบอาจไม่ช่วยแก้ปัญหา หากซอฟต์แวร์ยังใช้สำเนาเวอร์ชันเก่าที่ฝังมาในตัวเอง
หลังติดตั้งแพตช์ ควรรีสตาร์ตโปรเซสหรือบริการที่เกี่ยวข้อง และสร้างอิมเมจคอนเทนเนอร์ใหม่ก่อนนำกลับไปใช้งาน เพื่อให้แน่ใจว่าระบบกำลังใช้ส่วนประกอบเวอร์ชันที่แก้ไขแล้วจริง
หากยังไม่สามารถอัปเดตได้ทันที องค์กรควรพิจารณาปิดการถอดรหัส Brotli อัตโนมัติสำหรับข้อมูลจากแหล่งที่ไม่น่าเชื่อถือ หากซอฟต์แวร์รองรับ พร้อมจำกัดการเข้าถึงบริการที่มีความเสี่ยง อย่างไรก็ตาม การปิดรับคำขอ Brotli ขาเข้าเพียงอย่างเดียวอาจไม่เพียงพอ เพราะแอปพลิเคชันยังอาจได้รับข้อมูลตอบกลับที่เป็นอันตรายจากเซิร์ฟเวอร์ภายนอกได้

