แจ้งเตือน พบช่องโหว่ระดับ Critical ใน SAP Cloud SDK for Python เสี่ยงข้อมูลรับรอง OAuth2 รั่วไหล

ยอดเข้าชม: 47 views

ศูนย์ประสานการรักษาความมั่นคงปลอดภัยระบบคอมพิวเตอร์แห่งชาติ (ThaiCERT) ได้ติดตามสถานการณ์ภัยคุกคามทางไซเบอร์ พบรายงานช่องโหว่ด้านความมั่นคงปลอดภัยใน SAP Cloud SDK for Python ที่เป็นชุดเครื่องมือสำหรับพัฒนาแอปพลิเคชันที่เชื่อมต่อบริการบน SAP Business Technology Platform (BTP) โดยช่องโหว่ดังกล่าวมีหมายเลข CVE-2026-89111 มีคะแนน CVSS v3.1: 10.0 โดยผู้โจมตีที่สามารถควบคุมค่า tenant_subdomain ซึ่งใช้ระบุองค์กรผู้ใช้งาน อาจเปลี่ยนปลายทางการร้องขอ OAuth2 Token ไปยังเซิร์ฟเวอร์ของผู้โจมตี ส่งผลให้ข้อมูลรับรองของแอปพลิเคชัน ได้แก่ Client ID และ Client Secret รั่วไหล [1]

1. รายละเอียดช่องโหว่
CVE-2026-89111 (CVSS v3.1: 10.0) [2] – Server-Side Request Forgery (SSRF) เป็นช่องโหว่จากการตรวจสอบค่า tenant_subdomain ไม่เหมาะสม ก่อนนำไปสร้าง URL สำหรับร้องขอ OAuth2 Token ในแอปพลิเคชันที่รองรับหลายองค์กรผู้ใช้งาน (Multi-tenant) ผู้โจมตีที่ควบคุมค่าดังกล่าวได้อาจทำให้ระบบส่งข้อมูลรับรองไปยังปลายทางที่ผู้โจมตีกำหนด และอาจนำข้อมูลที่ได้รับไปใช้เข้าถึงบริการตามสิทธิ์ของแอปพลิเคชันนั้น

2. ผลิตภัณฑ์ที่ได้รับผลกระทบ [3]
ช่องโหว่ส่งผลกระทบต่อ SAP Cloud SDK for Python หรือแพ็กเกจ sap-cloud-sdk ในเวอร์ชันต่อไปนี้
2.1 SAP Cloud SDK for Python ต่ำกว่า version 0.45.2 รวมถึง version 0.36.1 และ version 0.36.2 ตามขอบเขตที่ SAP ระบุ
2.2 SAP Cloud SDK for Python ตั้งแต่ version 0.53.0 ถึง 0.55.0 ควรตรวจสอบและอัปเดตเพิ่มเติม เนื่องจากพบว่าขาดการตรวจสอบค่า tenant_subdomain เมื่อเรียกใช้ Destination service และพบปัญหาลักษณะเดียวกันกับ Document Management Service ใน version 0.55.0

ทั้งนี้ SAP ยังไม่ได้ระบุในประกาศว่า version 0.53.0–0.55.0 อยู่ภายใต้ CVE เดียวกัน อย่างไรก็ตาม Release Notes ของ version 0.55.1 ระบุการเพิ่มการตรวจสอบค่าดังกล่าวในส่วนร้องขอ Token [3]

3. แนวทางการแก้ไข
3.1 ตรวจสอบ Version ของแพ็กเกจ sap-cloud-sdk ในแอปพลิเคชันทุกระบบภายในหน่วยงาน รวมถึงระบบทดสอบ ระบบใช้งานจริง และ Container Image พร้อมตรวจสอบการใช้งานค่า tenant_subdomain
3.2 เร่งอัปเดต SAP Cloud SDK for Python เป็นรุ่นที่ได้รับการแก้ไข ดังนี้
– สำหรับ version ต่ำกว่า 0.45.2 ให้อัปเดตเป็น version 0.45.2 ซึ่งเป็นรุ่นแก้ไขตามประกาศ CVE-2026-89111 หรือพิจารณา version 0.55.1 หลังทดสอบความเข้ากันได้
– สำหรับ version 0.53.0 ถึง 0.55.0 ให้อัปเดตเป็น version 0.55.1 ซึ่งเพิ่มการตรวจสอบ tenant_subdomain ในส่วนร้องขอ Token
– หากเลือก version ใหม่กว่า ควรตรวจสอบ Release Notes และความเข้ากันได้กับแอปพลิเคชัน โดยไม่เลือก version 0.53.0–0.55.0 เป็นปลายทางการอัปเดต เนื่องจากมีประเด็นการตรวจสอบข้อมูลข้างต้น
3.3 ปรับปรุงไฟล์กำหนด Dependencies และ Lock File พร้อม Build และนำแอปพลิเคชันขึ้นใช้งานใหม่ เพื่อให้ระบบที่ทำงานอยู่ใช้แพ็กเกจที่ได้รับการแก้ไขจริง
3.4 สำรองค่าการตั้งค่าที่สำคัญและเตรียมแผนกู้คืนบริการก่อนอัปเดต พร้อมทดสอบการร้องขอ Token และการเชื่อมต่อบริการ SAP BTP ที่แอปพลิเคชันใช้งาน
3.5 หลังอัปเดต ให้ตรวจสอบหมายเลขเวอร์ชันในระบบที่ใช้งานจริง และทดสอบว่าระบบปฏิเสธค่า tenant_subdomain ที่ไม่ถูกต้อง โดยใช้ข้อมูลทดสอบแทนข้อมูลรับรองจริง
3.6 ตรวจสอบ Log ของแอปพลิเคชันและการเชื่อมต่อขาออก เพื่อค้นหาการร้องขอ Token ไปยังโดเมนที่ไม่รู้จัก หรือค่า tenant_subdomain ที่ไม่ตรงกับองค์กรผู้ใช้งานที่ลงทะเบียนไว้
3.7 หากพบหรือสงสัยว่า Client Secret รั่วไหล ให้เปลี่ยนข้อมูลรับรองที่เกี่ยวข้อง ตรวจสอบการใช้งานย้อนหลัง และพิจารณาเพิกถอน Token ตามความสามารถของบริการ พร้อมดำเนินการตามกระบวนการตอบสนองเหตุการณ์ของหน่วยงาน

4. แนวทางปฏิบัติกรณีไม่สามารถอัปเดตได้ทันที
4.1 ตรวจสอบค่า tenant_subdomain เทียบกับรายการองค์กรผู้ใช้งานที่ลงทะเบียนและได้รับอนุญาต (Allowlist) ก่อนส่งค่าให้ SDK ทุกครั้ง ตามแนวทางชั่วคราวที่ SAP แนะนำ
4.2 กำหนดค่า tenant_subdomain จากข้อมูลที่เชื่อถือได้ฝั่งเซิร์ฟเวอร์ และตรวจสอบว่าผู้ใช้งานมีสิทธิ์เข้าถึงองค์กรที่ระบุ ไม่รับค่าจากผู้ใช้แล้วส่งต่อให้ SDK โดยไม่มีการตรวจสอบ
4.3 จำกัดการเชื่อมต่อขาออกของแอปพลิเคชันให้เฉพาะปลายทาง OAuth2 และบริการที่จำเป็น โดยประเมินผลกระทบต่อการให้บริการก่อนดำเนินการ
4.4 ทบทวนสิทธิ์ของ OAuth2 Client ให้มีเฉพาะสิทธิ์ที่จำเป็นต่อการทำงาน และแยกข้อมูลรับรองระหว่างระบบทดสอบกับระบบใช้งานจริง
4.5 เพิ่มการเฝ้าระวังการร้องขอ Token ไปยังปลายทางผิดปกติ และหลีกเลี่ยงการบันทึก Client Secret หรือ Access Token ลงใน Log
4.6 หากไม่สามารถตรวจสอบหรือจำกัดค่า tenant_subdomain ได้อย่างเหมาะสม ให้พิจารณาระงับฟังก์ชันที่รับค่าดังกล่าวชั่วคราวจนกว่าจะติดตั้งการแก้ไข
4.7 หากพบพฤติกรรมน่าสงสัย ให้เก็บรักษา Log และหลักฐานที่เกี่ยวข้อง จำกัดการเชื่อมต่อไปยังปลายทางต้องสงสัย และเข้าสู่กระบวนการตรวจสอบเหตุการณ์ทันที

แหล่งอ้างอิง
[1] https://dg.th/u7w0vcs9rg
[2] https://dg.th/gu0l68diqm
[3] https://dg.th/fas8jplwci