Mattermost รายงานถึงช่องโหว่ของไลบรารี encoding/xml
ในภาษา Go ที่พบมาตั้งแต่เดือนสิงหาคมที่ผ่านมา แต่ผลกระทบเป็นวงกว้างมากจนกระทั่งต้องนัดแนะกันออกแพตช์พร้อมๆ กัน
บั๊กของไลบรารี encoding/xml
แยกออกเป็นสามตัว คือ CVE-2020-29509, CVE-2020-29510, และ CVE-2020-29511 แต่ความผิดพลาดคล้ายกันคือการประมวลผล XML ซ้ำๆ กันหลายๆ รอบกลับได้ผลในแต่ละรอบไม่เหมือนกัน
แม้บั๊กจะดูไม่ร้ายแรง แต่โปรโตคอล SAML ที่ใช้ล็อกอินจากระบบบัญชีศูนย์กลาง (โปรโตคอลแบบเดียวกับ OAuth แต่นิยมในซอฟต์แวร์ระดับองค์กรมากกว่า) อาศัยผลการอ่านข้อมูล XML ที่เหมือนกันทุกครั้งเพื่อรับประกันความปลอดภัย บั๊กนี้ทำให้เซิร์ฟเวอร์ SAML ถูกหลอกได้ หากแฮกเกอร์ออกแบบ XML มุ่งร้ายเพื่อปลอมตัวเป็นคนอื่นในระบบ
ไลบรารี SAML ที่พัฒนาด้วยภาษา Go ปล่อยแพตช์ในวันนี้พร้อมกัน ได้แก่ Dex IDP ออกเวอร์ชั่น 2.27.0, crewjam/saml ปล่อยเวอร์ชั่น 0.4.3, และ russellhaering/gosaml2 ออกเวอร์ชั่น 0.6.0 และตอนนี้ผู้พัฒนาแอปพลิเคชั่นที่ใช้ไลบรารีเหล่านี้ก็ได้รับข้อมูลล่วงหน้าบ้างแล้ว ทำให้ระบบเหล่านี้น่าจะประกาศปล่อยอัพเดตออกมาอย่างต่อเนื่องหลังจากนี้
ปัญหาใหญ่คือ API ของ encoding/xml
ที่ออกแบบไว้ไม่สามารถแก้ปัญหาจากบั๊กที่ Mattermost รายงานออกมาได้ ทำให้ต้องออก API ใหม่ โดยคาดว่าจะออกได้ใน Go 1.16 ทำให้ระหว่างนี้อาจจะมีการอัพเดตแก้ไขเพื่อไปใช้ API ใหม่อีกครั้ง
ที่มา - Mattermost