1.2 CVE-2012-3487

 

Condition de course dans Tunnelblick 3.3beta20 et antérieurs permet aux utilisateurs locaux de tuer des processus non intentionnels en attendant qu'une valeur PID spécifique soit assignée à un processus cible.
https://nvd.nist.gov/vuln/detail/CVE-2012-3487

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


 

CPE

cpe start end
Configuration 1
cpe:2.3:a:google:tunnelblick:*:*:*:*:*:*:*:* <= 3.3beta20


REMEDIATION




EXPLOITS


Exploit-db.com

id description date
Pas d'exploit connu

Autres (github, ...)

Url
Pas d'exploit connu


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