Misterios de la vida
Hola,
Pues nada siguiendo la estela de «iDefense acaba de publicar» xD , iDefense acaba de publicar un advisory del año de la pana. El fallo lo descubrí en febrero de 2006 así que os hacéis una idea. La movida esta en las funciones del DirectX Direct3D que se usan para mapear una textura en memoria.
Uno de los formatos soportados era el TGA, pero DirectX cometía un fallo gordo a la hora de copiar el tga mapeado a un buffer que era dinámicamente reservado usando campos en la header del tga. Es decir, esos campos los puedes modificar a tu gusto. Entonces tenemos un buffer en la heap cuyo tamaño es calculado usando : (Width*Height)*bpp. Por otro lado DirectX mantenía una estructura interna donde el tamaño del fichero era obtenido de la función GetFileSize. A la hora de copiar el fichero mapeado hacia el buffer, usaba el resultado obtenido de GetFileSize por lo que el overflow está claro. Todo el rollo técnico y el código lo podéis leer en el advisory.
Esta vulnerabilidad se probó que era remótamente explotable, incluso con una intervención mínima del usuario, pero ya ves por misterios de la vida Microsoft decidió no publicar un boletin de seguridad y hasta donde yo se, arreglarla silenciosamente. Cosas de Microsoft…
Bueno, aquí podéis descargar el advisory.
Un saludo.