สรุปสั้น
เมื่อวันที่ 14 พฤษภาคม 2569 นักวิจัยจาก depthfirst เปิดเผยช่องโหว่ร้ายแรงใน NGINX ที่ซ่อนตัวอยู่โดยไม่ถูกตรวจพบมานานถึง 18 ปี
ช่องโหว่ CVE-2026-42945 หรือรหัสชื่อ NGINX Rift มีคะแนน CVSS v4 สูงถึง 9.2
เป็นปัญหา heap buffer overflow ใน ngx_http_rewrite_module ที่เปิดโอกาสให้ผู้โจมตีจากระยะไกลรันโค้ดอันตราย (RCE) หรือทำให้ระบบล่ม (DoS) ได้
ผู้โจมตีไม่จำเป็นต้องยืนยันตัวตน เพียงส่ง HTTP request ที่สร้างขึ้นเป็นพิเศษเพียงครั้งเดียวก็สามารถเจาะระบบได้
กระทบ NGINX Open Source ตั้งแต่เวอร์ชัน 0.6.27 จนถึง 1.30.0 และ NGINX Plus ตั้งแต่ R32 ถึง R36
F5 ได้ออกแพตช์แก้ไขแล้วใน NGINX Open Source 1.30.1 / 1.31.0 และ NGINX Plus R32 P6 / R36 P4
รายละเอียดช่องโหว่
ช่องโหว่เกิดขึ้นเมื่อ NGINX config ใช้ rewrite directive ร่วมกับ directive อื่น (rewrite, if, หรือ set) และมีการใช้ unnamed PCRE capture (เช่น $1, $2) ร่วมกับ replacement string ที่มีเครื่องหมายคำถาม (?)
สิ่งที่ทำให้ช่องโหว่นี้อันตรายอย่างยิ่ง:
- ไม่ต้องยืนยันตัวตน — ส่ง HTTP request เพียงครั้งเดียวก็โจมตีได้
- ควบคุมข้อมูลที่เขียนทับได้ — byte ที่ overflow มาจาก URI ของผู้โจมตี ทำให้ไม่ใช่การ corrupt แบบสุ่ม
- ทำให้ระบบล่มต่อเนื่องได้ — ส่ง request ซ้ำเพื่อให้ worker process crash loop ทำให้เว็บไซต์ทุกแห่งบน instance นั้นใช้งานไม่ได้
ระบบที่ได้รับผลกระทบ
| ผลิตภัณฑ์ | เวอร์ชันที่กระทบ | แพตช์ |
|---|---|---|
| NGINX Plus | R32 – R36 | R32 P6, R36 P4 |
| NGINX Open Source | 1.0.0 – 1.30.0 | 1.30.1, 1.31.0 |
| NGINX Open Source (เก่า) | 0.6.27 – 0.9.7 | ไม่มีแผนแก้ไข |
| NGINX Ingress Controller | 3.5.0 – 5.4.1 | มีแพตช์แล้ว |
| NGINX Gateway Fabric | 1.3.0 – 2.5.1 | มีแพตช์แล้ว |
นอกจากนี้ยังมีช่องโหว่อื่นที่ได้รับการแก้ไขพร้อมกัน ได้แก่ CVE-2026-42946 (CVSS 8.3), CVE-2026-40701 (CVSS 6.3) และ CVE-2026-42934 (CVSS 6.3)
ผลกระทบต่อไทย
NGINX เป็นเว็บเซิร์ฟเวอร์และ reverse proxy ที่ได้รับความนิยมสูงสุดอันดับต้นของโลก ในประเทศไทยมีการใช้งานอย่างแพร่หลายทั้งในภาครัฐและเอกชน ตั้งแต่เว็บไซต์ e-commerce, ระบบ API gateway, ไปจนถึง load balancer ของระบบสำคัญ เนื่องจากช่องโหว่นี้โจมตีได้จากระยะไกลโดยไม่ต้องมีสิทธิ์ใด ๆ และมีอยู่มานาน 18 ปี จึงมีโอกาสสูงมากที่ระบบที่ยังไม่อัปเดตจะตกเป็นเป้าหมาย
คำแนะนำเร่งด่วน
- อัปเดต NGINX เป็นเวอร์ชันล่าสุดทันที (Open Source 1.30.1+ หรือ Plus R32 P6 / R36 P4)
- หากยังอัปเดตไม่ได้ ให้แก้ config โดยเปลี่ยน unnamed capture (
$1,$2) เป็น named capture ในทุก rewrite directive ที่เข้าเงื่อนไข - ตรวจสอบ ว่า NGINX config ของคุณมีรูปแบบ
rewrite ... $1 ... ?หรือไม่ - ติดตามประกาศจาก F5 Security Advisory