นักวิจัยด้านความปลอดภัยจาก F5 Labs ได้ค้นพบช่องโหว่ด้านความปลอดภัยร้ายแรง 9 จุดใน HashiCorp Vault ซึ่งเป็นเครื่องมือยอดนิยมที่บริษัทต่างๆ ใช้สำหรับจัดการรหัสผ่าน คีย์ และข้อมูลสำคัญอื่นๆ การค้นพบนี้เกิดขึ้นหลังจากการตรวจสอบโค้ดอย่างละเอียดเป็นเวลาเกือบ 2 ปี และส่งผลกระทบต่อทั้ง Vault เวอร์ชัน Enterprise ที่เสียเงินและเวอร์ชัน Open Source ที่ใช้ฟรี
ช่องโหว่เหล่านี้มีตั้งแต่การข้ามการตรวจสอบตัวตนไปจนถึงการดำเนินโค้ดจากระยะไกล โดยบางช่องโหว่มีอยู่ในโค้ดมานานถึง 9 ปี ปัญหาเหล่านี้อาจทำให้ผู้โจมตีสามารถเข้าถึงสิทธิ์ผู้ดูแลระบบ ขโมยข้อมูลลับ และอาจควบคุมระบบ Vault ได้อย่างสมบูรณ์
ช่องโหว่รักษาความปลอดภัยร้ายแรง 9 รายการที่ถูกค้นพบ (พฤษภาคม-มิถุนายน 2025)
• CVE-2025-6010 - [เริ่มต้นถูกปิดบัง ปัจจุบันเปิดเผยแล้วว่าเป็นการระบุชื่อผู้ใช้] • CVE-2025-6004 - การหลีกเลี่ยงการล็อกเอาต์ผ่านการเปลี่ยนตัวพิมพ์และการปรับปรุงข้อมูลนำเข้า • CVE-2025-6011 - การระบุชื่อผู้ใช้แบบอิงเวลา • CVE-2025-6003 - การหลีกเลี่ยงการบังคับใช้ MFA ผ่านการกำหนดค่า LDAP • CVE-2025-6013 - การสร้าง EntityID หลายรายการใน LDAP • CVE-2025-6016 - จุดอ่อนในการใช้งาน TOTP MFA • CVE-2025-6037 - การปลอมแปลงเอนทิตีใบรับรอง (มีอยู่มากกว่า 8 ปี) • CVE-2025-5999 - การยกระดับสิทธิ์ Root ผ่านการปรับปรุงนโยบาย • CVE-2025-6000 - การดำเนินโค้ดระยะไกลผ่านการใช้ plugin catalog ในทางที่ผิด (มีอยู่ 9 ปี)
ความล้มเหลวในการตรวจสอบตัวตนและการอนุญาตนำไปสู่การบุกรุกระบบ
การค้นพบที่น่าเป็นห่วงที่สุดเกี่ยวข้องกับการควบคุมความปลอดภัยพื้นฐานที่ไม่ทำงานตามที่ตั้งใจไว้ นักวิจัยพบวิธีการข้ามข้อกำหนดการเข้าสู่ระบบได้อย่างสมบูรณ์ หลอกระบบให้มอบสิทธิ์ที่สูงกว่าที่ตั้งใจไว้ และแม้กระทั่งปลอมตัวเป็นผู้ใช้คนอื่นได้อย่างสมบูรณ์
การโจมตีที่ชาญฉลาดเป็นพิเศษอย่างหนึ่งเกี่ยวข้องกับการใช้ประโยชน์จากวิธีที่ Vault จัดการการปรับข้อความให้เป็นมาตรฐาน ซึ่งเป็นกระบวนการแปลงข้อความให้เป็นรูปแบบมาตรฐาน ระบบจะปรับชื่อผู้ใช้ให้เป็นมาตรฐานแตกต่างกันในส่วนต่างๆ ของโค้ด ทำให้เกิดความไม่สอดคล้องกันที่ผู้โจมตีสามารถใช้ประโยชน์ได้ ตอนอย่าง ผู้โจมตีอาจสร้างรูปแบบต่างๆ ของชื่อผู้ใช้ผู้ดูแลระบบที่จะข้ามการตรวจสอบความปลอดภัยในบางพื้นที่ในขณะที่ยังคงได้รับการยอมรับว่าถูกต้องในพื้นที่อื่นๆ
การปรับข้อความให้เป็นมาตรฐาน: กระบวนการแปลงข้อความให้เป็นรูปแบบที่สอดคล้องกัน เช่น การแปลงตัวอักษรทั้งหมดเป็นตัวพิมพ์เล็กหรือการลบอักขระพิเศษออก
หมวดหมู่ช่องโหว่และผลกระทบ
การข้ามการยืนยันตัวตน
- การรั่วไหลของ TOTP secret และการโจมตีแบบ brute force
- การข้ามผ่านด้วยการเปลี่ยนตัวพิมพ์ใหญ่เล็กในการยืนยันตัวตน userpass
- ความไม่ตรงกันของการทำให้เป็นมาตรฐานของข้อมูลนำเข้าใน LDAP
การข้ามการอนุญาต
- การจัดการ group claims ของ OIDC
- การหลีกเลี่ยงการบังคับใช้ MFA
- การใช้ประโยชน์จากช่องโหว่ในการทำให้นโยบายเป็นมาตรฐาน
การปลอมแปลงตัวตน
- การสร้าง alias ซ้ำกันของ JWT
- การปลอมแปลงเอนทิตีของใบรับรอง
- การสร้าง EntityID หลายตัวสำหรับตัวตนเดียวกัน
ช่องโหว่การดำเนินโค้ดจากระยะไกลเปิดเผยความเสี่ยงวิกฤต
ช่องโหว่ที่อันตรายที่สุดอาจจะคือการที่ผู้โจมตีสามารถดำเนินโค้ดของตนเองบนเซิร์ฟเวอร์ Vault ได้ ซึ่งหมายความว่าพวกเขาสามารถควบคุมระบบได้อย่างสมบูรณ์ ช่องโหว่นี้มีอยู่มาเป็นเวลา 9 ปีและทำงานโดยการหลอกระบบปลั๊กอินของ Vault ให้ถือว่าข้อมูลบันทึกการตรวจสอบเป็นโค้ดที่สามารถดำเนินการได้
ห่วงโซ่การโจมตีมีความซับซ้อนแต่ทำลายล้างมาก ผู้โจมตีที่มีสิทธิ์ผู้ดูแลระบบสามารถจัดการบันทึกการตรวจสอบให้รวมโค้ดที่เป็นอันตราย จากนั้นใช้ประโยชน์จากข้อบกพร่องการยกระดับสิทธิ์แยกต่างหากเพื่อเข้าถึงสิทธิ์ root การยกระดับสิทธิ์ทำงานได้เพราะการตรวจสอบความปลอดภัยมองหาข้อความ root ที่แน่นอน แต่กระบวนการเลือกโทเค็นจริงทำความสะอาดข้อมูลที่ป้อนเข้า ทำให้รูปแบบต่างๆ เช่น ROOT สามารถผ่านเข้าไปได้
การตอบสนองของชุมชนเน้นย้ำถึงความท้าทายในการเปิดเผยข้อมูล
การเปิดเผยช่องโหว่เหล่านี้ได้จุดประกายการอภิปรายเกี่ยวกับการรายงานความปลอดภัยอย่างรับผิดชอบ โดยเฉพาะเกี่ยวกับ OpenBao ซึ่งเป็น fork ที่ชุมชนดูแลรักษาของ Vault ผู้ดูแล OpenBao แสดงความผิดหวังที่พวกเขาไม่ได้รับแจ้งเกี่ยวกับช่องโหว่ก่อนการเปิดเผยต่อสาธารณะ ทำให้พวกเขาต้องรีบแก้ไขความปลอดภัย
สถานการณ์นี้เน้นย้ำถึงความท้าทายที่เพิ่มขึ้นในโลกโอเพนซอร์ส เมื่อโปรเจกต์แยกออกไปและพัฒนาแยกกัน นักวิจัยด้านความปลอดภัยต้องเผชิญกับการตัดสินใจที่ยากเกี่ยวกับโปรเจกต์ใดที่ควรแจ้งในระหว่างช่วงเวลาการเปิดเผยอย่างรับผิดชอบ ทีม OpenBao ได้ทำงานอย่างรวดเร็วเพื่อแก้ไขโค้ดที่ได้รับผลกระทบและยินดีต้อนรับการร่วมมือกับนักวิจัยด้านความปลอดภัยในอนาคต
วิธีการวิจัยและเครื่องมือ
ระยะเวลา: การสืบสวนเกือบ 2 ปีโดย F5 Labs
แนวทาง:
- การตรวจสอบโค้ดด้วยตนเองร่วมกับการวิเคราะห์แบบคงที่
- มุ่งเน้นที่ส่วนประกอบการรับรองความถูกต้อง การระบุตัวตน และการให้สิทธิ์
- การตรวจสอบที่ไปไกลกว่าเอกสารสาธารณะ
เครื่องมือที่ใช้:
- VS Code (โปรแกรมแก้ไขข้อความ)
- GoLand (สภาพแวดล้อมการพัฒนา)
- Semgrep (เครื่องมือวิเคราะห์โค้ดแบบคงที่)
เวอร์ชันที่ได้รับผลกระทบ: ทั้ง Vault Enterprise และ Vault Open Source editions
ปัญหาหนี้ทางเทคนิคและความกังวลเรื่องคุณภาพโค้ดผุดขึ้นมา
การอภิปรายของชุมชนเผยให้เห็นความกังวลที่ลึกซึ้งยิ่งขึ้นเกี่ยวกับคุณภาพโค้ดของ Vault นักพัฒนาหลายคนที่เคยทำงานกับโค้ดของ Vault อธิบายว่ามันมีปัญหา โดยมีคนหนึ่งสังเกตว่าการทดสอบคุณสมบัติเผยให้เห็นข้อบกพร่องและกรณีขอบมากมายที่บ่งบอกว่าแนวทางการทดสอบไม่เพียงพอ
โค้ดเบสนั้นยุ่งเหยิงสุดๆ จำนวนข้อบกพร่องและกรณีขอบแปลกๆ ที่ฉันพบด้วยการทดสอบคุณสมบัติ quickcheck ของ API ของพวกเขานั้นน่าตกใจ และทำให้ฉันคิดว่าชุดทดสอบของพวกเขาไม่เพียงพออย่างน่าเศร้า
ปัญหาคุณภาพเหล่านี้ไม่ใช่แค่ความกังวลทางวิชาการ แต่ส่งผลกระทบต่อความปลอดภัยโดยตรง ช่องโหว่ที่ค้นพบหลายอย่างเกิดจากการจัดการสตริงและตรรกะการปรับให้เป็นมาตรฐานที่ไม่สอดคล้องกันกระจัดกระจายไปทั่วโค้ดเบส แทนที่จะถูกรวมศูนย์และตรวจสอบอย่างเหมาะสม
ทีมวิจัยใช้การรวมกันของการตรวจสอบโค้ดด้วยตนเองและเครื่องมือวิเคราะห์แบบคงที่อัตโนมัติเพื่อค้นหาปัญหาเหล่านี้ แนวทางของพวกเขามุ่งเน้นไปที่พื้นที่ที่มีความไวต่อความปลอดภัย เช่น การตรวจสอบตัวตนและการอนุญาต แสดงให้เห็นว่าการตรวจสอบโค้ดอย่างละเอียดยังคงสามารถเปิดเผยช่องโหว่สำคัญที่เครื่องมืออัตโนมัติอาจพลาดได้
ช่องโหว่ที่ระบุทั้งหมดได้รับการแก้ไขในเวอร์ชันปัจจุบันของ Vault แล้ว และผู้ใช้ได้รับการแนะนำอย่างยิ่งให้อัปเดตทันที การค้นพบนี้เป็นเครื่องเตือนใจว่าแม้แต่เครื่องมือความปลอดภัยที่ใช้กันอย่างแพร่หลายก็ต้องการการตรวจสอบอย่างต่อเนื่อง และความซับซ้อนของซอฟต์แวร์สมัยใหม่สามารถซ่อนช่องโหว่ร้ายแรงไว้ได้เป็นปีๆ