ช่องโหว่ในการใช้งานอ้างอิง TPM 2.0 ที่อนุญาตการเข้าถึงข้อมูลบนชิปเข้ารหัส

ในโค้ดที่มีการใช้งานอ้างอิงของข้อกำหนด TPM 2.0 (Trusted Platform Module) มีการระบุช่องโหว่ (CVE-2023-1017, CVE-2023-1018) ที่นำไปสู่การเขียนหรืออ่านข้อมูลเกินขอบเขตของบัฟเฟอร์ที่จัดสรร การโจมตีการใช้งานตัวประมวลผลการเข้ารหัสลับโดยใช้โค้ดที่มีช่องโหว่อาจส่งผลให้เกิดการแยกหรือเขียนทับข้อมูลที่เก็บไว้บนชิป เช่น คีย์การเข้ารหัส ผู้โจมตีสามารถใช้ความสามารถในการเขียนทับข้อมูลในเฟิร์มแวร์ TPM เพื่อจัดระเบียบการเรียกใช้โค้ดของตนในบริบทของ TPM ซึ่งสามารถนำมาใช้ในการติดตั้งแบ็คดอร์ที่ทำงานบนฝั่ง TPM และไม่ถูกตรวจพบ โดยระบบปฏิบัติการ

ช่องโหว่เกิดจากการตรวจสอบขนาดพารามิเตอร์ของฟังก์ชัน CryptParameterDecryption() ที่ไม่ถูกต้อง ซึ่งอนุญาตให้เขียนหรืออ่านไบต์สองไบต์เกินขอบเขตของบัฟเฟอร์ที่ส่งผ่านไปยังฟังก์ชัน ExecuteCommand() และมีคำสั่ง TPM2.0 ขึ้นอยู่กับการใช้งานเฟิร์มแวร์ ไบต์ XNUMX ไบต์ที่ถูกเขียนทับอาจทำให้ทั้งหน่วยความจำที่ไม่ได้ใช้และข้อมูลหรือตัวชี้บนสแต็กเสียหาย

ช่องโหว่นี้ถูกโจมตีโดยการส่งคำสั่งที่ออกแบบมาเป็นพิเศษไปยังโมดูล TPM (ผู้โจมตีจะต้องมีสิทธิ์เข้าถึงอินเทอร์เฟซ TPM) ปัญหาได้รับการแก้ไขแล้วในการอัปเดตข้อมูลจำเพาะ TPM 2.0 ที่เผยแพร่ในเดือนมกราคม (1.59 Errata 1.4, 1.38 Errata 1.13, 1.16 Errata 1.6)

ไลบรารีแบบเปิด libtpms ที่ใช้สำหรับการจำลองซอฟต์แวร์ของโมดูล TPM และการรวมการสนับสนุน TPM เข้ากับไฮเปอร์ไวเซอร์ ก็มีความเสี่ยงเช่นกัน ช่องโหว่ได้รับการแก้ไขแล้วในรุ่น libtpms 0.9.6

ที่มา: opennet.ru

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