Aikido

Une attaque de la supply chain cible les packages Laravel-Lang avec un voleur de credentials

Écrit par
Ilyas Makari

Le 22 mai 2026, nous avons détecté une attaque active de la supply chain contre Laravel-Lang. Nous avons déposé un rapport auprès des mainteneurs immédiatement. L'attaquant a publié des tags de version malveillants sur trois dépôts largement utilisés, injectant du code de vol de credentials qui se charge automatiquement via la fonctionnalité d'autoloader de composer.

Ce qui rend cela particulièrement insidieux, c'est que le code malveillant n'a jamais été commité dans les dépôts officiels. GitHub permet aux tags de version de pointer vers des commits provenant d'un fork du même dépôt. L'attaquant a exploité cette fonctionnalité pour créer des tags pointant vers des commits dans un fork malveillant qu'il contrôlait.

233 versions sont actuellement compromises, réparties sur :

  • laravel-lang/lang (7.8k stars)
  • laravel-lang/attributes
  • laravel-lang/http-statuses

Nous avons également signalé l'attaque à Packagist, qui a réagi immédiatement en retirant les versions malveillantes et en déréférençant temporairement les packages affectés pour empêcher de nouvelles installations.

Étape 1 : Le dropper

L'attaquant a introduit un fichier nommé src/helpers.php dans les tags de version affectés. En apparence, il ressemble à un helper de localisation Laravel de routine, définissant deux fonctions inoffensives : laravel_lang_locale() et laravel_lang_fallback(). Sous ces fonctions, le véritable travail commence.

Un bloc de code auto-exécutable s'exécute une seule fois sur chaque machine qu'il infecte. Il identifie l'hôte en utilisant un hash du chemin de fichier, du nom d'hôte et de l'inode, puis écrit un fichier marqueur dans le répertoire temporaire du système afin de ne s'exécuter qu'une seule fois. Le domaine C2 est caché dans un tableau d'entiers décodé à l'exécution pour échapper aux scanners statiques. Il se résout en flipboxstudio[.]info.

Le dropper récupère ensuite un payload depuis flipboxstudio[.]info/payload en utilisant file_get_contents avec un fallback curl, les deux avec la vérification SSL désactivée. Sous Windows, il dépose un lanceur .vbs et exécute le payload silencieusement via cscript. Sous Linux et macOS, il exécute le payload en arrière-plan via exec().

Étape 2 : Le stealer

Le payload récupéré est un stealer de credentials PHP d'environ 5 900 lignes, organisé en quinze modules collecteurs spécialisés. Après avoir collecté tout ce qu'il peut trouver, il chiffre les résultats avec AES-256 et les envoie à flipboxstudio[.]info/exfil. Il se supprime ensuite du disque pour limiter les preuves forensiques.

Ce qu'il dérobe

Credentials cloud

  • Clés d'accès AWS, clés secrètes et jetons de session (depuis l'environnement, ~/.aws/credentials et métadonnées d'instance EC2 en direct)
  • informations d'identification par défaut des applications GCP, bases de données de jetons d'accès et toutes les configurations CLI nommées
  • jetons d'accès Azure, cache MSAL et profils de principal de service
  • jetons d'authentification DigitalOcean, Heroku, Vercel, Netlify, Railway et Fly.io

Secrets d'infrastructure

  • Tous les fichiers kubeconfig, y compris /etc/kubernetes/admin.conf
  • Jetons HashiCorp Vault
  • Configurations de dépôts Helm
  • Docker config.json

Informations d'identification des développeurs

  • Clés privées SSH
  • Tous les .git-credentials et .gitconfig fichiers
  • .netrc, .npmrc, .yarnrc, .pypirc, .gem/credentials, .composer/auth.json
  • jetons d'authentification GitHub CLI, GitLab CLI et Hub CLI
  • Fichiers d'historique de shell (bash, zsh, psql, mysql, python, node)
  • Tous les .env fichiers et fichiers de configuration trouvés en scannant récursivement le répertoire de travail (wp-config.php, settings.py, docker-compose.yml, secrets.yaml et plus)

Navigateurs et gestionnaires de mots de passe

  • Mots de passe enregistrés de 17 navigateurs basés sur Chromium : Chrome, Edge, Brave, Opera, Opera GX, Vivaldi, Chromium, Yandex et plus. Sous Windows, un utilitaire intégré .exe est déployé pour déchiffrer la base de données de connexion de Chrome protégée par DPAPI
  • Firefox et Thunderbird logins.json et key4.db sur tous les profils
  • KeePass .kdbx et .kdb fichiers de base de données
  • Fichiers de coffre-fort locaux 1Password et Bitwarden

Portefeuilles de cryptomonnaies

  • Fichiers de portefeuille Bitcoin, Ethereum, Monero, Litecoin, Dash, Dogecoin et Zcash
  • Portefeuilles Electrum, Exodus, Atomic, Ledger Live, Trezor, Wasabi et Sparrow
  • Portefeuilles d'extension de navigateur par ID d'extension : MetaMask, Phantom, Trust Wallet, Ronin, Keplr, Solflare et Rabby

Spécifique à Windows

  • Entrées du Gestionnaire d'informations d'identification et du Coffre-fort Windows
  • Sessions enregistrées PuTTY et WinSCP (les mots de passe WinSCP sont activement déchiffrés)
  • .rdp fichiers depuis le Bureau, les Documents et les Téléchargements
  • Profils de registre Outlook, inventaire des fichiers OST/PST et entrées du Gestionnaire d'informations d'identification pour les services Microsoft

Plateformes de communication

  • Jetons Slack
  • Jetons de bot Discord 
  • Jetons de bot Telegram

Configurations VPN

  • Fichiers de configuration et informations d'identification extraites pour NordVPN, ExpressVPN, ProtonVPN, CyberGhost, Private Internet Access, Windscribe, Mullvad, Surfshark, WireGuard et OpenVPN

Comment Aikido détecte cela

Si vous êtes un utilisateur Aikido, vérifiez votre flux central et filtrez les problèmes de logiciels malveillants. Cela apparaîtra comme un problème critique 100/100. Aikido effectue des rescans nocturnes, mais nous vous recommandons de déclencher un rescan manuel dès maintenant.

Si vous n'êtes pas encore un utilisateur Aikido, vous pouvez créer un compte et connecter vos dépôts. Notre couverture des logiciels malveillants est incluse dans le plan gratuit, aucune carte de crédit requise.

Pour une couverture plus large de toute votre équipe, l'Endpoint Protection d'Aikido vous offre une visibilité et un contrôle sur les packages logiciels installés sur les appareils de votre équipe. Elle couvre les extensions de navigateur, les bibliothèques de code, les plugins d'IDE et les dépendances de build, le tout en un seul endroit. Arrêtez les logiciels malveillants avant qu'ils ne soient installés.

Pour une protection future, envisagez Aikido Safe Chain (open source). Safe Chain s'intègre à votre flux de travail existant, en interceptant les commandes npm, npx, yarn, pnpm et pnpx et en vérifiant les paquets par rapport à Aikido Intel avant l'installation.

‌Indicateurs de compromission

Réseau

  • flipboxstudio.info (domaine C2)
  • flipboxstudio.info/payload (récupération du dropper)
  • flipboxstudio.info/exfil (point de terminaison d'exfiltration)

Fichiers et chemins

  • <tmp>/.laravel_locale/<md5_hash> (marqueur d'infection)
  • <tmp>/.laravel_locale/<12 random hex chars>.php (stealer déposé)
  • <tmp>/.laravel_locale/<8 random hex chars>.vbs (lanceur Windows)
Partager :

https://www.aikido.dev/blog/supply-chain-attack-targets-laravel-lang-packages-with-credential-stealer

4,7/5
Fatigué des faux positifs ?
Essayez Aikido, comme 100 000 autres.
Commencez maintenant
Obtenez une démonstration personnalisée

Approuvé par plus de 100 000 équipes

Réserver maintenant
Analysez votre application à la recherche d'IDORs et de chemins d'attaque réels

Approuvé par plus de 100 000 équipes

Démarrer l'analyse
Découvrez comment le pentest IA teste votre application

Approuvé par plus de 100 000 équipes

Démarrer les tests

Sécurisez votre environnement dès maintenant.

Sécurisez votre code, votre cloud et votre environnement d’exécution dans un système centralisé unique.
Détectez et corrigez les vulnérabilités rapidement et automatiquement.

Aucune carte de crédit requise | Résultats en 32 secondes.