ช่องโหว่ระดับร้ายแรงใน jsPDF แฮกเกอร์อาจขโมยไฟล์สำคัญในเซิร์ฟเวอร์ได้

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

13/69 (IT) ประจำวันศุกร์ที่ 9 มกราคม 2569

มีการค้นพบช่องโหว่ความปลอดภัยระดับร้ายแรง (Critical) CVE-2025-68428 ใน jsPDF ไลบรารี JavaScript ที่มียอดดาวน์โหลดกว่า 3.5 ล้านครั้งต่อสัปดาห์ ซึ่งช่องโหว่นี้มีความรุนแรงถึง 9.2 คะแนน โดยเกิดจากข้อผิดพลาดประเภท Local File Inclusion และ Path Traversal ในกลไกการโหลดไฟล์บนสภาพแวดล้อมแบบ Node.js ซึ่งเปิดช่องให้ผู้ไม่หวังดีสามารถส่งคำสั่งผ่านฟังก์ชันต่าง ๆ เช่น addImage, html, หรือ addFont เพื่อดึงไฟล์ความลับในระบบ (Local Filesystem) และฝังข้อมูลเหล่านั้นลงในไฟล์ PDF ที่ถูกสร้างขึ้น ทำให้ข้อมูลสำคัญรั่วไหลได้ทันที

จากรายงานของ Endor Labs ระบุว่าความเสี่ยงนี้จะส่งผลกระทบโดยตรงต่อแอปพลิเคชันที่รัน jsPDF บน Node.js (โดยเฉพาะไฟล์ dist/jspdf.node.js) และมีการรับค่า Input จากผู้ใช้งานมากำหนด path ของไฟล์โดยไม่มีการกรอง (Sanitize) ที่ดีพอ อย่างไรก็ตาม หากแอปพลิเคชันมีการกำหนด path ของไฟล์แบบตายตัว (Hardcoded) หรือมีการทำ Allowlist อย่างเคร่งครัด ความเสี่ยงในการถูกโจมตีจะลดลงหรือไม่มีเลย ทั้งนี้ทางผู้พัฒนา jsPDF ได้ออกแพตช์แก้ไขแล้วในเวอร์ชัน 4.0.0 ซึ่งเปลี่ยนไปใช้ระบบ Permission Model ของ Node.js ในการจำกัดการเข้าถึงไฟล์แทน    

ข้อควรระวังสำคัญสำหรับนักพัฒนาและผู้ดูแลระบบคือ แม้จะอัปเดตเป็นเวอร์ชัน 4.0.0 แล้ว แต่ต้องระมัดระวังการตั้งค่า Permission Model ให้ถูกต้อง การใช้คำสั่งที่เปิดกว้างเกินไป เช่น –allow-fs-read=/* หรือการให้สิทธิ์อ่านทั้ง Root Directory จะทำให้การป้องกันไร้ผลโดยทันที นอกจากนี้ ระบบ Permission Model ยังถือเป็นฟีเจอร์ทดลองใน Node.js เวอร์ชัน 20 ทางผู้เชี่ยวชาญจึงแนะนำให้ใช้งานบน Node.js เวอร์ชัน 22.13.0, 23.5.0 หรือ 24.0.0 ขึ้นไปเพื่อให้ระบบทำงานได้อย่างสมบูรณ์และปลอดภัยที่สุด

แหล่งข่าว https://www.bleepingcomputer.com/news/security/critical-jspdf-flaw-lets-hackers-steal-secrets-via-generated-pdfs/