Attaque
Condition de course
Aussi appeléRace conditionTOCTOU
En résumé
Une vulnérabilité où le résultat d’une opération dépend de l’ordre ou du moment auquel plusieurs requêtes concurrentes sont traitées. En envoyant des requêtes quasi simultanées, un attaquant peut dépasser une limite, utiliser deux fois un droit à usage unique ou contourner une vérification.
Condition de course, en détail
Beaucoup d’applications suivent le même schéma : lire un état, vérifier une condition, puis écrire le résultat. Entre la vérification et l’écriture, il existe une fenêtre pendant laquelle une autre requête peut lire le même état initial. Si deux requêtes passent la vérification avant que l’une ait écrit, la limite est dépassée. C’est le principe du TOCTOU (time-of-check to time-of-use), le décalage entre le moment du contrôle et celui de l’usage.
Les cas typiques sont un bon de réduction utilisé plusieurs fois, un solde débité en double, un retrait supérieur au disponible, un code de validation consommé deux fois, ou une limite de tentatives de connexion contournée par l’envoi simultané de nombreux essais. Les techniques récentes d’envoi synchronisé des requêtes rendent ces fenêtres de quelques millisecondes exploitables même à travers Internet.
La correction passe par l’atomicité : exécuter la vérification et la modification dans une même transaction avec verrouillage, ou s’appuyer sur une contrainte d’unicité de la base de données qui refuse le doublon. Les contrôles faits uniquement dans le code applicatif sans verrou sont les plus exposés. Ces défauts se détectent avec des tests concurrents ciblés, rarement avec des outils généralistes.
Qu’est-ce que cela change pour vous ?
Pour toute application qui manipule de la valeur (crédits, remises, soldes, stocks), une condition de course se traduit directement en perte financière. Elle ne se voit pas dans une relecture classique, car chaque requête, prise isolément, est correcte.
Exemple illustratif (fictif)
Prenons une plateforme de fidélité où l’échange de points contre une récompense vérifie le solde puis le débite. En envoyant simultanément plusieurs demandes d’échange, un analyste pourrait obtenir plusieurs récompenses pour un seul solde suffisant.
La confusion fréquente
Croire que le problème disparaît parce que « le serveur est rapide ». La fenêtre de vulnérabilité est étroite, mais un attaquant qui peut tenter des centaines de fois finit par la toucher ; seule l’atomicité de l’opération la supprime.
Comment le détecter chez vous ?
- Pentest web : la prestationSavoir ce qu’un attaquant obtiendrait sur votre application.
- Pentest API : la prestationLes API portent les données et moins de garde-fous que les interfaces.
Aller plus loin
- ArticleLire un rapport de scan de vulnérabilités : ce qu’il prouve et ce qu’il rateUn rapport de scan est une liste de candidats, pas de faits : faux positifs, gravité hors contexte, zones non atteintes. Comment le lire et le vérifier.
- ArticleOWASP Top 10 : les dix risques expliqués pour décideurs et développeursLes dix catégories de risques de l’OWASP Top 10:2025 expliquées simplement : ce que chacune recouvre, comment un test d’intrusion la vérifie et ce que le classement ne dit pas.
- ComparatifScan ou test d’intrusion : lequel choisir, critère par critère ?Un scan automatisé et un test d’intrusion portent des noms proches, mais ne répondent pas à la même question et ne coûtent pas le même prix. Critères, situations et erreur d’achat la plus fréquente.
Termes liés
- AttaqueFaille de logique métier : définitionUn défaut dans les règles propres à une application, exploitable en utilisant ses fonctions de façon légitime mais dans un ordre, un contexte ou une combinaison que ses concepteurs n’avaient pas prévus.
- AttaqueIDOR / BOLA : définitionUn défaut de contrôle d’accès où l’application sert l’objet demandé sans vérifier qu’il appartient à l’utilisateur authentifié.
- MéthodeTest d’intrusion : définitionUne simulation d’attaque autorisée et encadrée, menée par des analystes, qui cherche à démontrer ce qu’un attaquant pourrait obtenir sur un périmètre défini.
- TechniqueScan de vulnérabilités : définitionUne analyse automatisée qui compare un système (serveur, application, réseau) à une base de défauts connus : versions vulnérables, configurations par défaut, en-têtes manquants.
Réponse à toute demande sous 24 h ouvrées
Un périmètre à faire tester ?
Le cadrage est gratuit et sans engagement. Trente minutes suffisent à savoir si une mission est pertinente, laquelle, et ce qu’elle coûterait.
- Accord de confidentialité systématique
- Cadrage gratuit et sans engagement
- Périmètre et prix écrits avant le début