
ไลบรารี ruby-saml ไลบรารีที่เป็นส่วนประกอบสำคัญของการทำ single sign-on บริการจำนวนมาก มีช่องโหว่จากความผิดพลาดในการ parse ค่า XML เปิดทางให้แฮกเกอร์สามารถปลอมตัวเป็นผู้ใช้อื่นได้
ช่องโหว่นี้ถูกพบจากโครงการรายงานช่องโหว่ของ GitHub ที่กำลังพิจารณาย้ายมาใช้ไลบรารี ruby-saml หลังจากเคยใช้งานมาตั้งแต่ปี 2014 แต่ถอดออกไปใช้ไลบรารีของตนเอง เมื่อพิจารณานำกลับมาใช้อีกครั้งจึงเปิด test environment ให้นักวิจัยเข้ามาทดสอบ
ruby-saml นั้นอาศัยไลบรารีอ่าน XML สองตัวพร้อมกัน คือ REXML และ Nokogiri นักวิจัยมุ่งหาบั๊ก Parser differentials ที่หาความแตกต่างในการอ่านข้อมูลเดียวกันจากไลบรารีสองตัว และก็พบว่าบางกรณีมีความต่างกันจริงๆ เปิดทางให้แฮกเกอร์สร้าง XML ที่ได้จากการล็อกอินปกติมาดัดแปลงเป็นผู้ใช้อื่นในระบบได้
ความผิดพลาดประการหนึ่งที่เป็นสาเหตุของช่องโหว่นี้คือ Nokogiri นั้นรายงานความผิดพลาดในการ parse XML แล้ว แต่ ruby-saml ไม่ได้ดักเอาไว้ เนื่องจาก Nokogiri รายงานความผิดพลาดแจ้งในผลการ parse แล้วเติมฟิลด์ errors
แทนที่จะแสดงความผิดพลาดอย่างชัดแจ้ง เช่นทำให้เกิด exception
ช่องโหว่นี้มีแพตช์แล้วตั้งแต่วันที่ 12 มีนาคมที่ผ่านมา และ GitLab ก็ได้แจ้งเตือนก่อนหนึ่งเดือนเพราะใช้ไลบรารีเดียวกัน ขณะที่การแก้ไขระยะยาวนั้นทาง ruby-saml เตรียมจะยุบ XML parser เหลือตัวเดียว
ที่มา - GitHub
Comments
ก็ได้แจ้งเตือน