En-tête négligent

CVE-2025-55680 PoC : Transformer une condition de course de Windows Cloud Files en escalade de privilèges dans le monde réel

Lorsque Microsoft publie un nouveau correctif d'élévation locale de privilèges, il est facile de le considérer comme "une CVE de plus dans le Patch Tuesday". La CVE-2025-55680 mérite plus d'attention que cela. Il s'agit d'une Condition de course du temps de contrôle et du temps d'utilisation (TOCTOU) dans le Pilote du mini-filtre Windows Cloud Files (cldflt.sys) qui permet à un utilisateur local à faible privilège de créer des fichiers arbitraires dans des emplacements sensibles et de les transmettre à SYSTEM.(NVD)

Pour les défenseurs, il s'agit d'un point de données supplémentaire dans une longue histoire de bogues liés à Cloud Files ; pour les red teamers et les développeurs d'exploits, il s'agit d'une étude de cas moderne sur la façon dont les abstractions de synchronisation dans le nuage ouvrent une surface d'attaque adjacente au noyau. Étant donné que le pentesting assisté par l'IA est de plus en plus utilisé pour raisonner sur de tels bogues, CVE-2025-55680 est également un banc d'essai naturel pour le développement d'outils d'analyse. génération automatisée de PoC.

Cet article présente les mécanismes de la vulnérabilité, le modèle d'exploitation et les stratégies d'atténuation réalistes, puis il examine comment les outils pilotés par l'IA, tels que les systèmes d'information et de communication, peuvent contribuer à réduire la vulnérabilité. Penligent peut faire passer les équipes du stade "nous avons un CVE" à celui de "nous avons la preuve que cela est (ou n'est pas) exploitable dans notre environnement".

CVE-2025-55680 PoC

Comprendre le contexte de CVE-2025-55680

Selon le NVD et l'officiel CVE.org CVE-2025-55680 est un enregistrement de la TOCTOU condition de course dans Windows Cloud Files Mini Filter Driver qui permet à un attaquant local authentifié d'élever ses privilèges. Elle a un score de base CVSS v3.1 élevé (environ 7.0-7.8 selon l'autorité de notation), avec un vecteur typique :

AV:L / AC :(L ou H) / PR:L / UI:N / S:U / C:H / I:H / A:H (NVD)

Fournisseur de solutions de sécurité pour l'informatique en nuage Wiz met en évidence quelques méta-faits importants :(wiz.io)

  • Il affecte plusieurs versions de Windows prises en charge, qu'il s'agisse de clients ou de serveurs.
  • Il est classé comme CWE-367 (TOCTOU Race Condition).
  • Il est déjà associé à un code d'exploitation public et considéré comme "de grande valeur" parce qu'il fournit un SYSTÈME sur une pile de fonctionnalités très commune (OneDrive / Files On-Demand).

De multiples avis (Wiz, Tenable, H-ISAC) signalent que CVE-2025-55680 est encore une autre entrée dans une série de vulnérabilités de Cloud Files Mini Filter qui ont été expédiées depuis 2022.(wiz.io) Pour les équipes qui gèrent de grands parcs Windows ou des fermes VDI, cette famille de problèmes doit désormais être traitée comme une catégorie de risque permanente, et non comme un bogue ponctuel.

Ce que fait réellement le mini-filtre Cloud Files

Pour comprendre le bogue, il faut d'abord comprendre ce que fait le conducteur. Les Mini-filtre Cloud Files (cldflt.sys) fait partie de la pile de synchronisation en nuage de Windows. Il est à la base de fonctionnalités telles que Fichiers OneDrive à la demandeLes fichiers peuvent exister localement en tant que "placeholders" et s'hydrater à partir du nuage lorsqu'on y accède.Exodus Intelligence)

À un niveau élevé :

  • Un fournisseur de synchronisation enregistre un synchroniser la racine via CfRegisterSyncRoot en cldapi.dll.
  • Sous cette racine, les fichiers peuvent être : entièrement hydratés, épinglés, ou des espaces réservés qui ne s'hydratent qu'à l'utilisation.
  • Les API en mode utilisateur telles que CfCreatePlaceholders est à l'origine de la création de ces entrées de remplacement.
  • Dans le noyau, cldflt.sys intercepte les E/S et gère ces opérations, y compris la création de fichiers et de répertoires par l'intermédiaire de FltCreateFileEx2.

La vulnérabilité se situe en plein dans le chemin où les noms de fichiers fournis par l'utilisateur pour les espaces réservés sont validées et transformées en véritables créations de fichiers en mode noyau.

La cause première : Une course TOCTOU classique dans une pile de synchronisation moderne

Exodus Intelligence a publié une analyse technique détaillée de CVE-2025-55680, expliquant comment le bogue survient à l'intérieur du système d'exploitation. HsmpOpCreatePlaceholders() fonction dans cldflt.sys.(Exodus Intelligence)

En termes simplifiés :

  1. Le code en mode utilisateur invoque CfCreatePlaceholders() pour créer un ou plusieurs fichiers de remplacement sous une racine de synchronisation.
  2. Dans le pilote du filtre, HsmpOpCreatePlaceholders() reçoit une commande d'E/S (IOCTL 0x903BC) avec un tampon qui comprend un champ de nom de fichier relatif (relName).
  3. Le conducteur :
    • Sondes et fait correspondre la mémoire tampon de l'utilisateur à l'espace du noyau (à l'aide d'une MDL et d'une MmMapLockedPagesSpecifyCache).
    • Itère à travers relName pour s'assurer qu'il le fait pas contiennent des caractères interdits tels que \\ ou : (une mesure d'atténuation introduite à la suite d'une CVE antérieure).
  4. Si la validation est réussie, le conducteur prépare ATTRIBUTS DE L'OBJET et appelle FltCreateFileEx2() pour créer le fichier, en utilisant le nom de fichier validé et un gestionnaire de répertoire racine dérivé de la racine de la synchronisation.

Le problème se situe aux étapes 3 et 4 : il y a un fenêtre temporelle entre la validation de la mémoire tampon de l'utilisateur et son utilisation dans les FltCreateFileEx2()pendant laquelle l'attaquant peut modifier la même mémoire mappée du mode utilisateur. Comme les vues du noyau et de l'utilisateur partagent la même page physique, tout changement dans la mémoire tampon de l'utilisateur se répercute également sur le pointeur du noyau.(Exodus Intelligence)

Exprimée en pseudo-code, la logique se présente à peu près comme suit :

// Pseudocode, simplifié pour l'illustration
NTSTATUS HsmpOpCreatePlaceholders(USER_BUFFER* userBuf) {
    // Mappage de la mémoire tampon utilisateur dans l'espace du noyau
    KERNEL_VIEW* kview = MapUserBuffer(userBuf) ;

    WCHAR* relName = kview->relName ;

    // 1. valider le nom de fichier : rejeter les caractères '\N' et ':'.
    if (contains_forbidden_chars(relName)) {
        return STATUS_INVALID_PARAMETER ;
    }

    // 2. construire OBJECT_ATTRIBUTES avec RootDirectory = sync root
    OBJECT_ATTRIBUTES oa = {0} ;
    oa.RootDirectory = SyncRootHandle ;
    oa.ObjectName = relName ; // pointe toujours vers la mémoire utilisateur mappée

    // Création du fichier
    return FltCreateFileEx2(..., &oa, IO_IGNORE_SHARE_ACCESS_CHECK, ...) ;
}

Les TOCTOU est claire : contains_forbidden_chars(relName) lit la chaîne de caractères une fois et décide qu'il est sûr, mais il n'y a aucune garantie qu'il le soit. relName reste la même chaîne au moment où FltCreateFileEx2() fonctionne.

En jouant soigneusement avec cette fenêtre, un attaquant peut :

  • Passez la validation avec quelque chose qui ressemble à un nom relatif bénin sous la racine de la synchronisation, par exemple JUSTASTRINGDnewfile.dllet ensuite
  • Inverser un caractère dans la mémoire tampon mappée de sorte qu'au moment où le fichier est créé, il devienne JUSTASTRING\newfile.dllJUSTASTRING est une jonction ou un lien symbolique pointant vers un répertoire privilégié tel que C:\NWindows\NSystem32.(Exodus Intelligence)

Étant donné que le chemin de création de fichiers n'applique pas de mesures de protection supplémentaires concernant les liens symboliques ou la traversée de jonctions, le pilote finit par créer un fichier contrôlé par l'attaquant à un emplacement qui ne devrait pas être accessible en écriture par un utilisateur disposant de faibles privilèges.

CVE-2025-55680 PoC : Transformer une condition de course de Windows Cloud Files en escalade de privilèges dans le monde réel

Modèle d'exploitation : De la coquille à faible privation au système

Exodus et de nombreux médias décrivent un modèle d'exploitation qui est techniquement non trivial mais très réaliste pour un attaquant déterminé ou une équipe rouge :(Exodus Intelligence)

  1. Configuration de l'environnement
    • Enregistrer un répertoire racine de synchronisation en utilisant CfRegisterSyncRoot.
    • Créez un répertoire sous cette racine (par ex. JUSTASTRING) et en faire une jonction vers un répertoire cible de grande valeur (par ex. C:\NWindows\NSystem32).
  2. Orchestration des courses
    • Utiliser plusieurs fils pour :
      • Émettre en permanence des demandes de création de placeholder (CfCreatePlaceholders → IOCTL 0x903BC) avec un nom relatif "sûr".
      • Retourne continuellement un octet dans le tampon de nom de fichier mappé pour introduire ou supprimer un \\ au bon moment.
      • Vérifier si le fichier cible (par ex. System32\newfile.dll) est apparu.
  3. Augmentation des privilèges via le détournement de DLL
    • Une fois qu'une DLL ou un exécutable arbitraire a été déposé dans un répertoire privilégié, il est possible d'utiliser un vecteur connu de sideloading de DLL ou de détournement de service pour obtenir un code s'exécutant avec les privilèges SYSTEM.
  4. Nettoyage
    • Supprimer les traces telles que la jonction et les fichiers temporaires afin de réduire les artefacts médico-légaux.

Du point de vue du défenseur, cela se traduit par une chaîne de comportements observables plutôt que par un seul "événement d'exploitation". Le tableau suivant résume les étapes :

StadeBut de l'attaquantSignaux observables (exemples)
Synchronisation de l'enregistrement de la racinePréparer le contexte des fichiers cloud contrôlésCfRegisterSyncRoot utilisation, nouveaux chemins d'accès à la racine de la synchronisation
Création de jonctionsChemin d'accès bénin à la cible privilégiéeLes jonctions entre les répertoires des utilisateurs et les C:\NWindows\NSystem32
Exécution de la courseWin TOCTOU pour créer un fichier dans le répertoire systèmeIOCTL haut débit 0x903BC, activité anormale en cldflt
Abandon et détournement de fichiersObtenir l'exécution du code au niveau du systèmeNouvelles DLL dans System32, anomalies dans les chemins d'accès aux services et aux images

Aucun de ces éléments n'est exotique pour les CED modernes ou les équipes de la DFIR, mais ils requièrent corrélation des opérations apparemment inoffensives (configuration de la synchronisation dans le nuage, jonctions, changement de placeholder) avec la création d'une seule DLL "bizarre".

Vue défensive : Détection, renforcement et stratégie des correctifs

La première étape évidente reste la plus efficace : appliquer les mises à jour du Patch Tuesday de Microsoft d'octobre 2025 qui remédient à CVE-2025-55680.Nouvelles sur la cybersécurité)

Toutefois, l'application de correctifs ne permet pas à elle seule de répondre aux questions opérationnelles qui préoccupent généralement les ingénieurs en sécurité :

  • Où, dans mon domaine, ce bogue aurait-il pu être exploité avant l'application du correctif ?
  • Quels sont les systèmes qui sont encore à la traîne en matière de mises à jour ?
  • Quelle télémétrie se déclencherait si quelqu'un l'essayait ?

Hôte et télémétrie EDR

Du point de vue de l'utilisateur final, cela vaut la peine d'ajuster la détection et de faire des recherches :

  • Comportement anormal de Cloud Files
    • Enregistrements rares ou ponctuels de racines de synchronisation sur des serveurs ou des postes de travail de grande valeur.
    • Volume IOCTL 0x903BC inattendu sur les systèmes qui ne sont pas de grands utilisateurs de OneDrive.(Nouvelles sur la cybersécurité)
  • Abus de jonction et de lien symbolique
    • Les jonctions créées à partir de chemins d'accès inscriptibles par l'utilisateur dans des répertoires privilégiés (System32, Program Files, etc.).
  • Création suspecte de fichiers dans des répertoires privilégiés
    • Nouvelles DLL ou nouveaux exécutables dans System32 ou dans d'autres répertoires du système d'exploitation avec des noms non standard ou compilés récemment.
    • Les corrélations entre ces créations et l'activité à haute fréquence dans le domaine de l'éducation et de la formation. cldflt.sys.

Mettez-le en correspondance avec MITRE ATT&CKCVE-2025-55680 est un moyen de mettre en œuvre des techniques telles que T1068 (Exploitation pour l'escalade des privilèges) puis de passer à un service ou à un détournement de DLL pour la persistance.

Atténuations architecturales et politiques

Au-delà des correctifs et de la détection, il convient de réfléchir :

ContrôleDescriptionNotes
Mise à jour de l'application de la cadenceVeiller à ce que les mises à jour du Patch Tuesday soient déployées en quelques jours, et non en quelques semaines.En particulier pour les hôtes VDI / multi-locataires.
Durcissement de OneDrive / Cloud FilesRestreindre l'utilisation de Files On-Demand sur les serveurs de grande valeur.Ce n'est pas toujours faisable, mais c'est puissant.
Modèle de poste de travail à moindre privilègeLimiter les personnes autorisées à installer des fournisseurs de synchronisation ou à enregistrer des racines de synchronisation.Réduit la surface d'attaque locale.
Règles EDR pour l'abus de jonctionAlerte sur les jonctions pointant vers les répertoires du système d'exploitation.Également utile au-delà de ce CVE.

Le H-ISAC et d'autres groupes industriels ont déjà publié des bulletins de menaces soulignant que Des exploits PoC sont disponibles et en encourageant l'application rapide de correctifs et une surveillance ciblée.Association américaine des hôpitaux)

Pourquoi CVE-2025-55680 est-il important pour le pentesting basé sur l'IA ?

CVE-2025-55680 illustre également un problème plus général : le temps qu'une équipe de sécurité entende parler d'une nouvelle escalade de privilèges dans Cloud Files, les PoC publics sont souvent soit indisponibles, soit incomplets, soit délibérément expurgés. Pourtant, la question difficile n'est pas de savoir si le CVE existe, mais plutôt de savoir si le CVE existe :

"Un attaquant peut-il utiliser CVE-2025-55680 dans notre environnement, sur nos terminaux, avec notre EDR et notre durcissement en place ?

Pour y répondre, il faut :

  • Comprendre la conditions préalables exactes (Fichiers en nuage activés, utilisation de OneDrive, capacités de création de jonctions).
  • Traduire le langage consultatif en une tentative d'exploitation concrète dans un laboratoire contrôlé.
  • Capture preuve (journaux, fichiers créés, arbres de processus) pour prouver l'impact ou démontrer que les contrôles existants le bloquent.

C'est ici que Outil de pentest assisté par l'IA commence à ressembler moins à un battage publicitaire qu'à un moyen pragmatique de boucler la boucle entre les informations sur les vulnérabilités et les risques réels.

Triage des PoC en un clic avec Penligent CVE-2025-55680

Triage des PoC en un clic avec Penligent

Des plateformes comme Penligent sont conçus pour automatiser exactement ce type de raisonnement. Pour un CVE tel que le CVE-2025-55680, un flux de travail typique piloté par l'IA ressemble à ce qui suit :

  1. Intégrer des informations structurées
    • Tirer le NVD / CVE.org les avis du CSEM et les analyses techniques (Exodus, Wiz, CyberPress).NVD)
    • Contraintes d'extraction : authentification locale requise, fichiers cloud activés, manipulation des chemins basée sur les jonctions, contournement des obstacles. HsmpOpCreatePlaceholders et FltCreateFileEx2.
  2. Correspondre à l'environnement cible réel
    • Identifier les hôtes Windows qui exécutent cldflt.sys avec l'option Cloud Files / OneDrive activée.
    • Vérifier si les racines de synchronisation et les politiques correspondantes existent sur ces machines.
  3. Synthèse d'un scénario de PoC contrôlé
    • Générer un squelette de logique d'exploitation qui enregistre une racine de synchronisation de test, met en place une jonction bénigne et tente une course de création de fichier basée sur un espace réservé. uniquement dans un environnement de laboratoire isolé.
    • L'instrumenter fortement avec la journalisation afin que les défenseurs obtiennent une observabilité maximale plutôt qu'un exploit de boîte noire.

Voici ce qu'un tel squelette non armé pourrait ressembler à un concept :

# Pseudocode : harnais de course (pour la validation du laboratoire seulement, pas un exploit complet)
def run_lab_race(target_path) :
    shared = create_mapped_buffer(initial_name="SAFEPLACEHOLDER")
    stop_flag = False

    def creator_thread() :
        while not stop_flag :
            issue_placeholder_ioctl(shared)

    def flipper_thread() :
        while not stop_flag :
            flip_buffer_byte(shared)
            tiny_sleep()

    def monitor_thread() :
        while not stop_flag :
            if privileged_file_exists(target_path) :
                log("[+] Course potentielle gagnée, fichier créé à", chemin_cible)
                stop_flag = True

    start_threads([creator_thread, flipper_thread, monitor_thread])

Il ne s'agit pas d'envoyer un autre exploit de type "copier-coller", mais de laisser le système raisonner à partir d'avis en langage naturel jusqu'à la structure du codepuis laisser les opérateurs humains décider comment et où le faire fonctionner.

  1. Capturer des preuves et générer un rapport
    • Si la course réussit, Penligent peut collecter automatiquement :
      • Artéfacts du système de fichiers (quel fichier a été créé à quel endroit).
      • Événements Windows et traces ETW pertinents.
      • Un texte expliquant l'impact et les mesures correctives recommandées.
    • S'il échoue dans des conditions réalistes, c'est également précieux : cela vous indique que vos correctifs et votre durcissement font leur travail.

Du flux CVE à l'impact validé

La plupart des organisations ingèrent désormais automatiquement les flux de vulnérabilités et les bulletins Patch Tuesday. L'écart se situe entre la liste des CVE et les classer en fonction de leur exploitabilité validée dans votre environnement.

En combinant des sources structurées telles que NVD et MSRC avec des articles techniques approfondis tels que la recherche Cloud Files d'Exodus, puis en laissant un moteur piloté par l'IA orchestrer le code et les expériences, vous pouvez le faire :

  • Traiter CVE-2025-55680 non pas comme une simple entrée dans une feuille de calcul, mais comme un risque spécifique, testé sur des machines spécifiques.
  • Construire des détections et des tableaux de bord autour de comportement observé des exploitset non de simples spéculations.
  • Réutilisez le même pipeline la prochaine fois que le mini-filtre Cloud Files (ou toute autre pile similaire adjacente au noyau) apparaîtra dans le Patch Tuesday.

L'objectif de Penligent dans ce domaine est simple : transformer les CVE tels que CVE-2025-55680 en réponses concrètes et étayées par des preuves à "sommes-nous réellement exposés à un risque, et où ?" - sans attendre de chaque ingénieur qu'il procède à une rétro-ingénierie des pilotes de noyau et qu'il élabore à la main des PoC à partir de zéro.

Partager l'article :
Articles connexes