BIND 9 Update แก้ไขช่องโหว่ 14 รายการ รวมถึงช่องโหว่ที่ทำให้ Server Crash ผ่าน DNS-over-HTTPS โดยไม่ต้องผ่านการยืนยันตัวตน

Internet Systems Consortium (ISC) ได้เผยแพร่ BIND 9.20.29 และ 9.21.26 เพื่อแก้ไขช่องโหว่ด้านความปลอดภัยจำนวน 14 รายการที่เปิดเผยเมื่อวันที่ 16 กันยายน ใน BIND 9 ซึ่งเป็นซอฟต์แวร์ DNS server แบบ Open Source โดยหนึ่งในช่องโหว่ดังกล่าวส่งผลกระทบต่อ BIND server ที่ให้บริการตอบ DNS-over-HTTPS (DoH)

ผู้ส่งที่ไม่มี Credentials สามารถทำให้ process ของ Server ที่ชื่อ named Crash ได้ด้วย Request เพียงครั้งเดียว ซึ่ง Request ดังกล่าวต้องมี SIG(0) signature ที่ไม่ถูกต้อง และผู้ส่งต้องปิด Connection ก่อนที่ named จะตรวจสอบ signature เสร็จสิ้น

ISC ระบุใน Security Advisories ว่า ยังไม่พบข้อมูลว่าช่องโหว่ทั้ง 14 รายการถูกนำไปใช้โจมตีจริงแต่อย่างใด

Release ที่ได้รับการแก้ไข ซึ่งระบุไว้ใน Release Notes ของ ISC ได้แก่:

  • BIND 9.20.29 ซึ่งอยู่ใน Stable Branch ปัจจุบัน: แก้ไขช่องโหว่ทั้ง 14 รายการ
  • BIND 9.21.26 ซึ่งอยู่ใน Development Branch: แก้ไข 13 รายการ เนื่องจาก CVE-2026-19662 ไม่ส่งผลกระทบต่อ 9.21
  • BIND 9.20.29-S1 ซึ่งเป็น Supported Preview Edition สำหรับลูกค้าที่ได้รับ Support: แก้ไขช่องโหว่ทั้ง 14 รายการ

ISC ไม่ได้ระบุ Workaround สำหรับช่องโหว่ทั้ง 14 รายการ

ช่องโหว่ 12 จาก 14 รายการยังส่งผลกระทบต่อ Branch รุ่นเก่าอย่าง 9.18 จนถึงและรวมถึง 9.18.50 ซึ่งเป็น Release สุดท้าย โดย ISC ยุติการ Support BIND 9.18 ตั้งแต่สิ้นเดือนมิถุนายน และไม่ได้ระบุ BIND 9.18 Release ใดที่แก้ไขช่องโหว่เหล่านี้

ISC ระบุในเดือนพฤษภาคมว่า ผู้ใช้งาน BIND 9.18 ควรวางแผนอัปเดตเป็น BIND 9.20 โดยเร็วที่สุด ขณะที่ Vulnerability Matrix ของ ISC ระบุเพิ่มเติมว่า "ควรสันนิษฐานว่าเวอร์ชันที่หมดอายุการใช้งานแล้วอาจมีความเสี่ยงต่อช่องโหว่ CVE ใหม่ ๆ"

ส่วน Package ที่มาจาก Operating System ถือเป็นอีกประเด็นหนึ่ง โดย Debian 12 มาพร้อม Package ที่อ้างอิงจาก BIND 9.18.49 และ Security Tracker ของ Debian ยังไม่ได้ระบุช่องโหว่ทั้ง 14 รายการ ณ วันที่ 17 กันยายน

สิ่งที่ผู้โจมตีต้องมี

ช่องโหว่ 2 รายการสามารถถูก Trigger ได้จาก Request เพียงอย่างเดียว โดยผู้โจมตีไม่จำเป็นต้องมี DNS server ของตนเอง และทั้งสองรายการส่งผลกระทบเฉพาะ BIND Branch 9.20 และ 9.21 เท่านั้น โดยช่องโหว่ DoH Crash คือ CVE-2026-77692 ส่วนอีกช่องโหว่คือ CVE-2026-76163 ซึ่งทำให้ named Crash เมื่อได้รับ Query ประเภท TKEY ในกรณีที่ไฟล์ named.conf ของ Server ไม่มี Global Options Block

ช่องโหว่ที่ทำให้เกิด Crash รายการอื่นจำเป็นต้องมี Recursive Resolver ซึ่งเป็น Server ที่ทำหน้าที่ค้นหา Name แทน Client เพื่อรับข้อมูลที่ถูกสร้างขึ้นเป็นพิเศษ (Crafted Data) จาก Server ที่ผู้โจมตีควบคุม

Response ที่ถูกสร้างขึ้นเป็นพิเศษเพียงครั้งเดียวสามารถทำให้ Resolver ที่ใช้ Default Configuration Crash ได้ (CVE-2026-19667), ทำให้ Resolver ที่ใช้ dns64 ร่วมกับ break-dnssec yes Crash (CVE-2026-19666) หรือทำให้ Validating Resolver Crash เมื่อได้รับ Wildcard Answer ที่มีทั้ง NSEC และ NSEC3 Proofs (CVE-2026-80274) ส่วน CVE-2026-19662 ต้องอาศัยลำดับ และ Timing ของ Answer ที่เฉพาะเจาะจง และไม่ส่งผลกระทบต่อ BIND 9.21

ช่องโหว่อีก 4 รายการสามารถใช้ทรัพยากร CPU หรือ Memory ของ Resolver จนหมด แทนที่จะทำให้ Server Crash โดย 2 รายการเกิดขึ้นผ่าน Cached SVCB/HTTPS Alias Records ได้แก่ CVE-2026-81563 และ CVE-2026-81736 โดย ISC จัดระดับช่องโหว่ 7 จาก 14 รายการเป็นระดับ High และทั้งหมดมีคะแนน 7.5 ตาม CVSS 3.1 ซึ่งรวมช่องโหว่ที่ทำให้ Crash ที่กล่าวถึงข้างต้น ยกเว้น CVE-2026-19662 รวมถึงช่องโหว่ SVCB/HTTPS อีก 2 รายการ ส่วนอีก 7 รายการถูกจัดเป็นระดับ Medium โดยมีคะแนนตั้งแต่ 5.3 ถึง 6.5

ช่องโหว่อีก 4 รายการเกี่ยวข้องกับ Integrity ของ DNS Data หรือข้อมูลที่ Server ให้บริการ หรือ Resolver ยอมรับ มากกว่าการทำให้ระบบ Crash หรือใช้ทรัพยากรจนหมด โดย ISC จัดทั้ง 4 รายการเป็นระดับ Medium และแต่ละรายการมีเงื่อนไขเกี่ยวกับตำแหน่งที่ผู้โจมตีอยู่ หรือสิ่งที่ผู้โจมตีสามารถควบคุมได้

ช่องโหว่ 2 รายการสามารถทำให้ Validating Resolver ยอมรับ DNSSEC Proof ที่ไม่ถูกต้องได้ โดยในกรณี CVE-2026-19941 ผู้โจมตีสามารถใช้ Signed NSEC Record จาก Zone ที่ไม่เกี่ยวข้องให้ถูกนำไปใช้เป็น Proof ว่าไม่มี Wildcard อยู่ได้ ผู้โจมตีแบบ On-path หรือ Malicious Forwarder ที่ควบคุม Signed Zone สามารถใช้ช่องโหว่นี้เพื่อทำให้ Forged NXDOMAIN Answer สำหรับชื่อที่ควร Resolve ผ่าน Wildcard ถูกยอมรับ และ Answer ดังกล่าวจะผ่าน DNSSEC Validation

สำหรับ CVE-2026-77119 Signed NSEC3 Record จาก Unrelated Sibling Zone สามารถถูกใช้เป็น Proof ว่า Delegation ไม่มีการใช้ DNSSEC ได้ ผู้โจมตีที่สามารถ Inject Response เข้าไปใน Query ของ Resolver อาจทำให้ Forged Unsigned Answer ถูกยอมรับสำหรับชื่อที่อยู่ภายใต้ Delegation ดังกล่าว โดย ISC อธิบายผลลัพธ์ของทั้งสองช่องโหว่นี้ว่าเป็น Cache Poisoning

CVE-2026-19033 เกี่ยวข้องกับ Secondary Server ที่ Copy Zone จาก Primary และยอมรับเฉพาะ Transfer ที่ Signed ด้วย TSIG Key เท่านั้น ระหว่างการทำ Multi-message Incremental Transfer (IXFR) ผ่าน TCP, named อาจเริ่มให้บริการข้อมูล Zone ใหม่ก่อนที่ Message สุดท้ายซึ่งมี Signature จะมาถึง และจะไม่ Rollback หาก Signature ดังกล่าวไม่มาถึง ผู้ที่สามารถส่ง Transfer ในลักษณะดังกล่าวอาจทำให้ Server ให้บริการ Zone Contents โดยไม่ได้รับอนุญาต แม้จะไม่มี Key ก็ตาม

การแก้ไขกำหนดให้มี TSIG ในทุก Message ของ Incoming Transfer และ ISC ระบุว่า Name Server รุ่นใหม่มีการ Sign ทุก Message อยู่แล้ว ดังนั้นจึงคาดว่าจะไม่มีการเปลี่ยนแปลงในทางปฏิบัติ

CVE-2026-78301 ต้องอาศัยสิทธิ์ในการเข้าถึงมากขึ้น โดยผู้โจมตีต้องสามารถนำ Malformed Zone ไป Load บน Authoritative Server ได้ เช่น ผ่าน Zone Transfer จากนั้น Zone ที่มี NS หรือ DNAME Node อยู่เหนือ Origin ของตัวเองจะถูกปฏิบัติเสมือนเป็น Zone Cut ส่งผลให้ Query สำหรับชื่อภายใน Zone ส่งกลับ Out-of-zone Delegation แทนที่จะส่งข้อมูลของ Zone ดังกล่าว

หาก Server ดังกล่าวทำหน้าที่ Recursive ด้วย ก็สามารถ Follow Delegation และ Cache Records ที่ผู้โจมตีเป็นผู้กำหนดสำหรับชื่อที่อยู่นอก Zone ได้ และผลกระทบจะคงอยู่ตราบเท่าที่ Malformed Zone ยังคงถูก Load อยู่

The Fourteen Flaws

Supported Preview Edition ได้รับผลกระทบในช่วง -S1 ที่สอดคล้องกัน และได้รับการแก้ไขใน 9.20.29-S1 โดยคะแนนต่าง ๆ เป็นการจัดอันดับตาม CVSS 3.1 ของ ISC เอง

สถานะการถูกโจมตี และ Public Tests

Security Advisories ทั้ง 14 รายการของ ISC ซึ่งเผยแพร่เมื่อวันที่ 16 กันยายน ระบุว่า "not aware of any active exploits" หรือยังไม่พบข้อมูลเกี่ยวกับการ Exploit ที่กำลังเกิดขึ้นจริง และช่องโหว่ทั้ง 14 รายการยังไม่ปรากฏใน CISA Known Exploited Vulnerabilities (KEV) Catalog ณ Version ของ Catalog ที่เผยแพร่ในวันเดียวกัน

อย่างไรก็ตาม มี Tests ที่สามารถ Reproduce ช่องโหว่เหล่านี้เผยแพร่สู่สาธารณะแล้ว โดย ISC ระบุในเดือนพฤษภาคมว่า ต่อจากนี้จะเผยแพร่ Reproduction Tests เมื่อมีการเปิดเผยช่องโหว่ และ Source Tree ของ 9.20.29 ได้เพิ่ม System Tests สำหรับช่องโหว่อย่างน้อย 6 จาก 14 รายการ รวมถึง Test หนึ่งที่ส่ง Invalid SIG(0) Request ผ่าน DoH จากนั้นปิด Connection และตรวจสอบว่า named ยังคงทำงานอยู่

Tests เหล่านี้มีจุดประสงค์เพื่อยืนยันว่า Fix สามารถแก้ไขปัญหาได้ ไม่ใช่ Attack Tools แต่รายละเอียดดังกล่าวช่วยระบุเงื่อนไขที่สามารถ Trigger ช่องโหว่ได้อย่างชัดเจน

ช่องโหว่จำนวน 14 รายการถือเป็นจำนวนสูงสุดในบรรดา BIND Security Releases ทั้ง 5 ครั้งของ ISC ในปีนี้ โดยก่อนหน้านี้มีช่องโหว่ 1 รายการในเดือนมกราคม, 4 รายการในเดือนมีนาคม, 6 รายการในเดือนพฤษภาคม และ 9 รายการในเดือนกรกฎาคม

ISC เตือนในเดือนพฤษภาคมว่า ผู้ใช้งานควรคาดว่าจะมีการแก้ไขช่องโหว่ด้านความปลอดภัยในทุกการอัปเดตบำรุงรักษา BIND รายเดือนตลอดช่วงที่เหลือของปี 2026 โดยระบุว่าการเปลี่ยนแปลงดังกล่าวเกิดจากจำนวน Vulnerability Reports ที่เพิ่มขึ้นอย่างมาก ซึ่งถูกสร้างขึ้นโดย Large Language Models ทั้งจากนักวิจัย และผู้โจมตี

Fixes เหล่านี้ถูกนำมาออกใน 9.20.29 แทนที่จะเป็น 9.20.28 เนื่องจาก ISC ได้ถอน 9.20.28 ก่อนการ Release หลังจากการทดสอบก่อนเผยแพร่พบ Regression

ช่องโหว่ 4 จาก 14 รายการถูกค้นพบจากการทดสอบภายในของ ISC ส่วนที่เหลือถูกรายงานโดย Vitaly Simonovich (CVE-2026-77692), Rintaro Kawasugi (CVE-2026-19666 และ CVE-2026-19667), Samy Medjahed (Ap4sh) (CVE-2026-19662 และ CVE-2026-81563), Henrique Pereira (CVE-2026-78301 และ CVE-2026-81736), Owais Lone (thesecguy) (CVE-2026-76163), นักวิจัยที่ใช้ชื่อ hythyt (CVE-2026-80274), และ Zuyao Xu กับ Xiang Li จาก Nankai University (CVE-2026-19668)

ที่มา : thehackernews