จุดบกพร่องใน BIND 9.16.17 ที่ทำให้อักขระ W ถูกจัดการอย่างไม่ถูกต้องในการสืบค้น DNS

การอัปเดตแก้ไขได้รับการเผยแพร่สำหรับสาขา BIND 9.16.18 ที่เสถียรและสาขาทดลอง 9.17.15 ที่อยู่ระหว่างการพัฒนา ซึ่งแก้ไขข้อบกพร่องร้ายแรงที่ปรากฏใน BIND 9.16.17 และ 9.17.14 ที่เผยแพร่เมื่อสัปดาห์ที่แล้ว (วันหลังจากนี้ นักพัฒนาได้เตือนเกี่ยวกับปัญหาและแนะนำว่าอย่าติดตั้งเวอร์ชัน 9.16.17 และ 9.17.14)

ในเวอร์ชัน 9.16.17 และ 9.17.14 อักขระ "w" ถูกตัดออกจากตารางการจับคู่อักขระตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ (maptoupper และ maptolower) ซึ่งส่งผลให้มีการแทนที่อักขระ "W" และ "w" ในชื่อโดเมนด้วย ลำดับ "\000" "และส่งคืนผลลัพธ์ที่ไม่ถูกต้องเมื่อประมวลผลคำขอโดยใช้มาสก์ ตัวอย่างเช่น หากโซน DNS มีบันทึก “*.sub.test.local 1 คำขอชื่อ UVW.sub.test.local 127.0.0.1″ ทำให้เกิดการตอบกลับที่ส่งคืนชื่อ "uv/000.sub.test.local" แทนที่จะเป็น "uvw.sub.test.local"

นอกจากนี้ ยังพบปัญหาในการแทนที่อักขระ “w” ด้วย “\000” ในระหว่างการอัปเดตโซนไดนามิก หากกรณีของอักขระ “w” ในคำขอแตกต่างจากกรณีในโซน DNS ตัวอย่างเช่น หากมีการส่งการอัปเดตสำหรับ "foo.ww.example" เมื่อมีบันทึก "WW.example" ในโซน การอัปเดตนั้นจะถูกประมวลผลเป็น "foo.\000\000.example" ปัญหาเกี่ยวกับการทดแทนอักขระอาจเกิดขึ้นเมื่อทำการถ่ายโอนโซนจากเซิร์ฟเวอร์ DNS หลักไปยังเซิร์ฟเวอร์ DNS รอง

การเผยแพร่อัพเดต 9.16.18 ล่าช้าเนื่องจากการระบุข้อผิดพลาดอีกสองข้อที่ยังไม่ได้รับการแก้ไขในเวอร์ชัน 9.16.18 และ 9.17.15 ข้อผิดพลาดส่งผลให้เกิดการหยุดชะงักระหว่างการเริ่มต้น และเกิดขึ้นในการกำหนดค่าที่นโยบาย dnssec ใช้โซนเดียวกันในมุมมองที่ต่างกัน ผู้ใช้ที่มีการตั้งค่าดังกล่าวควรดาวน์เกรดเป็น BIND เวอร์ชัน 9.16.16

ที่มา: opennet.ru

เพิ่มความคิดเห็น