Ejecución de código a través de mfc42.dll y mfc42u.dll en Windows XP

Se han publicado los detalles de una vulnerabilidad en librerías de Microsoft Windows XP que podría permitir a un atacante ejecutar código arbitrario.

El fallo, en principio, puede ser aprovechado a través de otros programas (todavía desconocidos) que tengan acceso a las librerías.

Investigadores de GoodFellas Security Research Team han hecho públicos los detalles de una vulnerabilidad en dos librerías del sistema, mfc42.dll y mfc42u.dll. En concreto, en ellas se puede encontrar la función FindFile de la clase CFileFind que sufre de un desbordamiento de memoria intermedia que podría permitir a un atacante inyectar y ejecutar código arbitrario si es capaz de aprovechar el fallo pasándole un argumento muy largo a la función.

Para poder aprovechar la vulnerabilidad, el atacante debería utilizar programas que hagan uso de esas funciones y le envíen parámetros, es decir, se conviertan en vectores de ataque. Hasta ahora, se conoce que HP All-in-One Series Web Release versión 2.1.0 y HP Photo & Imaging Gallery versión 1.1 pueden permitir aprovechar el fallo. En realidad cualquier aplicación que use esa API y permita manipular el primer parámetro puede causar el desbordamiento y explotar el fallo.

Según su descubridor, advirtió a Microsoft del problema el pasado 21 de junio. Sin respuesta satisfactoria, ha decidido hacer público su descubrimiento. Por ahora se sabe que las versiones de MFC42.dll 6.2.4131.0 y MFC42u.dll 6.2.8071.0 que se encuentra en un XP SP2 actualizado son vulnerables.

Tratándose de librerías que son usadas habitualmente por aplicaciones, el impacto es cuando menos difuso debido a que aún no está claro cuántos programas “en el mercado” hacen uso de estas librerías y en concreto de esas funciones. En cualquier caso sería posible crear software específico que aprovechara el fallo. Los programadores que hagan uso de estas funciones en su código deben asegurarse de que se comprueba la longitud del parámetro afectado, puesto que la librería en sí no lo hace y es esta la causa del problema.

El control ActiveX hpqutil.dll versión 2.0.0.138 resulta por ahora vector de ataque seguro. Para ellos se puede activar el kill bit, que evita que Internet Explorer tenga acceso a la librería. Su ClassID es F3F381A3-4795-41FF-8190-7AA2A8102F85. O mejor aún, usar las zonas de Internet para que cualquier página no confiable no sea capaz de hace uso de ActiveX.