สรุปสั้น
GoAhead คือ เว็บเซิร์ฟเวอร์ขนาดเล็กที่ผู้ผลิตอุปกรณ์นำไปฝังในเฟิร์มแวร์เพื่อรันหน้าจัดการของเราเตอร์ เครื่องพิมพ์ เกตเวย์ และระบบควบคุมอุตสาหกรรม บริษัท EmbedThis ผู้พัฒนาระบุว่าซอฟต์แวร์นี้อยู่ในอุปกรณ์หลายร้อยล้านเครื่อง ล่าสุดนาย Sébastien Féry นักวิจัยของบริษัท FoxIO เปิดเผยเมื่อวันที่ 26 ตุลาคม 2569 ว่าพบช่องโหว่ด้าน TLS 3 จุดใน GoAhead โดยแต่ละจุดผูกกับไลบรารี TLS ที่ผู้ผลิตเลือกใช้ตอนคอมไพล์เฟิร์มแวร์ จุดที่ร้ายแรงที่สุด คือ CVE-2026-115881 คะแนน 9.1 ซึ่งทำให้ build ที่ใช้ OpenSSL และเปิด mutual-TLS โหลดรายการเพิกถอนใบรับรอง (CRL) ได้โดยไม่มีข้อผิดพลาด แต่ไม่เคยเปิดการตรวจจริง ใบรับรองของอุปกรณ์ที่ถูกขโมยหรือปลดระวางไปแล้วจึงยังล็อกอินได้
อีก 2 จุดกระทบ build ที่ใช้ LibreSSL รุ่นเก่าซึ่งยอมรับสายใบรับรองที่ยาวเกินกำหนดโดยไม่ต้องมีกุญแจที่เชื่อถือได้ และ build ที่ใช้ Mbed TLS ซึ่งพิมพ์ความยาวผิดจนส่งค่า Diffie-Hellman แค่ 1 ไบต์ ทำให้คนดักฟังถอดรหัสเซสชันได้ ทั้ง 3 จุดแก้แล้วใน GoAhead 6.1.1 แต่ปัญหา คือ เจ้าของอุปกรณ์อัปเดตเองไม่ได้และบอกจากภายนอกไม่ได้ว่าอุปกรณ์ของตนใช้ไลบรารีใด ต้องรอผู้ผลิตคอมไพล์และออกเฟิร์มแวร์ใหม่ ซึ่งยังไม่มีข้อมูลว่ามีผู้ผลิตรายใดออกแล้ว ผู้ผลิตอุปกรณ์จึงควรเร่งอัปเดต ส่วนผู้ดูแลระบบควรติดตามประกาศเฟิร์มแวร์และจำกัดการเข้าถึงหน้าจัดการ
รายละเอียดข่าว
เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 27 ตุลาคม 2569 ว่า FoxIO เผยแพร่รายละเอียดช่องโหว่ TLS ทั้ง 3 จุดเมื่อวันที่ 26 ตุลาคม หลังจาก EmbedThis ออก GoAhead 6.1.1 ให้ผู้ผลิตอุปกรณ์ตั้งแต่วันที่ 2 สิงหาคม 2026 และเผยแพร่สู่สาธารณะเมื่อวันที่ 12 ตุลาคม 2026
ด้าน EmbedThis ให้คะแนนความรุนแรงเอง ได้แก่ CVE-2026-115881 คะแนน 9.1, CVE-2026-115884 คะแนน 7.4 และช่องโหว่ฝั่ง Mbed TLS คะแนน 5.9 ซึ่งยังไม่ได้หมายเลข CVE ณ วันที่ 27 ตุลาคม หมายเลข CVE ทั้งหมดยังไม่ปรากฏในฐานข้อมูล CVE และ NVD สาธารณะ EmbedThis ระบุว่าได้ยื่นขอไปแล้ว นอกจากนี้ GoAhead 6.1.1 ยังปิดคำแนะนำด้านความปลอดภัยรวม 11 รายการ ในจำนวนนี้ 3 รายการอยู่ระดับวิกฤต
ข้อจำกัดของข้อมูลที่ต้องรู้มี 3 ข้อ ข้อแรก ยังไม่มีแหล่งใดรายงานว่าช่องโหว่เหล่านี้ถูกใช้โจมตีจริง EmbedThis มีนโยบายเปิดเผยก่อนกำหนดหากพบการโจมตี การเปิดเผยตามกำหนดจึงสอดคล้องกับการที่ยังไม่พบการโจมตี แต่ไม่ได้พิสูจน์ว่าไม่มี ข้อสอง EmbedThis ระบุชื่อผู้ใช้ GoAhead เช่น HP, Oracle, Siemens, Canon, Rockwell, D-Link และ Comcast แต่ยังไม่มีรายใดถูกยืนยันว่าใช้ไลบรารีและค่าตั้งที่เข้าเงื่อนไข จำนวนอุปกรณ์ที่ได้รับผลกระทบจริงจึงยังไม่ทราบ ข้อสาม ยังไม่มีข้อมูลว่าผู้ผลิตรายใดออกเฟิร์มแวร์ที่มี 6.1.1 แล้ว
รายละเอียดช่องโหว่
CVE-2026-115881 (OpenSSL) — โหลด CRL แต่ไม่ตรวจ — mutual-TLS คือ การที่ทั้งเซิร์ฟเวอร์และไคลเอนต์ต่างตรวจใบรับรองของกันและกัน ผู้ดูแลที่ตั้งค่า CRL ไว้ก็เพื่อบล็อกใบรับรองที่ถูกเพิกถอน แต่ GoAhead ที่ใช้ OpenSSL โหลดไฟล์ CRL ตอนเริ่มทำงานโดยไม่แจ้งข้อผิดพลาด และไม่เคยเปิดการตรวจการเพิกถอนจริง ผู้ดูแลจึงเข้าใจว่าระบบป้องกันทำงานอยู่ ในการทดสอบของ FoxIO กับ GoAhead 6.1.0 และ OpenSSL 3.6.2 ใบรับรองที่ถูกเพิกถอนผ่านการยืนยันได้ทั้งที่เปิดการตรวจผู้ออกใบรับรองไว้
- เวอร์ชันที่กระทบ: 3.4.5 ถึง 6.1.0
- เงื่อนไข: build ใช้ OpenSSL บังคับใบรับรองไคลเอนต์ มีชุด CA ที่เชื่อถือ เปิดการตรวจผู้ออกใบรับรอง และตั้งค่า CRL ไว้ ซึ่งเป็นค่าที่ผู้ดูแลต้องเปิดเอง build ค่าเริ่มต้นไม่เข้าเงื่อนไข
- ผู้โจมตีต้องถือใบรับรองที่ลงนามโดย CA ที่เชื่อถือและอยู่ในรายการเพิกถอน เช่น ใบรับรองจากอุปกรณ์ที่ถูกขโมย
- build ที่ใช้ Mbed TLS ไม่กระทบ เพราะตรวจการเพิกถอนผ่านเส้นทางโค้ดแยก
- ไม่มีทางแก้ชั่วคราวในคำแนะนำ ต้องอัปเกรดเป็น 6.1.1
CVE-2026-115884 (LibreSSL รุ่นเก่า) — สายใบรับรองยาวเกินกำหนดผ่านได้ — GoAhead จำกัดสายใบรับรองไว้ไม่เกิน 10 ใบ แต่ build ที่ลิงก์กับ LibreSSL รุ่น 3.2.x และ 3.3.2-3.3.6 ซึ่งใช้ตัวตรวจแบบเก่า ยอมรับสายที่ยาวเกินนี้ ผู้โจมตีจึงยืนยันตัวตนเป็นไคลเอนต์ได้โดยไม่ต้องมีกุญแจที่เชื่อถือได้เลย
- เวอร์ชันที่กระทบ: 6.1.0 และก่อนหน้า เมื่อใช้ LibreSSL รุ่นข้างต้น
- เงื่อนไข: บังคับใบรับรองไคลเอนต์แต่ปิดการตรวจผู้ออกใบรับรอง
- OpenSSL, BoringSSL, AWS-LC และ LibreSSL 4.x ปฏิเสธสายที่ยาวเกินอยู่แล้ว
- ทางแก้ชั่วคราว: เปิดการตรวจผู้ออกใบรับรองพร้อมชุด CA ที่เชื่อถือ หรือเปลี่ยนไปใช้ OpenSSL หรือ LibreSSL 4.x
Mbed TLS — พิมพ์ความยาวผิด ส่ง DH แค่ 1 ไบต์ — ความผิดพลาดด้านความยาวทำให้เซิร์ฟเวอร์ส่งค่า Diffie-Hellman ขนาด 1 ไบต์แทนค่า 2048 บิต คนที่ดักบันทึกทราฟฟิกไว้จึงคำนวณกุญแจและอ่านเซสชันได้ ผลนี้เกิดเฉพาะเมื่อไคลเอนต์ยอมรับค่าที่เล็กขนาดนี้ OpenSSL, Go และ Java รุ่นปัจจุบัน รวมถึงเบราว์เซอร์หลัก ปฏิเสธและเปลี่ยนไปใช้การแลกเปลี่ยนกุญแจที่แข็งแรงกว่า แต่ไคลเอนต์ฝังตัวหรือไคลเอนต์ที่เขียนเองบางตัวไม่มีการตรวจขนาดขั้นต่ำ
- เวอร์ชันที่กระทบ: 4.0.2 ถึง 6.1.0 คะแนน 5.9 ยังไม่มี CVE
- TLS 1.3 และเซสชันแบบ ECDHE ไม่กระทบ
- ทางแก้ชั่วคราว: ปิดชุดรหัสแบบ finite-field DHE หรือเปลี่ยนไปใช้ OpenSSL
ช่องโหว่วิกฤตอื่นใน 6.1.1 — หนึ่งในนั้นเป็นการข้ามการล็อกอิน build ที่ใช้ HTTP Basic หรือ form login ยอมให้ผู้โจมตีที่รู้ชื่อผู้ใช้ที่มีอยู่จริงล็อกอินด้วยรหัสผ่านใดก็ได้ หากรหัสผ่านของผู้ใช้นั้นเก็บในรูปแบบ Blowfish ที่เพิ่มเข้ามาใน 6.1.0 EmbedThis ระบุว่า form login เป็นค่าเริ่มต้นของหน้าจัดการในตัว
ร่องรอยที่ใช้ตรวจหา — FoxIO เผยแพร่โค้ดพิสูจน์แนวคิด (PoC) แล้ว และให้ลายนิ้วมือผ่านเครื่องมือ JA4Scan เพื่อแยกเซิร์ฟเวอร์ GoAhead ตามไลบรารี TLS ที่ใช้ แต่ลายนิ้วมือบอกได้แค่ชนิดของ build ไม่ได้ยืนยันว่าเซิร์ฟเวอร์นั้นมีช่องโหว่
ผลกระทบ
กลุ่มที่เสี่ยง คือ อุปกรณ์ฝังตัวที่ใช้ GoAhead เป็นหน้าจัดการ ทั้งเราเตอร์ เครื่องพิมพ์ เกตเวย์ และระบบควบคุมอุตสาหกรรม โดยเฉพาะอุปกรณ์ที่ใช้ mutual-TLS กับ CRL เพื่อจำกัดว่าเครื่องใดเข้าถึงหน้าจัดการได้ ซึ่งพบบ่อยในเครือข่ายอุตสาหกรรมและโครงสร้างพื้นฐาน ฐานการติดตั้งรวมระดับหลายร้อยล้านเครื่อง แต่จำนวนที่เข้าเงื่อนไขจริงยังไม่ทราบ
ผลที่ตามมาจริงของจุดร้ายแรงสุด คือ การเพิกถอนใบรับรองไม่มีผล อุปกรณ์หรือบุคคลที่องค์กรตัดสิทธิ์ไปแล้วยังเข้าหน้าจัดการได้ด้วยสิทธิ์เดิม ส่วนช่องโหว่ Mbed TLS ทำให้ข้อมูลที่ส่งผ่านหน้าจัดการถูกอ่านย้อนหลังได้ และการข้ามล็อกอินแบบ Blowfish เปิดทางให้เข้าหน้าจัดการได้เพียงรู้ชื่อผู้ใช้ ความเร่งด่วนอยู่ที่วงจรการแก้ไขที่ยาว เพราะต้องผ่านผู้ผลิตทุกราย และอุปกรณ์ฝังตัวจำนวนมากไม่เคยได้รับอัปเดตเฟิร์มแวร์เลย
คำแนะนำ
- ผู้ผลิตอุปกรณ์: อัปเดตเป็น GoAhead 6.1.1 ทันที — 6.1.1 ใช้แทนรุ่นเดิมได้โดยตรง ให้คอมไพล์และออกเฟิร์มแวร์ใหม่ แล้วแจ้งลูกค้าว่าอุปกรณ์รุ่นใดใช้ไลบรารี TLS และค่าตั้งที่เข้าเงื่อนไข
- ผู้ดูแลระบบ: จำกัดการเข้าถึงหน้าจัดการ — ปิดหน้าจัดการจากอินเทอร์เน็ต ให้เข้าได้เฉพาะจากเครือข่ายจัดการหรือ VPN เพราะการเพิกถอนใบรับรองอาจไม่มีผลจนกว่าจะได้เฟิร์มแวร์ใหม่
- ติดตามประกาศเฟิร์มแวร์จากผู้ผลิต — สอบถามผู้ผลิตอุปกรณ์ที่ใช้อยู่ว่าใช้ GoAhead หรือไม่ ใช้ไลบรารี TLS ใด และมีแผนออกเฟิร์มแวร์ที่มี 6.1.1 เมื่อใด
- อย่าพึ่ง CRL เพียงอย่างเดียว — เมื่อต้องตัดสิทธิ์อุปกรณ์ ให้เปลี่ยน CA หรือกำหนดรายการอุปกรณ์ที่อนุญาตในชั้นเครือข่ายควบคู่ จนกว่าจะยืนยันได้ว่าเฟิร์มแวร์ตรวจการเพิกถอนจริง
- หลังอัปเดต — EmbedThis แนะนำให้ยุติเซสชันที่ใช้งานอยู่ รีสตาร์ตเซิร์ฟเวอร์ และเปลี่ยนรหัสผ่านที่เก็บในรูปแบบ Blowfish
- ใช้ JA4Scan สำรวจเครือข่ายภายใน — ไล่หาเซิร์ฟเวอร์ GoAhead และไลบรารี TLS ที่ใช้ เพื่อจัดลำดับอุปกรณ์ที่ต้องติดตามกับผู้ผลิตก่อน
แหล่งอ้างอิง
- GoAhead TLS Flaws Allow Revoked Client Certificates and Enable Session Decryption — The Hacker News
- Choose Your Backend: Three TLS Bugs in GoAhead — FoxIO
- GoAhead v6.1.1 Release — GitHub
- GHSA-5m75-xq69-c3c5 — GitHub Security Advisory
- GHSA-r392-vqwx-3r4g — GitHub Security Advisory
- GHSA-fmvx-2xfx-2gq4 — GitHub Security Advisory
