Computerbeveiliging - Hoe je bad guys buiten de deur houdt

Problemen na DLL-lek-patch KB2264107 en CWDIllegalInDllSearch=FFFFFFFF

25-08-2010, 10:00 door Bitwiper, 4 reacties
Na het installeren van de patches genoemd in http://support.microsoft.com/kb/2264107 en het zetten van de bijbehorende registerwaarde CWDIllegalInDllSearch op 0xFFFFFFFF, werken Outlook 2002 (Office XP) en Outlook 2003 niet meer (voor details over die patch en genoemde registerwaarde: zie mijn bijdragen onder het artikel in http://www.security.nl/artikel/34244/1/Microsoft_waarschuwt_voor_omvangrijk_DLL-lek.html).

Het lijkt er op dat de Microsoft Outlook programmeurs tijdelijk (of voor de rest van de sessie, dat weet ik niet) de "current working directory" op een pad naar een stel extra benodigde DLL's zetten en vervolgens die DLL's (zonder een absoluut pad te specificeren) trachten in te lezen. En dat is nu exact wat de patch verhindert. Gelukkig is er een fix:

(1) login als admin (d.w.z. een account dat lid is van de Administrators groep, bijv. Administrator)

(2) start verkenner (Engels: Explorer) en ga naar de volgende map:
C:\Program Files\Common Files\System\Mapi
Als je dat soort mappen niet ziet zul je de instellingen van verkenner zo moeten aanpassen dat je systeembestanden en systeemmappen kunt zien (als alternatief kun je ook een andere filemanager gebruiken zoals Total Commander).

(3) Als het goed is zul je een submap zien met een getal als naam. Bij mijn Engelstalige Windows versie is dat 1033 waarmee het volledige pad voor een Engelse XP versie luidt:
C:\Program Files\Common Files\System\Mapi\1033

(4) Verifieer dat daarin ten minste de volgende bestanden staan: MSMAPI32.DLL, OUTEX.DLL en EMSMDB32.DLL. Op mijn systeem kon Outlook 2002 die bestanden niet meer vinden na de patch (Outlook waarschuwde bij opstarten over die laatste 2, de eerste heb ik met een los tooltje achterhaald).

N.b. Als je wel Outlook op je PC hebt en deze niet meer wil starten na de patch, maar niet die bestanden kunt vinden, maak dan svp hieronder een bijdrage en beschrijf daarbij welke Windows versie (+ laatste ServicePack) en de taal daarvan die je gebruikt, jouw Outlook versie en taal, en wat je wel aan submappen ziet. Verdergaan heeft dan geen zin.

(5) Als je die map met bestanden gevonden hebt: start regedit. Ga naar de key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\OUTLOOK.EXE

(5) open de registerwaarde genaamd Path en plak achter de bestaande tekst:
;C:\Program Files\Common Files\System\Mapi\1033\

BELANGRIJK: pas die 1033 aan naar de map die je gevonden hebt!
Op mijn systeem met Engelstalige Office 2002 luidt de volledige waarde van Path als volgt:
C:\Program Files\Microsoft Office\Office10\;C:\Program Files\Common Files\System\Mapi\1033

(6) Sluit regedit. Mocht er nog een foutmelding van Outlook op je scherm staan, sluit die dan.

Outlook zou vervolgens weer wel moeten werken (dus ook met patch KB2264107 geinstalleerd en de registerwaarde CWDIllegalInDllSearch gezet op 0xFFFFFFFF.

Mocht ik tegen meer problemen aanlopen dan zal ik deze bijdrage uitbreiden of hieronder commentaar-bijdragen toevoegen.
Reacties (4)
25-08-2010, 10:59 door [Account Verwijderd]
[Verwijderd]
25-08-2010, 23:32 door Bitwiper
Wat aanvullende info:

- Als je, onder XP SP3, met patch KB 2264107 geinstalleerd, met regedit de waarde van CWDIllegalInDllSearch wijzigt, dan werkt dat onmiddellijk (zowel van 0xFFFFFFFF naar 0 als andersom). Een reboot is dus niet nodig (je hoeft regedit niet eens te sluiten). Ik heb dit niet getest op andere besturingssystemen dan XP SP3.

- Hetzelfde geldt voor het appenden of weer verwijderen van een exra pad aan de registerwaarde "Path" onder 1 van de subkeys van HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\ (dat werkt meteen mits er niets meer draait van de betreffende applicatie, dus als je na de wijzging met regedit de applicatie start, zal deze meteen de nieuwe app path instelling gebruiken).

- Volgens een comment onderaan http://isc.sans.edu/diary.html?storyid=9445 werkt ook Google Chrome niet meer na het toepassen van KB2264107 en het toekennen van de (hexadecimale) waarde FFFFFFFF aan CWDIllegalInDllSearch. Ik vermoed dat ook hier een fix mogelijk is door een "app path" op te nemen naar de map waar de niet-meer-gevonden-DLL (avutil-50.dll) in staat. Als iemand Chrome heeft en de patch heeft geinstalleerd, graag even een berichtje hieronder of Chrome inderdaad niet meer werkt na de patch, en of de hierboven voorgestelde oplossing werkt.
25-08-2010, 23:37 door [Account Verwijderd]
[Verwijderd]
16-09-2010, 00:21 door Bitwiper
Joepie. Na het installeren van de Microsoft Updates van afgelopen dinsdagavond werkt m'n Outlook niet meer.

Oorzaak: Microsoft heeft de registerwaarde "Path" onder HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\OUTLOOK.EXE gereset. Na bovengenoemde aanvulling op Path weer handmatig te hebben gerealiseerd werkt Outlook weer wel. Fijn hoor :(

In plaats van dat ze Outlook fixen, zodanig dat deze er niet meer vanuit gaat dat je door van een bepaalde map de current directory te maken, je daar wel DLL's in zult kunnen vinden, maken ze eingebruikers het leven zuur.

N.b. op zich is wat Outlook doet niet insecure, maar het feit dat iemand CWD gebruikt om DLL's uit te laden gaat tegen de adviezen van Microsoft zelf in (*), en zorgt ervoor dat gebruikers niet snel geneigd zullen zijn om CWDIllegalInDllSearch op 0xFFFFFFFF te zetten, waardoor programmeurs deze (voor veel andere apps wel gevaarlijke) onzin in stand houden. Zo wordt deze cirkel nooit doorbroken!

(*) Daar bestaat de WinAPI SetDllDirectory() voor, zie http://support.microsoft.com/kb/2389418.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.