ค้นพบช่องโหว่ Path Traversal ระดับวิกฤต (CVE-2026-21440) ใน AdonisJS ซึ่งเป็น web framework ที่ใช้ TypeScript ช่องโหว่นี้ส่งผลกระทบต่อโมดูล bodyparser และอนุญาตให้ผู้โจมตีจากระยะไกลสามารถเขียนไฟล์ใดๆ ลงบนระบบไฟล์ของเซิร์ฟเวอร์ได้ ซึ่งอาจนำไปสู่การควบคุมระบบได้อย่างสมบูรณ์ โดยมีสาเหตุมาจากเมธอด MultipartFile.move() ที่ใช้ตัวเลือกเริ่มต้นที่ไม่ปลอดภัยในการจัดการชื่อไฟล์ที่ส่งมาจากผู้ใช้งาน
Severity: วิกฤต (Critical)
System Impact:
- AdonisJS web framework (โดยเฉพาะโมดูล @adonisjs/bodyparser)
- ระบบไฟล์ของเซิร์ฟเวอร์ (สามารถเขียนไฟล์ใดๆ ได้)
- โค้ดแอปพลิเคชัน, สคริปต์เริ่มต้นระบบ, หรือไฟล์กำหนดค่า (เสี่ยงต่อการถูกเขียนทับ ซึ่งอาจนำไปสู่การรันโค้ดจากระยะไกล)
- เวอร์ชันที่ได้รับผลกระทบ: @adonisjs/bodyparser ≤ 10.1.1 และ 11.0.0-next.5 หรือเวอร์ชันก่อนหน้า
Technical Attack Steps:
- ผู้โจมตีระบุตำแหน่ง endpoint สำหรับการอัปโหลดที่เข้าถึงได้ในแอปพลิเคชัน AdonisJS ที่ใช้โมดูล bodyparser ที่มีช่องโหว่
- ส่งการอัปโหลด multipart/form-data โดยใช้ชื่อไฟล์ที่ถูกสร้างขึ้นมาเป็นพิเศษ ซึ่งมีลำดับ Path Traversal (เช่น “../”)
- ใช้ประโยชน์จากตัวเลือกเริ่มต้นที่ไม่ปลอดภัยของเมธอด MultipartFile.move() เพื่อหลบเลี่ยงไดเรกทอรีการอัปโหลดที่ตั้งใจไว้ และเขียนไฟล์ไปยังตำแหน่งใดก็ได้บนเซิร์ฟเวอร์
- หากสำเร็จ ผู้โจมตีอาจเขียนทับไฟล์แอปพลิเคชันที่สำคัญ สคริปต์เริ่มต้น หรือไฟล์กำหนดค่า ซึ่งอาจนำไปสู่การรันโค้ดจากระยะไกล (Remote Code Execution) ขึ้นอยู่กับสิทธิ์ของระบบไฟล์และการกำหนดค่าการใช้งาน
Recommendations:
Short Term:
- นักพัฒนาควรอัปเกรดแพ็คเกจ @adonisjs/bodyparser เป็นเวอร์ชัน 10.1.2 หรือ 11.0.0-next.6 ทันที เพื่อแก้ไขช่องโหว่
Long Term:
- องค์กรที่ใช้เวอร์ชันที่ได้รับผลกระทบควรตรวจสอบ endpoint การอัปโหลดทั้งหมด และนำกลไกการตรวจสอบชื่อไฟล์ (filename sanitization) มาใช้เป็นชั้นความปลอดภัยเพิ่มเติม แม้ว่าจะมีการอัปเดตแพตช์แล้วก็ตาม
Source: https://cybersecuritynews.com/adonisjs-vulnerability-write-files-on-server/
Share this content: