1.2 CVE-2009-1707

Exploit Patch
 

Eine Race-Bedingung in der Reset-Safari-Implementierung in Apple Safari vor 4.0 unter Windows könnte es lokalen Benutzern erlauben, gespeicherte Web-Site-Passwörter über nicht spezifizierte Vektoren zu lesen.
https://nvd.nist.gov/vuln/detail/CVE-2009-1707

Kategorien

CWE-362 : Gleichzeitige Ausführung mit gemeinsamer Ressource bei unsachgemäßer Synchronisation ('Race Condition')
Das Produkt enthält eine Codesequenz, die gleichzeitig mit anderem Code ausgeführt werden kann, und die Codesequenz erfordert einen vorübergehenden, exklusiven Zugriff auf eine gemeinsam genutzte Ressource, aber es existiert ein Zeitfenster, in dem die gemeinsam genutzte Ressource von einer anderen Codesequenz, die gleichzeitig läuft, geändert werden kann. Black-Box-Methoden können Hinweise auf Race Conditions durch Methoden wie mehrere gleichzeitige Verbindungen erkennen, die die Software instabil machen oder zum Absturz bringen können. Race Conditions mit sehr engen Zeitfenstern können jedoch nicht erkannt werden. Gängige Idiome lassen sich in der White-Box-Analyse aufspüren, wie z. B. Time-of-Check-Time-of-Use (TOCTOU)-Dateioperationen (CWE-367) oder Double-Checked Locking (CWE-609). Verwenden Sie in Sprachen, die dies unterstützen, Synchronisationsprimitive. Wickeln Sie diese nur um kritischen Code, um die Auswirkungen auf die Leistung zu minimieren. Verwenden Sie thread-sichere Funktionen wie die Datenzugriffsabstraktion in Spring. Verwenden Sie bei Multithreading und Operationen mit gemeinsam genutzten Variablen nur thread-sichere Funktionen. Verwenden Sie atomare Operationen auf gemeinsam genutzte Variablen. Seien Sie vorsichtig mit unschuldig aussehenden Konstrukten wie "x++". Dies mag auf der Code-Ebene atomar erscheinen, ist aber auf der Anweisungsebene tatsächlich nicht atomar, da es ein Lesen, gefolgt von einer Berechnung und einem anschließenden Schreiben beinhaltet. Verwenden Sie einen Mutex, falls verfügbar, aber achten Sie darauf, damit verbundene Schwachstellen wie CWE-412 zu vermeiden. Vermeiden Sie doppelt geprüftes Sperren (CWE-609) und andere Implementierungsfehler, die entstehen, wenn Sie versuchen, den Overhead der Synchronisierung zu vermeiden. Deaktivieren Sie Unterbrechungen oder Signale über kritische Teile des Codes, aber stellen Sie auch sicher, dass der Code nicht in eine große oder unendliche Schleife gerät. Verwenden Sie den Modifikator "volatile type" für kritische Variablen, um unerwartete Compiler-Optimierungen oder Umordnungen zu vermeiden. Dies löst nicht unbedingt das Synchronisationsproblem, kann aber hilfreich sein. Führen Sie Ihren Code mit den niedrigsten Rechten aus, die für die Ausführung der notwendigen Aufgaben erforderlich sind [REF-76]. Wenn möglich, erstellen Sie isolierte Konten mit eingeschränkten Rechten, die nur für eine einzige Aufgabe verwendet werden. Auf diese Weise erhält der Angreifer bei einem erfolgreichen Angriff nicht sofort Zugriff auf den Rest der Software oder deren Umgebung. Beispielsweise müssen Datenbankanwendungen nur selten als Datenbankadministrator ausgeführt werden, insbesondere im täglichen Betrieb. Die Go-Anwendung für die Cloud-Verwaltung erstellt eine weltweit beschreibbare sudoers-Datei, die es lokalen Angreifern ermöglicht, sudo-Regeln einzuschleusen und die Privilegien zu root zu erweitern, indem sie eine Race Condition gewinnen. Kette: Unsachgemäßes Sperren (CWE-667) führt zu einer Race Condition (CWE-362), wie sie in freier Wildbahn per CISA KEV ausgenutzt wurde. Kette: Race Condition (CWE-362) für mobile Plattformen führt zu use-after-free (CWE-416), wie in the wild per CISA KEV ausgenutzt. Kette: Wettlaufbedingung (CWE-362) führt zu use-after-free (CWE-416), wie in the wild per CISA KEV ausgenutzt. chain: Die JTAG-Schnittstelle ist während der Ausführung von ROM-Code nicht deaktiviert (CWE-1191), wodurch eine Race Condition (CWE-362) zum Extrahieren von Verschlüsselungsschlüsseln eingeführt wird Kette: Race Condition (CWE-362) im Anti-Malware-Produkt ermöglicht das Löschen von Dateien durch das Erstellen einer Verbindung (CWE-1386) und die Verwendung von Hardlinks während des Zeitfensters, in dem eine temporäre Datei erstellt und gelöscht wird. TOCTOU im Sandbox-Prozess ermöglicht die Installation von nicht vertrauenswürdigen Browser-Add-Ons, indem eine Datei ersetzt wird, nachdem sie verifiziert wurde, aber bevor sie ausgeführt wird Kette: Chipsatz hat eine Race Condition (CWE-362) zwischen dem Zeitpunkt, an dem ein Interrupt-Handler einen Versuch erkennt, das BIOS zu schreiben (unter Verletzung des Lock-Bits), und dem Zeitpunkt, an dem der Handler das Write-Enable-Bit wieder auf 0 zurücksetzt, was es Angreifern ermöglicht, BIOS-Schreibvorgänge während des Zeitfensters durchzuführen [REF-1237]. Wettlaufbedingung, die zu einem Absturz führt, indem eine Hook-Entfernungsprozedur aufgerufen wird, während gleichzeitig andere Aktivitäten stattfinden. chain: time-of-check time-of-use (TOCTOU) Wettlaufbedingung im Programm ermöglicht die Umgehung des Schutzmechanismus, der zur Verhinderung von Symlink-Angriffen gedacht war. chain: time-of-check time-of-use (TOCTOU) Wettlaufbedingung im Programm ermöglicht die Umgehung des Schutzmechanismus, der zur Verhinderung von Symlink-Angriffen gedacht war. Unsynchronisierte Zwischenspeicheroperationen ermöglichen eine Race Condition, die dazu führt, dass Nachrichten an ein freigegebenes Objekt gesendet werden. Wettlaufbedingung während der Initialisierung löst einen Pufferüberlauf aus. Daemon stürzt ab, indem er schnell Operationen durchführt und sie rückgängig macht, was schließlich zu einer Operation führt, die keine Sperre erhält. chain: race condition löst NULL-Zeiger-Dereferenz aus Race condition in Bibliotheksfunktion kann dazu führen, dass Daten an den falschen Prozess gesendet werden. Kette: Wettlaufbedingung im Dateiparser führt zu Heap-Verfälschung. Kette: Wettlaufbedingung ermöglicht Angreifern den Zugriff auf ein Objekt, während es noch initialisiert wird, was dazu führt, dass Software auf nicht initialisierten Speicher zugreift. Kette: Wettlaufbedingung für einen Argumentwert, was möglicherweise zu NULL-Dereferenz führt. Kette: Wettlaufbedingung könnte es ermöglichen, dass eine Ressource freigegeben wird, bevor sie bearbeitet wird, was zu NULL-Dereferenz führt: Signalhandler enthält zu viel Funktionalität (CWE-828), wodurch eine Race Condition (CWE-362) eingeführt wird, die zu einem Double Free (CWE-415) führt.

Referenzen

APPLE Patch

BID Exploit

35260
Exploit
35352

CONFIRM Patch

OSVDB

SECUNIA

35379
Vendor Advisory
42314

VUPEN Patch

ADV-2009-1522
Patch Vendor Advisory
ADV-2010-3046


 

CPE

cpe start ende
Configuration 1
cpe:2.3:a:apple:safari:3.0:*:windows:*:*:*:*:*
cpe:2.3:a:apple:safari:3.0.1:*:windows:*:*:*:*:*
cpe:2.3:a:apple:safari:3.0.2:*:windows:*:*:*:*:*
cpe:2.3:a:apple:safari:3.0.3:*:windows:*:*:*:*:*
cpe:2.3:a:apple:safari:3.0.4:*:windows:*:*:*:*:*
cpe:2.3:a:apple:safari:3.1:*:windows:*:*:*:*:*
cpe:2.3:a:apple:safari:3.1.1:*:windows:*:*:*:*:*
cpe:2.3:a:apple:safari:3.1.2:*:windows:*:*:*:*:*
cpe:2.3:a:apple:safari:3.2:*:windows:*:*:*:*:*
cpe:2.3:a:apple:safari:3.2.1:*:windows:*:*:*:*:*
cpe:2.3:a:apple:safari:3.2.2:*:windows:*:*:*:*:*
cpe:2.3:a:apple:safari:*:*:windows:*:*:*:*:* <= 3.2.3


REMEDIERUNG


Patch

Url
APPLE-SA-2009-06-08-1
http://support.apple.com/kb/HT3613
ADV-2009-1522


EXPLOITS


Exploit-db.com

id beschreibung datum
Keine bekannten Exploits

Andere (github, ...)

Url
35260


CAPEC


Common Attack Pattern Enumerations and Classifications

id beschreibung schweregrad
26 Ausnutzen der Rennbedingungen
Hoch
29 Leveraging Time-of-Check and Time-of-Use (TOCTOU) Race Conditions
Hoch


MITRE