ช่องโหว่บัฟเฟอร์ล้นใน libssh

มีการระบุช่องโหว่ (CVE-2-2) ในไลบรารี libssh (อย่าสับสนกับ libssh2021) ซึ่งได้รับการออกแบบมาเพื่อเพิ่มการรองรับไคลเอ็นต์และเซิร์ฟเวอร์สำหรับโปรโตคอล SSHv3634 ให้กับโปรแกรม C ซึ่งนำไปสู่บัฟเฟอร์ล้นเมื่อเริ่มกระบวนการคีย์ใหม่ ใช้การแลกเปลี่ยนคีย์ที่ใช้อัลกอริธึมการแฮชที่แตกต่างกัน ปัญหานี้ได้รับการแก้ไขแล้วในรุ่น 0.9.6

สาระสำคัญของปัญหาคือการดำเนินการเปลี่ยนคีย์อนุญาตให้ใช้แฮชที่เข้ารหัสลับที่มีขนาดคาสต์ที่แตกต่างจากอัลกอริธึมที่ใช้เดิม ในเวลาเดียวกัน หน่วยความจำสำหรับแฮชใน libssh ได้รับการจัดสรรตามขนาดแฮชดั้งเดิม และการใช้ขนาดแฮชที่ใหญ่ขึ้นจะทำให้ข้อมูลถูกเขียนทับเกินขอบเขตบัฟเฟอร์ที่จัดสรร ในฐานะที่เป็นวิธีการรักษาความปลอดภัยสำรอง คุณสามารถจำกัดรายการวิธีการแลกเปลี่ยนคีย์ที่รองรับเฉพาะอัลกอริทึมที่มีขนาดแฮชเท่ากันได้ ตัวอย่างเช่น หากต้องการเชื่อมโยงกับ SHA256 คุณสามารถเพิ่มลงในโค้ด: rc = ssh_options_set(s->ssh.session, SSH_OPTIONS_KEY_EXCHANGE, "diffie-hellman-group14-sha256,curve25519-sha256,ecdh-sha2-nistp256");

ที่มา: opennet.ru

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