สรุปสั้น
บริษัท VulnCheck รายงานว่าตรวจพบความพยายามโจมตีช่องโหว่ระดับวิกฤต CVE-2026-61500 (CVSS 9.3) ใน Rejetto HTTP File Server (HFS) ซอฟต์แวร์แชร์ไฟล์ผ่านเว็บแบบโอเพนซอร์สที่นิยมใช้ตั้งเซิร์ฟเวอร์ไฟล์อย่างรวดเร็ว ช่องโหว่กระทบเวอร์ชัน 3.0.0 ถึง 3.2.0 ต้นเหตุคือ HFS สร้างคีย์สำหรับลงนามคุกกี้เซสชันด้วยฟังก์ชัน Math.random() ของ JavaScript ซึ่งไม่ใช่ตัวสร้างเลขสุ่มเชิงการเข้ารหัส และยังเปิดเผยค่าที่ได้จากตัวสร้างเลขสุ่มตัวเดียวกันให้ผู้ใช้ที่ยังไม่ยืนยันตัวตนเห็นระหว่างขั้นตอนล็อกอิน ผู้โจมตีจึงเก็บการตอบกลับเพียงไม่กี่ครั้งไปคำนวณย้อนสถานะของตัวสร้างเลขสุ่ม กู้คีย์ลงนาม แล้วปลอมคุกกี้เซสชันของผู้ดูแลระบบได้ ก่อนใช้ฟีเจอร์ server_code ที่ระบบเปิดให้ใช้อยู่แล้วรัน JavaScript ฝั่งเซิร์ฟเวอร์ ผลคือยึดเครื่องได้จากระยะไกลโดยไม่ต้องมีรหัสผ่านเลย
ผู้พัฒนาออกแพตช์ในเวอร์ชัน 3.2.1 ตั้งแต่เดือนกรกฎาคม 2569 แต่ช่องโหว่เพิ่งเป็นที่สนใจเมื่อมี PoC ภาษา Python เผยแพร่สาธารณะปลายเดือนกันยายน และบริษัท Horizon3.ai เผยแพร่รายละเอียดเมื่อ 30 กันยายน โดยระบุว่าค้นพบด้วยโมเดล Mythos ของบริษัท Anthropic เพียงหนึ่งวันหลังจากนั้น VulnCheck ก็พบความพยายามโจมตีครั้งแรก ทั้งนี้กิจกรรมที่เห็นยังเป็นการสอดแนมขนาดเล็กจาก IP เดียวของ China Telecom ที่ยิงเข้าเครื่องล่อ (canary) ในญี่ปุ่นและสหรัฐฯ นี่เป็นช่องโหว่ตัวที่สองของ HFS ที่ถูกโจมตีจริง ต่อจาก CVE-2024-23692 ซึ่งถูกใช้แพร่มัลแวร์หลายชนิดเมื่อปี 2567
รายละเอียดข่าว
เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 5 ตุลาคม 2569 อ้างข้อมูลจากบริษัท VulnCheck ว่าช่องโหว่ CVE-2026-61500 ใน Rejetto HFS กำลังถูกพยายามโจมตีจริง คำแนะนำด้านความปลอดภัยของช่องโหว่ระบุว่า “Rejetto HFS 3.0.0 ถึง 3.2.0 สร้างคีย์ลงนามคุกกี้เซสชันจากตัวสร้างเลขสุ่ม Math.random() ที่ไม่ใช่เชิงการเข้ารหัส และเปิดเผยผลลัพธ์จากตัวสร้างเดียวกันนี้ให้ไคลเอนต์ที่ยังไม่ยืนยันตัวตนระหว่างการล็อกอิน” ผู้โจมตีจากระยะไกลสามารถรวบรวมการตอบกลับจากหน้าล็อกอินจำนวนไม่มาก สร้างสถานะของตัวสร้างขึ้นใหม่ กู้คีย์ลงนาม และปลอมคุกกี้เซสชันผู้ดูแลระบบที่ใช้งานได้จริง
นาย Zach Hanley นักวิจัยของบริษัท Horizon3.ai เผยแพร่บทความเมื่อวันที่ 30 กันยายน 2569 ว่าทีมใช้โมเดล Mythos ของ Anthropic ค้นพบช่องโหว่นี้ และอธิบายว่าเป็นการเลี่ยงการยืนยันตัวตนที่นำไปสู่การรันโค้ดจากระยะไกล “API สำหรับผู้ดูแลระบบของ Rejetto HFS อนุญาตให้สร้าง endpoint แบบกำหนดเองที่รัน JavaScript ใดก็ได้ เมื่อรวมกันจึงเกิดเส้นทางที่ชัดเจนจากการเข้าถึงโดยไม่ยืนยันตัวตน ไปสู่การควบคุมระดับผู้ดูแลระบบ และท้ายที่สุดคือการรันโค้ดจากระยะไกล” นาย Hanley ระบุ
แม้แพตช์ในเวอร์ชัน 3.2.1 จะออกตั้งแต่เดือนกรกฎาคม 2569 แต่ช่องโหว่ไม่ได้ถูกจับตาจนกระทั่งปลายเดือนกันยายน เมื่อนาย Alejandro Ramos (ชื่อเล่น aramosf) นักวิจัยด้านความปลอดภัยเผยแพร่ PoC ภาษา Python บน GitHub ช่วงห่างราวสองเดือนระหว่างแพตช์กับ PoC นี้คือหน้าต่างที่ผู้ดูแลระบบควรอัปเดตไปแล้ว แต่ในทางปฏิบัติ HFS มักถูกตั้งขึ้นใช้ชั่วคราวแล้วถูกลืม จึงมีเครื่องจำนวนหนึ่งที่ยังไม่ได้อัปเดต
นาย Patrick Garrity จาก VulnCheck ระบุว่าตรวจพบความพยายามโจมตีเมื่อวันที่ 1 ตุลาคม 2569 หนึ่งวันหลัง Horizon3.ai เผยแพร่รายละเอียดเพิ่มเติม โดย The Hacker News อ้างว่าบริษัทพบผู้โจมตีไม่ทราบชื่อในจีนเล็งเครื่องที่มีช่องโหว่จริงในสหรัฐฯ อย่างไรก็ตาม นาง Caitlin Condon รองประธานฝ่ายวิจัยของ VulnCheck โพสต์บน LinkedIn ว่า “กิจกรรมจนถึงตอนนี้ดูเหมือนเป็นเพียงการสอดแนมขนาดเล็ก มี IP ของ China Telecom เพียงหนึ่งรายการที่สำรวจเครื่องล่อของเราในญี่ปุ่นและสหรัฐอเมริกา” ข้อมูลสองส่วนนี้จึงควรอ่านคู่กัน คือมีการยิงจริงแล้ว แต่ยังไม่มีหลักฐานสาธารณะว่าเจาะเครื่องเหยื่อสำเร็จหรือมีการวางมัลแวร์

รายละเอียดช่องโหว่
HFS เวอร์ชัน 3 พัฒนาบน Node.js และใช้เฟรมเวิร์ก Koa จัดการเซสชัน โดยคุกกี้เซสชันจะถูกลงนามด้วยคีย์ลับเพื่อป้องกันการปลอมแปลง ปัญหาคือคีย์นี้สร้างด้วย Math.random() ซึ่งใน V8 เป็นตัวสร้างเลขสุ่มเทียม (PRNG) ที่ออกแบบมาเพื่อความเร็ว ไม่ได้ออกแบบให้คาดเดาไม่ได้ หากผู้โจมตีเห็นผลลัพธ์ต่อเนื่องจาก PRNG ตัวเดียวกันมากพอ ก็สามารถคำนวณสถานะภายในย้อนกลับ แล้วทำนายทั้งค่าที่ออกมาก่อนหน้าและค่าถัดไปได้
นาย Ramos อธิบายว่า HFS “สร้างคีย์ลงนามคุกกี้เซสชันของ Koa ด้วย Math.random() และเปิดเผยผลลัพธ์จาก PRNG ของ V8 ตัวเดียวกันในขั้นตอน SRP handshake ตอนล็อกอินที่ไม่ต้องยืนยันตัวตน” กล่าวคือ ค่าสุ่มที่ HFS ส่งให้ไคลเอนต์ในโปรโตคอลล็อกอินแบบ SRP มาจากแหล่งเดียวกับคีย์ลับ ผู้โจมตีจึงส่งคำขอล็อกอินไม่กี่ครั้งเพื่อเก็บตัวอย่าง คำนวณย้อนสถานะ PRNG กู้คีย์ แล้วลงนามคุกกี้ที่อ้างว่าเป็นผู้ดูแลระบบได้เอง
ขั้นสุดท้ายคือการใช้ฟีเจอร์ server_code ซึ่งเป็นฟีเจอร์ที่มีเอกสารอธิบายไว้อย่างเป็นทางการ ให้ผู้ดูแลระบบเขียน JavaScript ไว้รันฝั่งเซิร์ฟเวอร์หรือสร้าง endpoint แบบกำหนดเอง เมื่อผู้โจมตีถือเซสชันผู้ดูแลระบบแล้ว ก็ใส่โค้ดของตนลงไปและได้การรันโค้ดบนเครื่องด้วยสิทธิ์ของโปรเซส HFS ทันที ช่องโหว่นี้จึงไม่ต้องอาศัยบั๊กหน่วยความจำหรือการเดารหัสผ่าน และทำซ้ำได้แน่นอน ซึ่งเป็นเหตุผลที่คะแนน CVSS สูงถึง 9.3
ก่อนหน้านี้ HFS เคยมีช่องโหว่ CVE-2024-23692 (CVSS 9.8) ซึ่งเป็น template injection ที่รันคำสั่งได้โดยไม่ยืนยันตัวตนในสาย 2.x ที่เลิกพัฒนาแล้ว และถูกผู้โจมตีหลายกลุ่มนำไปใช้ตั้งแต่กรกฎาคม 2567 เพื่อวางตัวขุดคริปโต โทรจัน และมัลแวร์ชื่อ HATVIBE
ผลกระทบ
กลุ่มที่เสี่ยงที่สุดคือเครื่องที่ติดตั้ง HFS เวอร์ชัน 3.0.0 ถึง 3.2.0 และเปิดหน้าเว็บสู่อินเทอร์เน็ต ซึ่งพบได้บ่อยในการแชร์ไฟล์แบบเฉพาะกิจ ทั้งในเครื่องส่วนตัว ห้องแล็บ และงานที่ต้องส่งไฟล์ขนาดใหญ่ให้บุคคลภายนอก HFS ไม่ต้องติดตั้งซับซ้อน จึงมักถูกเปิดใช้โดยไม่ผ่านฝ่ายไอที และไม่อยู่ในรายการทรัพย์สินที่ต้องอัปเดต เมื่อถูกเจาะ ผู้โจมตีได้ทั้งไฟล์ที่แชร์อยู่และสิทธิ์รันโค้ดบนเครื่อง ซึ่งต่อยอดไปวางมัลแวร์หรือเคลื่อนที่เข้าเครือข่ายภายในได้
ประวัติของ CVE-2024-23692 ชี้ว่าเมื่อมี PoC สาธารณะ ช่องโหว่ HFS ถูกนำไปใช้ในวงกว้างค่อนข้างเร็ว ทั้งโดยกลุ่มขุดคริปโตและกลุ่มที่วางมัลแวร์สอดแนม แม้ตอนนี้กิจกรรมยังเป็นเพียงการสอดแนมจาก IP เดียว แต่ช่วงเวลาที่ PoC ออกแล้วและข่าวแพร่แล้วมักเป็นช่วงที่การสแกนเพิ่มขึ้นอย่างรวดเร็ว ข่าวนี้ยังสะท้อนแนวโน้มที่เครื่องมือ AI ถูกใช้ค้นช่องโหว่เชิงตรรกะได้เร็วขึ้น ซึ่งหมายถึงระยะเวลาระหว่างการเปิดเผยกับการโจมตีจริงที่สั้นลงด้วย
คำแนะนำ
- อัปเดต Rejetto HFS เป็นเวอร์ชัน 3.2.1 หรือใหม่กว่าทันที และตรวจหาเครื่องที่ยังใช้สาย 2.x ซึ่งเลิกพัฒนาแล้วและมีช่องโหว่ CVE-2024-23692
- สำรวจเครือข่ายหาเครื่องที่รัน HFS โดยไม่ผ่านฝ่ายไอที โดยเฉพาะเครื่องที่เปิดพอร์ตเว็บสู่อินเทอร์เน็ต แล้วปิดหรือย้ายไปไว้หลัง VPN หากไม่จำเป็นต้องเปิดสาธารณะ
- หลังอัปเดต ให้ถือว่าคุกกี้เซสชันเดิมไม่น่าเชื่อถือ ล้างเซสชันทั้งหมดและเปลี่ยนรหัสผ่านบัญชีผู้ดูแลระบบ
- ตรวจการตั้งค่า server_code และ endpoint แบบกำหนดเองว่ามีโค้ดที่ไม่ได้ใส่เองหรือไม่ รวมถึงตรวจล็อกการล็อกอินที่มีคำขอ SRP ซ้ำ ๆ จาก IP เดียวในช่วงสั้น
- เฝ้าระวังโปรเซสลูกที่เกิดจากโปรเซส HFS เช่น shell, PowerShell หรือ curl/wget ซึ่งเป็นสัญญาณของการรันโค้ดหลังเจาะสำเร็จ
