ช่องโหว่การข้ามการยืนยันตัวตนระดับวิกฤตในปลั๊กอิน better-auth API keys ทำให้ผู้โจมตีที่ไม่ได้รับการยืนยันตัวตนสามารถสร้าง API Key ที่มีสิทธิ์สูงสำหรับผู้ใช้ใด ๆ ได้ ซึ่งนำไปสู่การเข้ายึดบัญชีโดยไม่ได้รับอนุญาต ช่องโหว่นี้ (CVE-2025-61928) ส่งผลกระทบต่อ better-auth library ทุกเวอร์ชันก่อน 1.3.26 ซึ่งเป็นไลบรารีที่มีการดาวน์โหลดผ่าน npm ประมาณ 300,000 ครั้งต่อสัปดาห์ และใช้สำหรับการยืนยันตัวตนในองค์กรตั้งแต่สตาร์ทอัพไปจนถึงองค์กรขนาดใหญ่ เช่น Equinor

     

Severity: วิกฤต

      
     

System Impact:

     

  • better-auth API keys plugin
  • better-auth library (เวอร์ชันก่อน 1.3.26)
  • ระบบที่ใช้ better-auth สำหรับการยืนยันตัวตน (เช่น Equinor)

      
     

Technical Attack Steps:

     

  1. ช่องโหว่อยู่ใน handler `createApiKey` ภายในปลั๊กอิน API keys
  2. เงื่อนไขของ handler `authRequired` จะประเมินเป็น `false` หากไม่มี session แต่มี `userId` อยู่ใน JSON request body
  3. สถานการณ์นี้ทำให้ handler สร้าง object ผู้ใช้โดยตรงจาก input ที่ผู้โจมตีควบคุมได้
  4. การตรวจสอบสำหรับ fields ที่มีสิทธิ์สูง (เช่น `rateLimitMax`, `remaining`, `refillAmount`, `permissions`) จะถูกข้ามไป
  5. ผู้โจมตีที่ไม่มีการยืนยันตัวตนสามารถส่งคำขอ POST ไปยัง `/api/auth/api-key/create` โดยใส่ `userId` ของเหยื่อใน body
  6. ผู้โจมตีจะได้รับ API Key ที่ถูกต้องและมีสิทธิ์สูงสำหรับบัญชีนั้น
  7. Handler `updateApiKey` ก็ได้รับผลกระทบด้วย ซึ่งอนุญาตให้แก้ไขข้อมูลประจำตัวได้
  8. การโจมตีนี้สามารถข้ามการยืนยันตัวตนแบบหลายปัจจัย (MFA) และนำไปสู่การเข้ายึดบัญชีอย่างเป็นระบบ

      
     

Recommendations:

     

Short Term:

     

  • อัปเกรดปลั๊กอิน better-auth API keys เป็นเวอร์ชัน 1.3.26 หรือใหม่กว่าทันที
  • หมุนเวียน (rotate) API Key ทั้งหมดที่สร้างขึ้นผ่านปลั๊กอินในช่วงที่ได้รับผลกระทบ
  • เพิกถอนข้อมูลประจำตัวที่ไม่ได้ใช้งาน

     

Long Term:

     

  • ตรวจสอบบันทึก (logs) ของแอปพลิเคชันและ reverse-proxy สำหรับการเรียกใช้ `/api/auth/api-key/create` หรือ `/api/auth/api-key/update` ที่ไม่ได้รับการยืนยันตัวตน โดยเฉพาะคำขอที่ไม่มี session cookies ที่ผ่านการยืนยันตัวตนและมีการตั้งค่า fields เช่น `userId`, `rateLimitMax`, หรือ `permissions`
  • ตรวจสอบการใช้งาน API ที่มาจาก IP ที่ไม่คุ้นเคยหรือ service tokens
  • หากพบกิจกรรมที่น่าสงสัยในบันทึก ควรดำเนินการออกข้อมูลประจำตัวใหม่ทั้งหมดสำหรับบัญชีที่ได้รับผลกระทบ

      
     

Source: https://cybersecuritynews.com/authentication-bypass-better-auth-api-keys/

   

Share this content:

Leave a Reply

Your email address will not be published. Required fields are marked *