ช่องโหว่ในโมดูล http2 จาก Node.js

นักพัฒนาแพลตฟอร์ม JavaScript ฝั่งเซิร์ฟเวอร์ Node.js ได้เผยแพร่รุ่นแก้ไข 12.22.4, 14.17.4 และ 16.6.0 ซึ่งแก้ไขช่องโหว่บางส่วน (CVE-2021-22930) ในโมดูล http2 (ไคลเอ็นต์ HTTP/2.0) ซึ่งช่วยให้เริ่มต้นกระบวนการขัดข้องหรือจัดระเบียบการดำเนินการโค้ดของคุณในระบบเมื่อเข้าถึงโฮสต์ที่ควบคุมโดยผู้โจมตี

ปัญหาเกิดจากการเข้าถึงหน่วยความจำที่ว่างแล้วเมื่อปิดการเชื่อมต่อหลังจากได้รับเฟรม RST_STREAM (รีเซ็ตเธรด) สำหรับเธรดที่กำลังดำเนินการอ่านอย่างเข้มข้นซึ่งบล็อกการเขียน หากได้รับเฟรม RST_STREAM โดยไม่ระบุรหัสข้อผิดพลาด โมดูล http2 จะเรียกขั้นตอนการล้างข้อมูลเพิ่มเติมสำหรับข้อมูลที่ได้รับแล้ว จากนั้นตัวจัดการการปิดจะถูกเรียกอีกครั้งสำหรับสตรีมที่ปิดแล้ว ซึ่งนำไปสู่การว่างโครงสร้างข้อมูลสองเท่า

การอภิปรายเกี่ยวกับแพตช์ตั้งข้อสังเกตว่าปัญหายังไม่ได้รับการแก้ไขอย่างสมบูรณ์ และยังคงปรากฏในการอัปเดตที่เผยแพร่ภายใต้เงื่อนไขที่มีการปรับเปลี่ยนเล็กน้อย การวิเคราะห์แสดงให้เห็นว่าการแก้ไขครอบคลุมเฉพาะหนึ่งในกรณีพิเศษเท่านั้น - เมื่อเธรดอยู่ในโหมดอ่าน แต่ไม่ได้คำนึงถึงสถานะของเธรดอื่นๆ (การอ่านและการหยุดชั่วคราว การหยุดชั่วคราว และการเขียนบางประเภท)

ที่มา: opennet.ru

เพิ่มความคิดเห็น