ทีมวิจัยความปลอดภัยไซเบอร์ของ Netflix รายงานถึงช่องโหว่ในโปรโตคอล HTTP/2 จำนวน 8 รายการ พร้อมๆ กับอีกช่องโหว่ที่พบโดยกูเกิล เป็นชุดของช่องโหว่ที่ไคลเอนต์มุ่งร้ายกำหนดพารามิเตอร์ให้กินทรัพยากรเซิร์ฟเวอร์จนหมด และเว็บล่มได้ในที่สุด
ช่องโหว่เหล่านี้ไม่มีช่องโหว่ใดทำให้ข้อมูลรั่วไหล หรือยึดเซิร์ฟเวอร์ได้แต่อย่างใด โดยช่องโหว่มี 8 รายการ ได้แก่
- CVE-2019-9511 (Data Dribble) ไคลเอนต์ขอข้อมูลขนาดใหญ่แต่กำหนด window size ของสตรีมไว้เพียง 1 ไบต์ ทำให้เซิร์ฟเวอร์ต้องใช้ซีพียูสูงมากเพื่อจะส่งข้อมูล
- CVE-2019-9512 (Ping Flood) ยิง ping จนเซิร์ฟเวอร์ล่ม
- CVE-2019-9513 (Resource Loop) ไคลเอนต์เปิดหลายสตรีมพร้อมกันแล้ววนแต่ละสตรีมเพื่อกินทรัพยากรเซิร์ฟเวอร์
- CVE-2019-9514 (Reset Flood) ไคลเอนต์เปิดสตรีมจำนวนมากแล้วส่งรีเควสไม่ถูกต้อง ทำให้ได้รับเฟรมรีเซ็ต เพื่อให้กินทรัพยากรบนเซิร์ฟเวอร์
- CVE-2019-9515 (Setting Flood) ยิงเฟรม SETTINGS เพื่อให้เซิร์ฟเวอร์ตอบรับจำนวนมากๆ เพื่อกินทรัพยากรเซิร์ฟเวอร์เหมือน Ping Flood
- CVE-2019-9516 (0-Length Headers Leak) เปิดสตรีมโดยมีชื่อ header ความยาว 0 ไบต์ บางอิมพลีเมนต์จะทำให้เซิร์ฟเวอร์ไม่ยอมคืนหน่วยความจำ
- CVE-2019-9517 (Internal Data Buffering) ไคลเอนต์ขอ HTTP/2 window ขนาดใหญ่ แต่เปิด TCP window ขนาดเล็ก เพื่อกินทรัพยากรเซิร์ฟเวอร์
- CVE-2019-9518 (Empty Frames Flood) ไคลเอนต์เปิดสตรีมโดยไม่มีข้อมูล และไม่ยอมปิด กินทรัพยากรเซิร์ฟเวอร์
วันนี้ทาง nginx ออกเวอร์ชั่น 1.16.1 และ 1.17.3 แก้ปัญหาบางส่วน ทางด้าน Apache HTTPD ก็ออกเวอร์ชั่น 2.4.39 และ IIS ก็ออกแพตช์มาพร้อมกับ Patch Tuesday ส่วนผู้ที่ยังไม่อัพเดตแพตช์ ทางออกที่ง่ายที่สุดคือการปิด HTTP/2 แต่จะส่งกระทบประสิทธิภาพเว็บ
ที่มา - GitHub: netflix/security-bulletins
ภาพโดย iAmMrRob
Comments
ว้าว...ทุกวันนี้มันยังใช้เทคนิคนี้ได้อีก ?
บล็อกส่วนตัวที่อัพเดตตามอารมณ์และความขยัน :P
ล้ำมาก