เมื่อเครื่องมือ open-source กลายเป็นทางผ่านสู่ AWS IAM โดยในโลกคลาวด์ของ AWS, Instance Metadata Service (IMDS) เป็นบริการสำคัญบน EC2 ที่ให้ข้อมูล instance เช่น temporary IAM credentials ซึ่งช่วยให้แอปพลิเคชันบน VM ติดต่อกับทรัพยากรอื่น ๆ ของ AWS ได้โดยไม่ต้องฝังคีย์คงที่ไว้ในโค้ด
แต่ในวันที่ 24 กันยายน 2025 มีรายงานว่าแฮกเกอร์ได้ใช้งานช่องโหว่ Pandoc CVE-2025-51591 เพื่อโจมตี IMDS และขโมย IAM credentials ผ่าน SSRF (Server-Side Request Forgery) ซึ่งเป็น "การโจมตีจากภายใน" ที่อันตรายไม่น้อยกว่าการแฮ็กจากภายนอก
ช่องโหว่ Pandoc CVE-2025-51591 วิธีก่อเหตุ
- Pandoc เป็นโปรแกรมโอเพนซอร์สสำหรับแปลงไฟล์ เช่น Markdown → HTML, HTML → PDF ฯลฯ
- ช่องโหว่ CVE-2025-51591 เกิดจาก Pandoc อนุญาต
<iframe>ใน HTML แทรกเข้ามาได้ ซึ่งเปิดโอกาสให้ผู้ประสงค์ร้ายนำ iframe ชี้ไปยัง IMDS (169.254.169.254) ภายใน VM ได้ - วิธีโจมตี: ผู้โจมตีกำหนด HTML ที่มี
<iframe src="<http://169.254.169.254/>...">เมื่อ Pandoc render HTML นี้ มันจะพยายามเข้าถึง IMDS เสมือนเป็นการ request ภายใน VM - ถ้า EC2 ใช้ IMDSv1 (ไม่มีการตรวจ token) โค้ดแอปที่โดน SSRF สามารถดึง IAM credentials ได้โดยไม่ต้อง root หรือแฮ็ก OS โดยตรง
- แต่หากตั้งให้ใช้ IMDSv2 ซึ่งต้องใช้ token สำหรับทุก request ช่องโหว่นี้จะถูกลดทอนประสิทธิภาพการโจมตีอย่างมาก
ผลกระทบ และความเสี่ยง จากช่องโหว่ Pandoc
- การรั่วไหลของ IAM credentials อาจนำไปสู่การเข้าถึง S3, RDS, DynamoDB หรือบริการ AWS อื่น ๆ ภายใต้ role เดียวกัน
- แฮกเกอร์สามารถเคลื่อนที่ในระบบภายใน (lateral movement) ระหว่างบริการ
- เนื่องจาก SSRF มาจากภายใน (running VM) มันสามารถ bypass firewall หรือ IP-whitelists ได้
- แม้ firewall ภายนอกจะเข้มงวดแค่ไหน ถ้าแอปภายใน VM เปิดช่อง SSRF ทั้งระบบอาจตกเป็นเหยื่อ
แนวทางป้องกันสำหรับผู้ใช้งาน
- บังคับใช้ IMDSv2 เท่านั้น
ปิด IMDSv1 และตั้งให้ EC2 ทั้งหมดใช้ IMDSv2 เพื่อป้องกันการเรียกโดยไม่มี token validate
- Sanitize / validate input ที่รับ URL / HTML
ทุก endpoint ที่รับ HTML หรือ URL ควรกรองไม่ให้ iframe ชี้ไปยัง
169.254.169.254หรือ IP ภายใน - ใช้ Pandoc อย่างปลอดภัย
หากต้องแปลง HTML ที่มาจากผู้ใช้ ไม่ควรเปิดให้ iframe; ใช้ flag เช่น
--sandboxหรือ-f html+raw_htmlเพื่อปิดการแสดงผล iframe - Principle of Least Privilege (PoLP)
กำหนด IAM roles ให้น้อยที่สุดตามหน้าที่ ถ้า credentials รั่ว ความเสียหายจะถูกจำกัด
- ตรวจสอบ / Audit พฤติกรรม metadata access
มอนิเตอร์ log ว่ามี request ไปยัง IMDS path เช่น
/latest/meta-data/iam/หรือ/latest/meta-data/iam/security-credentials/โดยไม่ได้คาดคิด - ทดสอบระบบ (Pen Test / Threat Hunting)
ให้ทีมหรือผู้เชี่ยวชาญลองโจมตี SSRF / misconfiguration บน VM / Web app
