พบช่องโหว่ด้านความปลอดภัย 9 จุดวิกฤตใน HashiCorp Vault หลังการสืบสวนเป็นเวลา 2 ปี

ทีมชุมชน BigGo
พบช่องโหว่ด้านความปลอดภัย 9 จุดวิกฤตใน HashiCorp Vault หลังการสืบสวนเป็นเวลา 2 ปี

นักวิจัยด้านความปลอดภัยจาก 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 แล้ว และผู้ใช้ได้รับการแนะนำอย่างยิ่งให้อัปเดตทันที การค้นพบนี้เป็นเครื่องเตือนใจว่าแม้แต่เครื่องมือความปลอดภัยที่ใช้กันอย่างแพร่หลายก็ต้องการการตรวจสอบอย่างต่อเนื่อง และความซับซ้อนของซอฟต์แวร์สมัยใหม่สามารถซ่อนช่องโหว่ร้ายแรงไว้ได้เป็นปีๆ

อ้างอิง: Cracking the Vault: how we found zero-day flaws in authentication, identity, and authorization in HashiCorp Vault