แต่ก่อนถ้าพูดถึง Application ที่เป็นตัวอ่าน PDF ส่วนใหญ่เราจะนึกถึง Adobe Reader เป็นหลัก แต่ด้วยความที่มีการเปิดเผยช่องโหว่ของตัว Application เองเยอะขึ้นเรื่อยๆ ประกอบกับการทำงานที่ช้าขึ้นเรื่อยๆตาม version ที่เปลี่ยนไป ทำให้คนเริ่มหา Application ตัวอื่นที่จะมีอ่าน PDF แทน Adobe Reader ซึ่ง Foxit PDF Reader ก็เป็นตัวหนึ่งที่เป็นตัวเลือกแรกๆที่คนเลือกใช้กัน แต่ล่าสุดอาจต้องคิดใหม่เพราะมีการเปิดเผยช่องโหว่ร้ายแรงใน Foxit PDF Reader ทำให้หากเปิดอ่าน malicious PDF อาจทำให้เครื่องถูกยึดได้

ช่องโหว่ทั้ง 2 ถูกพบโดย Steven Seeley (mr_me) และ Ariele Caltabiano (kimiya) จาก Zero Day Initiative. โดยช่องโหว่ที่พบจะเป็นช่องโหว่ Command Injection และ File Write vulnerabilities ซึ่งเป็นการทำงานผ่าน JavaScript API ใน Foxit Reader.

  • ZDI-CAN-4724 (CVE-2017-10951) – Foxit Reader app.launchURL command Injection: ช่องโหว่นี้ถูกพบในตัวที่ชื่อว่า app.launchURL  ซึ่งตัวแปรดังกล่าวควรจะรับแค่ URL เท่านั้น แต่ Foxit Reader กลับไม่มีการตรวจสอบตัวแปรดังกล่าวแต่อย่างใด ดังนั้นจึงสามารถใส่อะไรก็ได้รวมถึงคำสั่งใดๆในเครื่องด้วยก็เช่นกัน อีกทั้งยังมีการนำตัวแปรดังกล่าวผ่านไปยัง function ShellExecuteW ซึ่งทำให้เกิดการ execution อีกด้วย

  • ZDI-CAN-4518 (CVE-2017-10952) – Foxit Reader saveAs Arbitrary File Write: ช่องโหว่นี้ถูกพบใน function this.saveAs ซึ่งเป็น API สำหรับการ save PDF ไปยัง path ปัจจุบัน แต่ตัว API ไม่มีการตรวจสอบค่า path ทำให้สามารถ save ไปตรงไหนก็ได้ และชื่อไฟล์อะไรก็ได้ โดย Steven ได้ทำการโจมตีช่องโหว่นี้โดยการแนบ HTA เข้าไปไว้ใน PDF ด้วย

การจะโจมตีช่องโหว่ทั้ง 2 ได้ Attacker จำเป็นต้อง bypass Safe Reading Mode ให้ได้เสียก่อน ซึ่งโหมดดังกล่าวนั้นได้ถูก enable มาโดย default นั่นทำให้ Vendor ผู้ผลิต Foxit Reader ไม่สนใจจะทำการ fix ช่องโหว่ที่พวกเค้าแจ้ง ดังนั้นสิ่งที่เราทำได้คือการที่เราต้องแน่ใจว่า Safe Reading Mode ยัง enable อยู่ตลอด และปิด “Enable JavaScript Actions” ซะเพื่อไม่ให้ Javascript ใน PDF ทำงานได้แต่วิธีหลังนี่อาจจะทำให้ไม่สามารถใช้ function บางอย่างได้นะครับ

Source:: Zero Initiative