1.2 CVE-2009-1707
Exploit Patch
Condition de course dans l'implémentation de la réinitialisation de Safari dans Apple Safari avant 4.0 sur Windows pourrait permettre aux utilisateurs locaux de lire les mots de passe de sites web stockés via des vecteurs non spécifiés.
https://nvd.nist.gov/vuln/detail/CVE-2009-1707
Catégories
CWE-362 : Exécution simultanée utilisant des ressources partagées avec une synchronisation incorrecte ("Race Condition")
Le produit contient une séquence de code qui peut s'exécuter en même temps que d'autres codes, et la séquence de code nécessite un accès temporaire et exclusif à une ressource partagée, mais il existe une fenêtre temporelle dans laquelle la ressource partagée peut être modifiée par une autre séquence de code qui fonctionne en même temps. Les méthodes de la boîte noire peuvent être en mesure d'identifier des preuves de conditions de concurrence via des méthodes telles que les connexions multiples simultanées, qui peuvent rendre le logiciel instable ou le faire planter. Cependant, les conditions de course avec des fenêtres temporelles très étroites ne seraient pas détectables. Les idiomes courants sont détectables dans l'analyse de la boîte blanche, tels que les opérations de fichiers TOCTOU (time-of-check-time-of-use) (CWE-367), ou le verrouillage à double vérification (CWE-609). Dans les langages qui le supportent, utilisez des primitives de synchronisation. Ne les intégrez qu'autour du code critique afin de minimiser l'impact sur les performances. Utilisez des fonctionnalités thread-safe telles que l'abstraction d'accès aux données dans Spring. Lorsque vous utilisez le multithreading et opérez sur des variables partagées, n'utilisez que des fonctions thread-safe. Utilisez des opérations atomiques sur les variables partagées. Méfiez-vous des constructions d'apparence innocente telles que "x++". Cette opération peut sembler atomique au niveau du code, mais elle est en fait non atomique au niveau de l'instruction, car elle implique une lecture, suivie d'un calcul, puis d'une écriture. Utilisez un mutex si possible, mais veillez à éviter les faiblesses connexes telles que CWE-412. Évitez le verrouillage doublement vérifié (CWE-609) et d'autres erreurs d'implémentation qui surviennent lorsque l'on essaie d'éviter la surcharge de la synchronisation. Désactivez les interruptions ou les signaux sur les parties critiques du code, mais assurez-vous également que le code n'entre pas dans une boucle large ou infinie. Utilisez le modificateur de type volatile pour les variables critiques afin d'éviter toute optimisation ou réorganisation inattendue du compilateur. Cela ne résout pas nécessairement le problème de synchronisation, mais cela peut aider. Exécutez votre code en utilisant les privilèges les plus bas requis pour accomplir les tâches nécessaires [REF-76]. Si possible, créez des comptes isolés avec des privilèges limités qui ne sont utilisés que pour une seule tâche. Ainsi, une attaque réussie ne donnera pas immédiatement à l'attaquant l'accès au reste du logiciel ou de son environnement. Par exemple, les applications de base de données ont rarement besoin d'être exécutées en tant qu'administrateur de la base de données, notamment dans le cadre des opérations quotidiennes. L'application Go pour la gestion du cloud crée un fichier sudoers inscriptible dans le monde entier qui permet aux attaquants locaux d'injecter des règles sudo et d'élever les privilèges jusqu'à root en gagnant une condition de course. Chaîne : un verrouillage incorrect (CWE-667) entraîne une condition de course (CWE-362), telle qu'exploitée dans la nature par CISA KEV. Chaîne : condition de course sur la plate-forme mobile (CWE-362) conduisant à l'utilisation après la libération (CWE-416), telle qu'exploitée dans la nature par CISA KEV. Chaîne : condition de course (CWE-362) conduisant à l'utilisation après la libération (CWE-416), comme exploité dans la nature par CISA KEV. chaîne : L'interface JTAG n'est pas désactivée (CWE-1191) pendant l'exécution du code ROM, introduisant une condition de course (CWE-362) pour extraire les clés de chiffrement Chaîne : la condition de course (CWE-362) dans le produit anti-malware permet la suppression de fichiers en créant une jonction (CWE-1386) et en utilisant des liens durs pendant la fenêtre de temps dans laquelle un fichier temporaire est créé et supprimé. TOCTOU dans le processus sandbox permet l'installation de modules complémentaires de navigateur non fiables en remplaçant un fichier après qu'il ait été vérifié, mais avant qu'il ne soit exécuté. Chaîne : le jeu de puces présente une condition de course (CWE-362) entre le moment où un gestionnaire d'interruption détecte une tentative d'activer en écriture le BIOS (en violation du bit de verrouillage), et le moment où le gestionnaire remet le bit d'activation en écriture à 0, ce qui permet aux attaquants d'effectuer des écritures dans le BIOS pendant la fenêtre de temps [REF-1237]. Condition de course conduisant à un plantage en appelant une procédure de suppression de crochet alors que d'autres activités se produisent en même temps. chaîne : condition de course de type time-of-check time-of-use (TOCTOU) dans le programme permettant de contourner le mécanisme de protection conçu pour empêcher les attaques par lien symbolique. chaîne : condition de course de type time-of-check time-of-use (TOCTOU) dans le programme permettant de contourner le mécanisme de protection conçu pour empêcher les attaques par lien symbolique. Une opération de mise en cache non synchronisée permet une condition de course qui provoque l'envoi de messages à un objet désalloué. Une condition de course pendant l'initialisation déclenche un débordement de tampon. Le Daemon se plante en effectuant rapidement des opérations et en les annulant, ce qui conduit finalement à une opération qui n'acquiert pas de verrou. chain : race condition triggers NULL pointer dereference Race condition in library function could cause data to be sent to the wrong process. Une condition de course dans l'analyseur de fichiers entraîne une corruption du tas. chaîne : une condition de course permet à un attaquant d'accéder à un objet alors qu'il est encore en cours d'initialisation, ce qui amène le logiciel à accéder à de la mémoire non initialisée. chaîne : une condition de course pour une valeur d'argument, entraînant éventuellement un déréférencement de pointeur NULL chaîne : une condition de course pourrait permettre à une ressource d'être libérée avant d'être utilisée, entraînant un déréférencement de pointeur NULL chaîne : Le gestionnaire de signaux contient trop de fonctionnalités (CWE-828), introduisant une condition de course (CWE-362) qui conduit à un double free (CWE-415).
Références
APPLE Patch
APPLE-SA-2009-06-08-1 Patch Vendor Advisory |
APPLE-SA-2010-11-22-1 |
BID Exploit
CONFIRM Patch
http://support.apple.com/kb/HT3613 Patch Vendor Advisory |
http://support.apple.com/kb/HT4456 |
OSVDB
SECUNIA
VUPEN Patch
ADV-2009-1522 Patch Vendor Advisory |
ADV-2010-3046 |
CPE
cpe | start | end |
---|---|---|
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 |
REMEDIATION
Patch
Url |
---|
APPLE-SA-2009-06-08-1 |
http://support.apple.com/kb/HT3613 |
ADV-2009-1522 |
EXPLOITS
Exploit-db.com
id | description | date | |
---|---|---|---|
Pas d'exploit connu |
Autres (github, ...)
Url |
---|
35260 |
CAPEC
Common Attack Pattern Enumerations and Classifications
id | description | sévérité |
---|---|---|
26 | Tirer parti des conditions de course |
Haute |
29 | Conditions de course TOCTOU (Leveraging Time of Check and Time-of-Use) |
Haute |
MITRE
Sherlock® flash
Prenez une photo de votre réseau informatique en quelques clics !
La solution d'audit Sherlock® flash vous permet de réaliser un audit pour renforcer la sécurité de votre parc informatique. Analyse des vulnérabilités de vos équipements physiques et virtuels. Planification des correctifs par niveau de priorité et temps disponible. Rapports détaillés et intuitifs.
