นักวิจัยด้านความปลอดภัยจาก Novee Security ได้เปิดเผยช่องโหว่ Zero-day จำนวน 16 รายการในแพลตฟอร์ม PDF ยอดนิยมอย่าง Apryse WebViewer (เดิมคือ PDFTron) และ Foxit PDF cloud services ช่องโหว่เหล่านี้มีความร้ายแรงตั้งแต่ระดับปานกลางถึงวิกฤต ซึ่งอาจนำไปสู่การรันโค้ดจากระยะไกล (RCE) และการดึงข้อมูลออกจากระบบได้ Novee Security ใช้กระบวนการวิจัยที่ผสานรวม AI เข้ากับการทำงานของมนุษย์เพื่อค้นหาช่องโหว่เหล่านี้ ซึ่งส่งผลกระทบต่อผู้ใช้งานองค์กรหลายล้านรายทั่วโลก ทั้ง Apryse และ Foxit ได้รับการแจ้งเตือนภายใต้นโยบายการเปิดเผยข้อมูลอย่างรับผิดชอบ และได้มีการประสานงานเพื่อออกแพตช์หรือมาตรการบรรเทาผลกระทบแล้วก่อนการเผยแพร่ข้อมูลนี้
Severity: วิกฤต
System Impact:
- Apryse WebViewer (formerly PDFTron)
- Foxit PDF cloud services
- Foxit PDF SDK for Web (Node.js signature server)
- Foxit’s webplugins.foxit.com (embedded calculator component)
- Foxit’s Collaboration Add-on
- Foxit’s Portfolio feature
- Foxit’s Page Templates
- Foxit’s Layer Import
- Foxit’s Predefined Text
- Foxit’s Trusted Certificates
- Foxit’s Digital ID Common Name
- Foxit’s Attachments feature
- eSign subdomains (specifically na1.foxitesign.foxit.com)
Technical Attack Steps:
- **OS Command Injection (Critical) (Not assigned)**: ใน Node.js signature server ของ Foxit PDF SDK for Web โดยพารามิเตอร์ `md` ใน POST request ถูกส่งเข้าสู่ `process.execSync()` โดยตรงโดยไม่มีการตรวจสอบหรือ sanitize ทำให้ผู้โจมตีสามารถรันคำสั่งเชลล์ที่เป็นอันตรายจากระยะไกลได้
- **DOM XSS via `uiConfig` (Critical) (CVE-2025-70402)**: ใน Apryse WebViewer ผ่านการโจมตี `uiConfig` query parameter ซึ่งเป็น URL ระยะไกลที่ถูกดึงมาประมวลผลเป็น JSON และนำไปใช้กับ UI ฟิลด์ `glyph` ที่เป็นอันตรายใน JSON สามารถถูกฉีดเข้าไปใน `dangerouslySetInnerHTML` โดยไม่มีการ sanitize ทำให้เกิดการรันโค้ดผ่าน `foreignObject` bypass
- **DOM XSS via annotation author field (High) (CVE-2025-70401)**: ใน Apryse WebViewer ผ่านฟิลด์ `(/T)` ของ PDF annotation ที่เป็นอันตราย โดยสตริง author ที่เป็นอันตรายจะถูกส่งผ่าน Core layer ของ WebViewer ไปยัง React’s internal `he()` DOM reconciliation helper ซึ่งจะกำหนดโดยตรงไปยัง `innerHTML` โดยไม่มีการเข้ารหัส ทำให้โค้ดถูกรันเมื่อเกิดการเปลี่ยนแปลงสถานะที่กระตุ้นการเรนเดอร์คอมโพเนนต์ใหม่
- **SSRF via iFrame rendering (High) (CVE-2025-70400)**: ใน Apryse WebViewer’s server-side iFrame rendering component ทำให้ผู้โจมตีสามารถสั่งให้เซิร์ฟเวอร์ดึงและแสดงเนื้อหาที่ผู้โจมตีควบคุมได้ ซึ่งอาจเปิดเผยการเข้าถึงเครือข่ายภายในและ metadata
- **DOM XSS via `postMessage` handler (Medium) (CVE-2025-66500)**: ใน Foxit’s `webplugins.foxit.com` ซึ่งมีการตรวจสอบ `t.data.origin` (ฟิลด์ JSON ที่ผู้โจมตีควบคุมได้) แทนที่จะเป็น `event.origin` ที่บังคับโดยเบราว์เซอร์ ทำให้หน้าเว็บใดๆ ก็สามารถฉีดแท็ก `