Advertisement
เทคโนโลยี

UnrealIRCd ช่องโหว่ร้ายแรง CISA กำหนดอุด 16 พ.ย. ต้องทำอะไร

UnrealIRCd ช่องโหว่ CVE-2026-114713 ให้ผู้ใช้ทั่วไปสั่งคำสั่งด้วยสิทธิ์เซิร์ฟเวอร์ได้ ผู้ดูแลต้อง hot-patch หรืออัปเกรดเป็น 6.2.7.1

UnrealIRCd ช่องโหว่ร้ายแรง CISA กำหนดอุด 16 พ.ย. ต้องทำอะไร

ผู้ดูแลเซิร์ฟเวอร์แชต IRC ที่ใช้ UnrealIRCd ต้องรีบตรวจรุ่นที่ใช้อยู่ เพราะช่องโหว่ CVE-2026-114713 เปิดทางให้ผู้ใช้ธรรมดาคนไหนก็ได้ในเครือข่ายสั่งคำสั่งด้วยสิทธิ์ของเซิร์ฟเวอร์ ผู้ดูแลโครงการออกรุ่นแก้ไข 6.2.7.1 พร้อม hot-patch ตั้งแต่ 7 พ.ย. 2569 ต่อมาสำนักงานความมั่นคงไซเบอร์และโครงสร้างพื้นฐานของสหรัฐฯ (CISA) เพิ่มช่องโหว่นี้เข้าบัญชีช่องโหว่ที่ถูกใช้โจมตีจริง (KEV) เมื่อ 13 พ.ย. และกำหนดให้อุดภายใน 16 พ.ย.

เซิร์ฟเวอร์แชตที่ตั้งทิ้งไว้โดยไม่มีใครเปิดดูบ่อยเสี่ยงพลาดการอัปเดตนี้ ถ้าคุณเป็นคนดูแลเครื่องแบบนั้น หรือรู้ว่าองค์กรของคุณมีเครื่องแบบนี้อยู่ ข้างล่างเรียงให้แล้วว่าใครโดน ต้องทำอะไรก่อนหลัง และสถานะของ CISA ต่างจากประกาศของผู้ดูแลโครงการอย่างไร

ช่องโหว่นี้เปิดทางให้ทำอะไรได้

ผู้ดูแลโครงการ บรัม แมตธิส (Bram Matthys) อธิบายว่าปัญหาอยู่ที่การจัดการอักขระพิเศษ (escaping) ในแท็กข้อความ 'label' ของมาตรฐาน IRCv3 ผู้ใช้ทั่วไปสามารถแทรกอักขระขึ้นบรรทัดใหม่และอักขระอื่นเข้าไปในทราฟฟิกที่เซิร์ฟเวอร์ส่งหากัน IRC เป็นโปรโตคอลแบบข้อความ การแทรกบรรทัดใหม่จึงเท่ากับสั่งคำสั่งอะไรก็ได้ โดยในกรณีนี้คำสั่งจะถูกรันด้วยสิทธิ์ของเซิร์ฟเวอร์

ผลที่ตามมาคือผู้ใช้ธรรมดาสั่งคำสั่งระดับผู้ดูแลเครือข่าย (IRCOp) ได้ ตัวอย่างที่ผู้ดูแลโครงการยกคือ KILL ซึ่งตัดผู้ใช้ออกจากเครือข่าย และ GLINE ซึ่งแบนผู้ใช้ทั้งเครือข่าย

CISA อธิบายเงื่อนไขของช่องโหว่ไว้ว่า ผู้ใช้ใดก็ได้บนเครือข่ายที่มีเซิร์ฟเวอร์เชื่อมกันตั้งแต่ 2 เครื่องขึ้นไป สามารถฉีดคำสั่งระหว่างเซิร์ฟเวอร์ที่ถูกรันด้วยสิทธิ์ของเซิร์ฟเวอร์ได้ ถ้าเครือข่ายของคุณมีเซิร์ฟเวอร์เครื่องเดียว คำอธิบายนี้ไม่ได้ครอบคลุม แต่ก็ยังควรอัปเดต เพราะแพตช์ชุดเดียวกันแก้ปัญหาความปลอดภัยอีก 8 รายการ

ผู้ดูแลโครงการระบุว่านี่คือช่องโหว่ร้ายแรงที่สุดที่พบใน UnrealIRCd ในรอบ 15 ปี และบอกว่าพบระหว่างการตรวจสอบภายในโดยใช้ AI ช่วย อีก 8 รายการที่แก้พร้อมกันเป็นปัญหาแครช ระบบค้าง และการโจมตีแบบ DoS รวมถึงช่องโหว่ที่ให้ผู้ใช้ทั่วไปเปิดเผยหมายเลข IP ของผู้ใช้คนอื่นได้ (decloak)

ข้อมูลรุ่นที่โดนมาจากรายงานข้อบกพร่องของ Red Hat (Red Hat Bugzilla) ซึ่งระบุว่าโมดูล labeled-response ตั้งแต่ UnrealIRCd 6.0.0 จนถึงก่อน 6.2.7.1 ไม่ escape แท็ก label ตอนส่งกลับในคำตอบ ฝั่งผู้ดูแลโครงการระบุว่า hot-patch ใช้ได้กับรุ่น 6.0.0 ถึง 6.2.7

ประกาศผู้ดูแลโครงการต่างจากบัญชี KEV อย่างไร

สองเอกสารนี้บอกคนละเรื่อง ประกาศของผู้ดูแลโครงการเป็นการแจ้งว่ามีช่องโหว่ ออกรุ่นแก้แล้ว และเรียกร้องให้ทำตามขั้นตอนทันที โดยย้ำว่าให้ทำขั้นที่ 1 ก่อนเพื่อให้มีการป้องกันเบื้องต้นทันที แล้วจึงไปขั้นที่ 2

ส่วนบัญชี KEV เป็นรายการช่องโหว่ที่ CISA ระบุว่ามีการใช้โจมตีจริง และ CISA ใส่ช่องโหว่นี้ไว้ในบัญชีแล้ว ขณะที่ผู้ดูแลโครงการแจ้งเตือนและออกรุ่นแก้ สิ่งที่ CISA กำหนดให้ทำคือใช้มาตรการแก้ไขตามคำแนะนำของผู้พัฒนา ตามแนวทาง BOD 26-04 ว่าด้วยการจัดลำดับการอัปเดตความปลอดภัยตามความเสี่ยง

บัญชี KEV มีผลบังคับโดยตรงกับหน่วยงานรัฐบาลกลางสหรัฐฯ ส่วนองค์กรอื่นไม่ได้ถูกบังคับ แต่ใช้เป็นสัญญาณความเร่งด่วนได้ ถ้าช่องโหว่ขึ้นบัญชีนี้แล้ว แปลว่าเรื่องนี้ไม่ใช่ความเสี่ยงในทางทฤษฎีอีกต่อไป ผู้ดูแลระบบจึงควรจัดลำดับให้เครื่องที่รัน UnrealIRCd ได้อัปเดตก่อนงานทั่วไป

ขั้นตอนอุดช่องโหว่ เรียงตามลำดับ

ผู้ดูแลโครงการแนะนำให้ทำขั้นที่ 1 ก่อนเสมอ เพราะให้การป้องกันได้ทันที แล้วค่อยไปขั้นที่ 2a หรือ 2b ตามสภาพเครื่อง

  • ขั้นที่ 1: IRCOp เพิ่ม spamfilter ชั่วคราวที่บล็อกแท็ก label ที่ผิดรูปแบบ
  • ตรวจว่าทุกเซิร์ฟเวอร์ในเครือข่ายเป็นรุ่น 6.0.4 ขึ้นไปหรือไม่ เพราะ spamfilter ป้องกันได้เฉพาะกรณีนี้
  • ขั้นที่ 2a: รัน ./unrealircd hot-patch bundle-20261107 บนทุกเซิร์ฟเวอร์
  • ดูข้อความสุดท้ายว่าเป็น 'Patch installed and server rehashed correctly. All should be good now!'
  • ขั้นที่ 2b: ถ้าใช้ Windows หรือ hot-patch ไม่สำเร็จ ให้อัปเกรดเป็น 6.2.7.1
  • ตรวจว่าแพตช์ติดจริง (ใช้ได้กับรุ่น 6.0.2 ขึ้นไป)

คำสั่ง spamfilter ในขั้นที่ 1 มีรูปแบบ regex ที่ต้องพิมพ์ให้ตรงทุกตัวอักษร ควรคัดลอกจากประกาศต้นฉบับของผู้ดูแลโครงการบน oss-sec โดยตรง ไม่ควรพิมพ์เองจากความจำ คำสั่งนี้เพิ่มกฎชื่อ Invalid_label เพื่อบล็อกข้อความที่แท็ก label มีอักขระต้องห้าม ผู้ดูแลโครงการเตือนว่ากฎนี้ป้องกันช่องโหว่หลักได้เฉพาะเมื่อทุกเซิร์ฟเวอร์เป็นรุ่น 6.0.4 ขึ้นไป และไม่ได้แก้อีก 8 รายการ จึงห้ามหยุดแค่ขั้นนี้

ขั้นที่ 2a ใช้ได้กับ UnrealIRCd 6.0.0 ถึง 6.2.7 ผู้ดูแลโครงการระบุว่า hot-patch ไม่ต้องรีสตาร์ต จึงไม่มีช่วงเซิร์ฟเวอร์ล่ม ต้องรันคำสั่งนี้บนทุกเครื่องในเครือข่าย ไม่ใช่เครื่องใดเครื่องหนึ่ง ถ้าไม่เห็นข้อความสำเร็จตามด้านบน ให้อ่านหน้า FAQ เรื่อง hot-patching failed ที่ประกาศอ้างถึง ซึ่งมีหลายกรณี รวมถึงกรณีอัปเกรดดิสโทรแล้วทำให้การคอมไพล์พัง

ผู้ใช้ Windows ใช้ hot-patch ไม่ได้ ต้องอัปเกรดเป็น 6.2.7.1 เช่นเดียวกับเครื่อง *NIX ที่ hot-patch ไม่สำเร็จ หลังแพตช์เสร็จ ผู้ดูแลโครงการแนะนำให้ตรวจซ้ำว่าแพตช์ติดแล้วจริง โดยมีคำสั่งตรวจในประกาศต้นฉบับสำหรับรุ่น 6.0.2 ขึ้นไป

สิ่งที่ต้องเช็กต่อหลังอุดช่องโหว่

ถ้าคุณติดตั้ง UnrealIRCd จากแพ็กเกจของดิสโทรลินุกซ์ ให้ตรวจรุ่นกับผู้ดูแลแพ็กเกจของดิสโทรนั้นเอง ในรายงานของ Red Hat ที่ลงไว้ไม่นานหลังออกรุ่นแก้ ผู้ใช้รายหนึ่งระบุว่า EPEL 9 ยังแจกรุ่น 6.1.10 ซึ่งอยู่ในช่วงรุ่นที่โดน และส่งแพตช์อัปเกรดเป็น 6.2.7.1 ให้ผู้ดูแลแพ็กเกจ นั่นเป็นสถานะ ณ ตอนที่รายงาน ไม่ได้บอกสถานะปัจจุบัน แพ็กเกจจากดิสโทรอาจตามรุ่นต้นทางช้ากว่า จึงไม่ควรเดาว่าแพตช์ลงแล้ว

สำหรับเครือข่ายที่ยังรัน UnrealIRCd รุ่นหมดอายุสนับสนุน ได้แก่ 3.2.x, 4 และ 5 ควรอ่านคำแนะนำของผู้ดูแลโครงการเอง และไม่ควรสรุปเองว่ารุ่นเหล่านี้ปลอดภัยหรือไม่

ที่มา: ไฟล์ Known Exploited Vulnerabilities Catalog ของ CISA, ประกาศ UnrealIRCd 6.2.7.1 released and hot-patch (CVE-2026-114713) ของ Bram Matthys บนรายชื่อส่งเมล oss-sec และรายงานหมายเลข 2568818 บน Red Hat Bugzilla

บทความที่เกี่ยวข้อง