Internet Explorer 6 en Windows XP muestra un error y se cierra al visitar una página después de instalar las actualizaciones de seguridad más recientes

Importante: el contenido de esta entrada se refiere a un problema específico de Internet Explorer 6 sobre Windows XP de 32 bits con Service Pack 2 (a fecha de diciembre de 2007).

Todavía hay usuarios de Windows XP que se resisten a instalar y usar la nueva versión 7 de Internet Explorer. No seré yo quien intente convencerles en un sentido o en otro. De hecho, aunque en mi sistema principal todavía mantengo Internet Explorer 6 por razones que ahora no vienen a cuento, suelo usar Internet Explorer 7 desde una máquina virtual para algunas pruebas.

En lo que respecta a Internet Explorer 6, hace unas semanas notaba yo algo extraño al visitar ciertas páginas en determinados momentos.

iexplore.exe ha detectado un problema y debe cerrarse.

Firma del error
AppName: iexplore.exe
AppVer: 6.0.2900.2180
ModName: urlmon.dll
ModVer: 6.0.2900.3199
Offset: 0003a530

En este caso, el número de versión de Urlmon.dll correspondía a la actualización acumulativa de seguridad de Internet Explorer 6 del pasado mes de octubre (KB939653).

Tras aceptar el envío del informe de error, Microsoft me dirigía a una página del dominio oca.microsoft.com (Online Crash Analysis) que me informaba de que podía tratarse del problema conocido que se presenta en el artículo KB942367 y para el que está disponible un hotfix (bajo petición expresa, claro).

Como el problema era molesto pero infrecuente, consideré no meterme en el proceso ocasionalmente engorroso de solicitar el hotfix, instalarlo, probarlo, etc. Preferí esperar a la siguiente actualización pública que incluyera una versión de Urlmon.dll igual o superior a la del hotfix, la 6.0.2900.3213. Esta oportunidad llegó hace unos días con la actualización acumulativa KB942615.

He de confesar que mi configuración del servicio de actualizaciones automáticas es «notificarme, pero no descargarlas automáticamente ni instalarlas». Primero las descargo, completas, y después las instalo mediante línea de comandos en modo desatendido sin reiniciar. Para más información véase el artículo KB262841.

Sin embargo, si algo puede salir mal, saldrá mal. Después de aplicar la actualización KB942615, la mayoría de las veces que intentaba acceder a algunos sitios como GMail o Google, por poner dos ejemplos en los que entro muy a menudo, me saltaba este error:

iexplore.exe ha detectado un problema y debe cerrarse.

Firma del error
AppName: iexplore.exe
AppVer: 6.0.2900.2180
ModName: urlmon.dll
ModVer: 6.0.2900.3231
Offset: 0003b5ce

¡Otra gran pifia de los chiquilicuatres de Redmond, carape!

En estas circunstancias, los valores de los registros y la traza de pila del error son similares a lo que se muestra a continuación:

Fri Dec 14 03:23:19.484 2007 (GMT+1): (f34.cc0): Access violation – code c0000005 (first/second chance not available)
eax=00000000 ebx=00000000 ecx=0019f404 edx=0019f52c esi=02d7b69c edi=00000001
eip=7df5b5ce esp=0012e6b4 ebp=0012e6c0 iopl=0         nv up ei pl nz na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000202
urlmon!CMimeFt::ReportData+0x99:
7df5b5ce 399ee0120000    cmp     dword ptr [esi+12E0h],ebx ds:0023:02d7c97c=????????

ChildEBP RetAddr  Args to Child             
0012e6c0 7df33fd9 02d7b69c 00000011 00000001 urlmon!CMimeFt::ReportData+0x99
0012e6d8 7df550f2 02d69178 00000011 00000001 urlmon!CINetEmbdFilter::ReportData+0x1a
0012e808 7df43342 00000000 02d1c390 7df3c236 urlmon!CINet::INetReadDirect+0x11f
0012e814 7df3c236 00000000 02d1c390 036b71c0 urlmon!CINet::INetRead+0x24
0012e824 7df3c1e6 02d1f690 02d1c390 0012e848 urlmon!CINet::INetQueryInfo+0xcd
0012e834 7df3cd5c 00000005 80004005 02d1c390 urlmon!CINet::OnINetInternal+0xb6
0012e848 7df3cd32 02d1c390 02d1f690 0012e868 urlmon!CINet::MyContinue+0x21
0012e858 7df3cb8c 001dfea8 02d1f690 0012e880 urlmon!CINetProtImpl::Continue+0x13
0012e868 7df3cb69 02d69178 02d1f690 7de85e88 urlmon!CINetEmbdFilter::Continue+0x14
0012e880 7df3b4df 02d1c390 02d1f690 0012e8a4 urlmon!CINet::Continue+0x28
0012e890 7df5301c 0019f580 02d1f690 036bc4a0 urlmon!COInetProt::Continue+0x14
0012e8a4 7de34e02 0019f3dc 02d1f690 036bc4a0 urlmon!CTransaction::Continue+0x29
0012e8b8 7dd19d68 02d1f690 0012e91c 036b4d8c mshtml!CDwnBindData::OnDwnDocCallback+0x1a
0012e8dc 7de3cf1f 0012e8f4 7dc79cfc 036b7150 mshtml!CDwnDoc::OnDocThreadCallback+0x62
0012e8e4 7dc79cfc 036b7150 036b7150 0012e928 mshtml!CDwnDoc::OnDocThreadCallback+0xd
0012e8f4 7dc4cba1 036b7150 00000000 00000000 mshtml!CDwnChan::OnMethodCall+0x19
0012e928 7dc489b7 0012eac4 7dc488d2 00000000 mshtml!GlobalWndOnMethodCall+0x66
0012ea5c 7e398724 00550744 00008002 00000000 mshtml!GlobalWndProc+0x1e2
0012ea88 7e398806 7dc488d2 00550744 00008002 user32!InternalCallWinProc+0x28
0012eaf0 7e3989bd 00000000 7dc488d2 00550744 user32!UserCallWinProcCheckWow+0x150
0012eb50 7e398a00 0012eb90 00000000 0012eb78 user32!DispatchMessageWorker+0x306
0012eb60 75f4d795 0012eb90 00000000 00152838 user32!DispatchMessageW+0xf
0012eb78 75f551b2 0012eb90 0012ee98 00000000 browseui!TimedDispatchMessage+0x33
0012edd8 75f55325 00152040 0012ee98 00152040 browseui!BrowserThreadProc+0x336
0012ee6c 75f555ed 00152040 00152040 00000000 browseui!BrowserProtectedThreadProc+0x50
0012fef0 7e298cbe 00152040 00000000 00000000 browseui!SHOpenFolderWindow+0x22c
0012ff10 00402372 001423d1 00000001 011ccf78 shdocvw!IEWinMain+0x129
0012ff60 00402444 00400000 00000000 001423d1 iexplore!WinMainT+0x2de
0012ffc0 7c816ff7 011ccf78 00000018 7ffd8000 iexplore!_ModuleEntry+0x99
0012fff0 00000000 00402451 00000000 78746341 kernel32!BaseProcessStart+0x23

Decidí probar la solución propuesta en el artículo KB942367. Con la actualización acumulativa KB942615 u otra posterior deja de ser imprescindible la solicitud el hotfix. No obstante, hay que asegurarse de que el archivo \Windows\System32\Urlmon.dll cumpla dos requisitos:

  • El número de versión debe ser igual o superior a 6.0.2900.3213.
  • La descripción textual de la versión del archivo debe incluir la cadena xpsp_sp2_qfe.nnnnnnnnnn, como en 6.00.2900.3231 (xpsp_sp2_qfe.071010-1316), o en su defecto xpsp.nnnnnnnnnn, indicando que pertenece a la rama QFE. El hotfix KB942367 no está presente en la rama GDR de la actualización.

Para comprender la separación del desarrollo de revisiones en ramas GDR y QFE, y conocer mejor los mecanismos de instalación de actualizaciones en Windows XP y Windows Server 2003, véanse el artículo KB824994 y el documento Inside Update.exe – The Package Installer for Windows and Windows Components de Microsoft TechNet.

El primer requisito se cumple tras haber instalado la actualización acumulativa KB942615.

Siga estos pasos para obtener la versión del archivo:

  1. Abra Mi PC o el Explorador de Windows.
  2. Desplácese hasta la carpeta System32 de la instalación actual de Windows XP. (Sugerencia: Escriba %windir%\system32 en la barra de direcciones y pulse Intro.)
  3. Busque y seleccione el archivo Urlmon.dll. (Sugerencia: haga clic en el panel de archivos y teclee rápidamente las primeras letras del nombre del archivo. Normalmente basta con pulsar U, R, L, M, en ese mismo orden.)
  4. Haga clic con el botón secundario y elija Propiedades, o pulse Alt+Intro.
  5. Active la pestaña Versión de la ventana de propiedades y observe el valor del elemento Versión del archivo en la sección Más información de la versión.

Si nos encontramos con algo como 6.00.2900.3231 (xpsp_sp2_gdr.071010-1320), deberemos instalar la rama QFE de la actualización acumulativa. Necesitaremos hacerlo una sola vez.

How to install hotfixes that are included in cumulative security updates for Internet Explorer (KB897225)

Descarguemos el paquete de instalación:
Actualización de seguridad para Internet Explorer for Windows XP Service Pack 2 (KB942615)
(Selecciónese el idioma correcto si no es el español.)

Instalémoslo con el parámetro /b:sp2qfe:

«<ruta>\WindowsXP-KB942615-x86-LLL.exe» /b:sp2qfe
(Sustitúyase <ruta> por la ubicación del paquete de instalación y LLL por el código de idioma: ESN para español, ENU para inglés, etc.)

Cuando nos pida reiniciar, que será lo habitual, le haremos caso.

Después de toda esta parrafada y todo el esfuerzo, aquí no acaba la cosa, señores. Tenemos el archivo Urlmon.dll con versión de QFE igual o superior a 6.0.2900.3213 y nos sigue fallando Internet Explorer exactamente como antes. ¿Qué hemos hecho mal? Más bien, ¿qué no hemos hecho?

Algunos hotfixes de Microsoft necesitan ser expresamente habilitados para que tengan efecto. Las instrucciones concretas están documentadas en los artículos correspondientes de la Knowledge Base. Con respecto a los hotfixes de Internet Explorer, el proceso se puede resumir en estos dos pasos:

  1. Añadir una subclave a la clave del registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl. El nombre de la subclave depende de cada hotfix.
  2. Definir una o más entradas de tipo DWORD con nombres de proceso que utilizan el motor de Internet Explorer (por ejemplo, Iexplore.exe) o el asterisco (*). Un valor distinto de cero activa el hotfix para el proceso indicado. La entrada asterisco, en caso de estar presente, actúa como un comodín para los procesos que no constan en la lista.

El artículo KB942367 nos indica que debemos activar el hotfix a través de la subclave FEATURE_PROTECT_DECOMPRESSION_FILTER_FROM_ABORT_KB942367. Para mayor comodidad, adjunto un archivo ZIP con ficheros KB942367_on.reg y KB942367_off.reg que activan y desactivan respectivamente este hotfix.

Desde que creé las entradas en el registro de Windows, Internet Explorer no ha vuelto a caerse de la forma tan estrepitosa que describía al principio. No obstante, es probable que esta solución no os sirva a vosotros y tengáis que seguir rebuscando por los interneses. De suceder así, me temo que os seré de poca ayuda.

10 thoughts on “Internet Explorer 6 en Windows XP muestra un error y se cierra al visitar una página después de instalar las actualizaciones de seguridad más recientes

  1. ¡mucho gracias!

    Sé muy poco español, acepto por favor mi comentario en inglés…

    Thank you for posting this information.
    It was very helpful to me!!!

    Please forgive my lack of knowledge for spanish language, I had to translate this page to read it.

    My Internet Explorer keeps crashing and going into VS Debug on this line in urlmon.dll:

    7E21B5CB mov dword ptr [ebp-4],eax
    >> 7E21B5CE cmp dword ptr [esi+12E0h],ebx
    7E21B5D4 je 7E21B5DF

    I can manually move the instruction pointer to the next line and it seems to work fine, but sometimes it goes into a loop and continues to hang on the same line over and over.

    After reading this article, I see that I also also have version:
    6.00.2900.3231 (xpsp_sp2_qfe.071010-1316)

    I just requested the hotfix and hopefully I will get a reply shortly.

    Thanks Again!!!
    -Josh

  2. Hi, Josh.

    A suitable version of Urlmon.dll is currently installed on your system, so you didn’t need to request the hotfix KB942367 from Microsoft. You only have to create the registry keys and values which activate this fix. You may download the attachment WinXPSP2_MSIE6_KB942367_regs.zip, then extract KB942367_on.reg and double-click it to merge its information to the Windows registry. Finally, restart Internet Explorer.

    En español:

    Hola, Josh.

    Ya dispone de una versión adecuada de Urlmon.dll en su sistema, por lo que no era necesario que solicitara el hotfix KB942367 de Microsoft. Sólo tiene que crear las claves de registro y valores que activan esta corrección. Descargue el archivo adjunto WinXPSP2_MSIE6_KB942367_regs.zip, después extraiga KB942367_on.reg y haga doble clic sobre él para combinarlo con el registro de Windows. Finalmente, reinicie Internet Explorer.

  3. pues, yo he de decir , que tras instalar el parche, que se supone soluciona el problema causado or la actualización kb942615, es decir kb946627, ahora tengo problemas con el messenger, se me cuelga, se queda bloqueado, y tengo que finalizar el programa, supongo que habrá alguien mas en mis misma situación, pero no sé que hacer.

  4. Yo desinstale dicha actualizacion ya q tengo el IE7 y ahora recien me pregunto si era importante 😉 en fin la desinstale porq me aparecia un x? en la pagina de microsoft update asi q como decia IE6 acumulativa y yo tengo el IE7 por eso ahora pregunta si ¿hice mal en desinstalar dicha actualizacion KB942615??

  5. A causa del spam en forma de comentarios anónimos recibidos en las últimas semanas, he considerado deshabilitar temporalmente la posibilidad de aportar nuevos comentarios a esta entrada. Disculpen las molestias que esto pueda causar.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *