หลังจากที่ Microsoft ออก patch เพียงวันเดียวก็มีช่องโหว่ที่น่าสนใจถูกเปิดเผยขึ้นครับ นั่นคือช่องโหว่ CVE-2017-11882 นั่นเอง

ทางบริษัท Embedi เป็นผู้ที่ค้นพบช่องโหว่ดังกล่าวใน executable modules ที่ชื่อว่า EQNEDT32.EXE (Microsoft Equation Editor) ซึ่งเอาไว้ใส่สูตรทางด้านคณิตศาสตร์ใน Document

Module ดังกล่าวถูก compile ตั้งแต่ปี 11/9/2000. โดยไม่มีการใช้ option ในการ compile แต่อย่างใด ซึ่งหลังจากนั้นก็ถูกนำมาใช้กับ  Microsoft Office มาเรื่อยๆ. ตัว component นี้ถูกสร้างโดยบริษัท Design Science Inc. อย่างไรก็ตามลิขสิทธิ์ของ application ก็ถูกซื้อต่อโดย Microsoft มาอีกที

ซึ่งเมื่อถูกตรวจสอบด้วย Binscope (เครื่องมีอการตรวจสอบการทำงานของ Binary file, สร้างโดย Microsoft)พบว่า EQNEDT32.EXE เป็น component ที่ไม่ปลอดภัย ซึ่งเมื่อใช้ ProcessMitigations tool ในการตรวจสอบพบว่า EQNEDT32.EXE ไม่มีการป้องกันเรื่อง memory หรือ runtime แต่อย่างใด

ซึ่งนั่นหมายความว่าหากเกิดช่องโหว่ใดๆตัว EQNEDT32.EXE ก็จะสามารถถูกโจมตีได้อย่างง่ายๆเลย ตัวโปรแกรมถูกออกแบบให้ใช้งานเป็นเหมือน OLE คือสร้างสูตรใดๆมาทำเป็น OLE Object ใน document นั่นเอง ซึ่ง component นี้มีมาให้ตั้งแต่ Microsoft Office 2000 และ Microsoft 2003 เป็นต้นมา และถูกบรรจุมาให้แบบ default ตั้งแต่ Microsoft Office 2007 package แม้ว่า component นี้จะ out of date ไปแล้ว แต่ก็ยังถูกบรรจุมาใน package แบบ default อยู่ดี(เพื่อให้แน่ใจว่า software จะรองรับระบบของเก่าหรือ document เก่าๆนั่นเอง) ตัว component เองเป็น OutProc COM Server ซึ่งถูกรันใน memory space คนละอันกับ Office Process (e.g. WINWORD.EXE, EXCEL.EXE, etc.) นั่นทำให้การใช้งาน security mechanism ในการเข้าใช้งาน space ที่ไม่เหมือนกัน ทำให้ component ดังกล่าวปราศจากการป้องกันใดๆเลยนั่นเอง

EQNEDT32.EXE มีการทำ COM interface สำหรับการใช้งาน OLE ดังนี้

  • IOleObject
  • IDataObject
  • IOleInPlaceObject
  • IOleInPlaceActiveObject
  • IPersistStorage

ทาง Embedi พบว่าใน IPersistStorage ใช้เพื่อ load “Equation Native” stream ของ OLE structured storage compound file ซึ่งใช้เพื่ออ่าน internal binary data ของสูตรแต่ละสูตรนั่นเอง ซึ่งตรงจุดนี้แหล่ะที่ทำให้ทาง Embedi พบว่ามีช่องโหว่ buffer overflow อยู่ เมื่อมีการใช้งาน OLE auto-update มาประสานกับไฟล์ที่เป็น exploit ก็จะทำให้กลายเป็น user เปิดไฟล์แล้วโดนโจมตีได้ทันที โดยที่ไมจำเป็นต้องรอให้ user มาตอบแต่อย่างใด

สามารถป้องกันได้โดยการปิดการใช้งาน component ดังกล่าว

ผลกระทบ: Remote Code Execution
ระบบที่ได้รับผลกระทบ: Microsoft Office versions released in the past 17 years (including Microsoft Office 365)
วิธีการแก้ไข: ปิดการใช้งาน Microsoft Office EQNEDT32.EXE

Source:: Embedi