สรุปสั้น

มีการเผยแพร่ proof-of-concept (PoC) สาธารณะออกมาแล้วสำหรับ CVE-2026-55200 ช่องโหว่ระดับร้ายแรงในไลบรารี libssh2 ที่เปิดทางให้เซิร์ฟเวอร์ SSH ที่เป็นอันตรายหรือถูกยึดควบคุมส่งข้อมูลทำให้เกิด memory corruption บนเครื่องไคลเอนต์ที่เชื่อมต่อเข้ามา และอาจนำไปสู่การรันโค้ดได้ จุดที่อันตรายคือการโจมตีนี้ไม่ต้องใช้ข้อมูลรับรองใด ๆ และไม่ต้องอาศัยการโต้ตอบจากผู้ใช้ ช่องโหว่กระทบทุกเวอร์ชันตั้งแต่อดีตจนถึงและรวมถึงเวอร์ชัน 1.11.1 และได้คะแนน CVSS 4.0 สูงถึง 9.2 สิ่งที่ทำให้น่ากังวลเป็นพิเศษคือ libssh2 เป็นไลบรารีฝั่งไคลเอนต์ที่ถูกฝังอยู่ในซอฟต์แวร์จำนวนมาก เช่น curl, Git, PHP, เอเจนต์สำรองข้อมูล และตัวอัปเดตเฟิร์มแวร์ของอุปกรณ์ต่าง ๆ โดยหลายชุดถูกลิงก์แบบ static ทำให้การอัปเดตแพ็กเกจของระบบปฏิบัติการไม่ช่วยแก้ และเจ้าของระบบอาจไม่รู้ด้วยซ้ำว่ามีมันฝังอยู่

ขณะนี้ยังไม่มี libssh2 เวอร์ชันแก้ไขที่ออกอย่างเป็นทางการ แพตช์อยู่ในซอร์สโค้ดหลักแล้วแต่ยังรอการ tag เป็น release ทำให้ดิสโทรและโปรเจกต์ปลายน้ำต้อง backport กันเอง ทั้งนี้ CISA ยังให้สถานะการถูกใช้โจมตีจริงเป็น “none” และยังไม่มีรายงานการใช้ในวงกว้าง แต่ผู้ดูแลระบบควรรีบสำรวจและเตรียมแพตช์ทันที

รายละเอียดข่าว

เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 29 มิถุนายน พ.ศ. 2569 ว่า มีการปล่อย proof-of-concept สาธารณะออกมาแล้วสำหรับ CVE-2026-55200 ช่องโหว่ร้ายแรงในไลบรารี libssh2 ซึ่งเป็นไลบรารี SSH ฝั่งไคลเอนต์ ไม่ใช่ฝั่งเซิร์ฟเวอร์ ความแตกต่างจุดนี้สำคัญมาก เพราะนั่นหมายความว่าอันตรายเกิดขึ้นเมื่อโปรแกรมที่ใช้ libssh2 “เชื่อมต่อออกไป” ยังเซิร์ฟเวอร์ SSH ที่ไม่น่าเชื่อถือ ไม่ใช่เมื่อมีใครเชื่อมต่อเข้ามา

ช่องโหว่นี้ถูกค้นพบและรายงานโดยนักวิจัยด้านความปลอดภัย นาย Tristan Madani โดยทีมผู้ดูแล libssh2 ได้รวมแพตช์ผ่าน pull request #2052 เมื่อวันที่ 12 มิถุนายน และ VulnCheck เผยแพร่ CVE เมื่อวันที่ 17 มิถุนายน ต่อมา PoC ถูกนำไปเผยแพร่ใน “exploitarium” ซึ่งเป็นคลังโค้ด exploit บน GitHub ที่ผู้เขียนระบุเองว่าโพสต์โดยไม่ได้แจ้งผู้พัฒนาก่อน คลังนี้มีโครงสร้างทดสอบ trigger SSH ที่ตรวจสอบในเครื่องได้ และชุดทดสอบ RCE แบบควบคุมในเครื่อง แต่ยังไม่ใช่ exploit สำเร็จรูปที่ยิงจากระยะไกลได้ทันที การรันโค้ดให้สำเร็จจริงกับแอปพลิเคชันที่ทำงานอยู่ยังขึ้นกับ binary เป้าหมาย พฤติกรรมของ allocator มาตรการป้องกัน และวิธีที่ซอฟต์แวร์ฝัง libssh2 เข้าไป

ผู้เขียนคลังยังยอมรับเองว่าคลังถูกปล่อยออกมาทั้งที่ยังไม่สมบูรณ์ บางรายการอ่อน และใช้ AI ขับเคลื่อนการ fuzzing ขณะที่เขียนข่าวนี้ CISA ยังให้สถานะการถูกใช้โจมตีจริงเป็น “none” และยังไม่มีรายงานการนำไปใช้ในโลกจริง อย่างไรก็ตาม ประเด็นที่น่ากังวลคือ libssh2 เคยเจอบั๊กประเภทเดียวกันนี้มาก่อน ในปี 2019 เคยออกเวอร์ชัน 1.8.1 เพื่อแก้ช่องโหว่ชุดหนึ่ง นำโดย CVE-2019-3855 ซึ่งเป็น integer overflow ในส่วน transport read ที่เกือบจะเหมือนกัน และก็เปิดทางให้เซิร์ฟเวอร์ที่เป็นอันตรายรันโค้ดบนไคลเอนต์ได้เช่นกัน ผ่านไปเจ็ดปี บั๊กประเภทเดิมก็กลับมาในโค้ดส่วนเดิมอีกครั้ง

รายละเอียดช่องโหว่

ช่องโหว่อยู่ในฟังก์ชัน ssh2_transport_read() ในไฟล์ transport.c ซึ่งเป็นฟังก์ชันที่ทำหน้าที่แยกวิเคราะห์แพ็กเก็ต SSH ที่เข้ามาในระหว่างขั้นตอน handshake โดยฟังก์ชันนี้อ่านค่า packet_length ที่ผู้โจมตีควบคุมได้ แต่กลับปฏิเสธเฉพาะค่าที่ต่ำกว่า 1 เท่านั้น ไม่เคยบังคับขอบเขตสูงสุดเลย

การคำนวณขนาดบัฟเฟอร์นำค่า packet_length ไปบวกกับค่าเล็ก ๆ อีกสองสามค่าโดยใช้เลขคณิตแบบ 32 บิต ดังนั้นค่าความยาวอย่าง 0xffffffff จะ wrap around กลับมาเป็นตัวเลขเล็ก ๆ libssh2 จึงจองบัฟเฟอร์ตามขนาดเล็กนั้น ขณะที่โค้ดในขั้นถัดไปกลับเขียนแพ็กเก็ตขนาดเต็มที่ใหญ่กว่ามากลงไป ผลที่ได้คือการเขียนข้อมูลล้นออกนอกขอบเขตบน heap (out-of-bounds heap write) ซึ่งจัดอยู่ในประเภท CWE-680 คือ integer overflow ที่นำไปสู่ buffer overflow อันเป็น primitive คลาสสิกที่ใช้ต่อยอดไปสู่การรันโค้ดได้

แพตช์ที่แก้ไขทำได้ตรงไปตรงมา คือเพิ่มการตรวจสอบที่ขาดหายไป โดยปฏิเสธค่า packet_length ใด ๆ ที่เกิน LIBSSH2_PACKET_MAXPAYLOAD ก่อนที่จะคำนวณ นอกจาก CVE-2026-55200 แล้ว ยังมีช่องโหว่อื่นในชุดเดียวกันที่ควรแพตช์ไปพร้อมกัน ได้แก่ CVE-2026-55199 (CVSS 8.2) ซึ่งเป็น denial of service ที่ทำให้ไคลเอนต์ติดอยู่ในลูป CPU ผ่านการนับ extension ที่ผิดพลาด และ CVE-2025-15661 (CVSS 8.3) ซึ่งเป็น heap over-read ใน SFTP

ผลกระทบต่อไทย

แม้ช่องโหว่นี้จะไม่ได้เจาะจงเป้าหมายในไทยโดยตรง แต่ความเสี่ยงต่อองค์กรไทยอยู่ที่ความแพร่หลายของ libssh2 ซึ่งฝังตัวอยู่ใน curl, Git, PHP รวมถึงเอเจนต์สำรองข้อมูล อุปกรณ์ network appliance และตัวอัปเดตเฟิร์มแวร์จำนวนมากที่หน่วยงานไทยใช้งานทุกวัน หลายชุดถูกลิงก์แบบ static ทำให้การอัปเดตแพ็กเกจระบบปฏิบัติการตามปกติไม่ช่วยปิดช่องโหว่ และทีมไอทีอาจไม่รู้ด้วยซ้ำว่ามันถูกฝังอยู่ในซอฟต์แวร์หรืออุปกรณ์ใดบ้าง

สถานการณ์ที่ต้องระวังเป็นพิเศษคือระบบอัตโนมัติที่เชื่อมต่อ SSH ออกไปยังปลายทางที่อาจถูกควบคุมโดยผู้โจมตี เช่น สคริปต์ที่ pull ข้อมูลผ่าน Git, ระบบ CI/CD, หรือบริการที่ resolve ชื่อโฮสต์ผ่าน DNS ที่อาจถูก redirect ได้ หากผู้โจมตีหลอกให้ไคลเอนต์เชื่อมต่อไปยังเซิร์ฟเวอร์ปลอม ก็มีโอกาสยึดเครื่องต้นทางได้

คำแนะนำ

จัดทำ inventory ของทุกอย่างที่ลิงก์ libssh2 รวมถึงสำเนาที่ฝังหรือลิงก์แบบ static ซึ่ง package manager จะไม่แจ้งเตือน โดยเฉพาะ deployment ของ curl, Git และ PHP ที่เป็นพาหะหลัก จากนั้นติดตั้งบิลด์ที่รวม commit 97acf3d เข้าไปแล้ว ไม่ว่าจะเป็น backport ของดิสโทรหรือบิลด์จากซอร์สที่แพตช์แล้ว และคอยติดตามช่องประกาศของผู้ผลิตเพื่อดูสถานะการออก release ทั้งนี้ Debian มีบิลด์ที่แก้ไขแล้วอยู่ใน testing และ NHS England Digital ได้ออกคำแนะนำเร่งให้องค์กรที่ได้รับผลกระทบอัปเดต

ระหว่างที่ยังไม่ได้แพตช์ ให้จำกัดการเชื่อมต่อ SSH ขาออกไปยังเซิร์ฟเวอร์ที่เชื่อถือได้เท่านั้นและตรวจสอบ host key ทุกครั้ง ให้ความสำคัญกับไคลเอนต์ที่ต้องเชื่อมต่อไปยังเซิร์ฟเวอร์ SSH ภายนอกหรือ resolve โฮสต์ผ่านชื่อที่ผู้โจมตีอาจ redirect ได้ และเฝ้าระวังความผิดปกติของแพ็กเก็ตขนาดใหญ่เกินจริงรวมถึงอาการ crash ของไคลเอนต์ที่อธิบายไม่ได้

แหล่งอ้างอิง