นักวิจัยเตือนช่องโหว่ jsPDF เสี่ยงข้อมูลรั่วผ่านการสร้าง PDF
Last updated: 9 Jan 2026
55 Views

สรุปข้อมูล
พบช่องโหว่ในไลบรารี jsPDF ซึ่งใช้สำหรับสร้างไฟล์ PDF ในแอปพลิเคชัน JavaScript ที่อาจทำให้แฮกเกอร์สามารถ ขโมยข้อมูลสำคัญจากเครื่องหรือเซิร์ฟเวอร์ได้ โดยการแอบฝังข้อมูลเหล่านั้นลงไปในไฟล์ PDF ที่ถูกสร้างขึ้น ช่องโหว่นี้เกิดจากปัญหาการตรวจสอบเส้นทางไฟล์ที่ไม่รัดกุม ทำให้แฮกเกอร์สามารถระบุเส้นทางไฟล์อันตราย และดึงไฟล์ภายในระบบมาใช้งานได้
รายละเอียดช่องโหว่
CVE-2025-68428 (คะแนน CVSS 9.2/10 ความรุนแรงระดับ Critical) จัดเป็นช่องโหว่ประเภท Path Traversal (CWE-35) และ External Control of File Name or Path (CWE-73) ใน jsPDF ซึ่งเกิดจากการที่ฝั่ง Node.js อนุญาตให้แฮกเกอร์ควบคุมพารามิเตอร์ path สำหรับการโหลดไฟล์ได้โดยไม่มีการตรวจสอบอย่างเหมาะสม ส่งผลให้สามารถระบุและอ่านไฟล์ใดก็ได้บนระบบหรือเซิร์ฟเวอร์ที่รัน Node.js อยู่ และนำเนื้อหาของไฟล์เหล่านั้นไปฝังลงในไฟล์ PDF ที่ถูกสร้างขึ้นโดยตรง ทำให้มีความเสี่ยงต่อการรั่วไหลของข้อมูลสำคัญ เช่น ไฟล์คอนฟิก คีย์ลับ หรือข้อมูลภายในระบบ นอกจากนี้ความเสี่ยงยังครอบคลุมถึงฟังก์ชันอื่นที่เกี่ยวข้องกับการใช้งานไฟล์ เช่น การเพิ่มรูปภาพ การแปลง HTML เป็น PDF และการเพิ่มฟอนต์ หากมีการรับค่า path จากผู้ใช้โดยไม่ผ่านการตรวจสอบ โดยช่องโหว่นี้กระทบเฉพาะการใช้งาน jsPDF ในฝั่ง Node.js และไม่ส่งผลต่อการใช้งานในฝั่งเบราว์เซอร์
เวอร์ชันที่ได้รับผลกระทบ
- jsPDF เวอร์ชันต่ำกว่า 4.0.0
เวอร์ชันที่ได้รับการแก้ไข
- jsPDF เวอร์ชัน 4.0.0
คำแนะนำเพิ่มเติม jsPDF เวอร์ชัน 4.0.0 ซึ่งมีการจำกัดการเข้าถึงระบบไฟล์เป็นค่าเริ่มต้น โดยแม้จะเป็นการอัปเดตแบบ semver-major แต่ไม่ได้ก่อให้เกิด breaking changes อื่นเพิ่มเติม สำหรับแนวทางลดความเสี่ยง jsPDF แนะนำให้ใช้ flag --permission ในสภาพแวดล้อม production บน Node.js เวอร์ชันใหม่ โดยฟีเจอร์นี้เริ่มใช้งานแบบทดลองใน v20.0.0 และมีความเสถียรตั้งแต่ v22.13.0, v23.5.0 และ v24.0.0 เป็นต้นไป ส่วนในกรณีที่ใช้ Node.js เวอร์ชันเก่า ควรทำการตรวจสอบและ sanitize ค่า path ที่มาจากผู้ใช้ทุกครั้งก่อนส่งให้ jsPDF
ผลกระทบจากช่องโหว่
ผลกระทบจากช่องโหว่อาจทำให้สามารถเข้าถึงและขโมยข้อมูลสำคัญภายในเครื่องหรือเซิร์ฟเวอร์ที่รัน Node.js ได้โดยตรง เช่น ไฟล์คอนฟิกระบบ, API keys, หรือข้อมูลภายในแอปพลิเคชัน โดยการอาศัยการควบคุมค่า path เพื่ออ่านไฟล์ในระบบและฝังเนื้อหาลงในไฟล์ PDF ที่ถูกสร้างขึ้น ซึ่งอาจนำไปสู่การรั่วไหลของข้อมูล การละเมิดความลับของระบบ และเพิ่มความเสี่ยงต่อการโจมตีขั้นต่อไป
คำแนะนำ
- ตรวจสอบและอัปเดต jsPDF เป็นเวอร์ชัน 4.0.0 ทันที เพื่อปิดช่องโหว่และจำกัดการเข้าถึงระบบไฟล์เป็นค่าเริ่มต้น
- หลีกเลี่ยงการรับค่า path จากผู้ใช้โดยตรง หากจำเป็นต้องใช้ ให้กำหนด allowlist ของไฟล์หรือไดเรกทอรีที่อนุญาตเท่านั้น
- ตรวจสอบค่า path ทุกครั้ง ก่อนนำไปใช้กับฟังก์ชัน loadFile, addImage, html, และ addFont
- จำกัดสิทธิ์ของโปรเซส Node.js ให้ทำงานด้วยสิทธิ์ least privilege ลดผลกระทบหากถูกโจมตี
แหล่งอ้างอิง
https://nvd.nist.gov/vuln/detail/CVE-2025-68428
https://github.com/parallax/jsPDF/security/advisories/GHSA-f8cm-6447-x5h2


