Une attaque sur la chaîne d’approvisionnement des outils de localisation Laravel Lang a exposé des développeurs à une campagne de malware sophistiquée. Les attaquants ont utilisé des tags de version sur GitHub pour distribuer du code malveillant via les paquets Composer.
Les entreprises de sécurité StepSecurity, Aikido Security et Socket ont alerté sur cette compromission. Les attaquants ont réécrit les tags GitHub dans quatre dépôts maintenus par l’organisation Laravel Lang, au lieu de publier des versions malveillantes entièrement nouvelles.
Les paquets affectés sont laravel-lang/lang, laravel-lang/http-statuses, laravel-lang/attributes et potentiellement laravel-lang/actions. Ces paquets Laravel Lang sont des outils de localisation tiers et ne font pas partie du projet Laravel officiel.
Selon Aikido, les attaquants ont compromis 233 versions dans trois dépôts. Socket a indiqué que près de 700 versions historiques ont pu être touchées.
Cette attaque est particulière car le code source des projets n’a pas été modifié. Les attaquants ont exploité une fonctionnalité GitHub qui permet aux tags de pointer vers des commits dans des forks du même dépôt.
« L’attaquant a réécrit chaque tag git existant dans chaque dépôt pour qu’il pointe vers un nouveau commit malveillant », a expliqué StepSecurity.
« Les réécritures ont commencé à 22h32 UTC contre laravel-lang/lang et ont fini vers 00h00 UTC contre laravel-lang/actions. Les quatre dépôts partagent la même identité d’auteur falsifiée, les mêmes fichiers modifiés et le même comportement du payload, ce qui montre que c’est le travail d’un seul acteur qui utilise un seul accès compromis. »
Cette méthode a permis aux attaquants de publier des tags de release qui semblait légitimes pour le projet, mais qui pointaient vers des commits malveillants stockés dans un fork contrôlé par l’attaquant.
Quand les développeurs ont installé le paquet via Composer, le système a téléchargé le code malveillant alors que l’installation semblait être une release normale de Laravel Lang.
Un programme vole les identifiants
Les chercheurs ont découvert que les releases malveillantes introduisent un fichier nommé ‘src/helpers.php’, qui est automatiquement chargé par Composer.

Le code injecté agit comme un dropper qui télécharge un second payload depuis le serveur de commande et contrôle des attaquants à flipboxstudio[.]info.
Le payload PHP téléchargé est un voleur d’identifiants multiplateforme pour Linux, macOS et Windows qui collecte les identifiants cloud, les secrets Kubernetes, les tokens Vault, les identifiants Git, les secrets CI/CD, les clés SSH, les données de navigateur, les wallets de cryptomonnaies, les gestionnaires de mots de passe, les configurations VPN et les fichiers de configuration locaux `.env`.
Le malware contient aussi des patterns d’expression régulière qui servent à extraire les clés AWS, les tokens GitHub, les tokens Slack, les secrets Stripe, les identifiants de bases de données, les JWTs, les clés privées SSH et les phrases de récupération de cryptomonnaies depuis les fichiers et les variables d’environnement.

Source : BleepingComputer
Sur les systèmes Windows, le payload PHP extrait aussi un exécutable encodé en base64 qui est intégré dans le fichier. Il est écrit dans le dossier %TEMP% sous un nom .exe aléatoire et ensuite lancé.
L’analyse de BleepingComputer du voleur d’identifiants Windows montre qu’il est nommé ‘DebugElevator’. Il est conçu pour cibler Chrome, Brave et Edge et extrait les clés de chiffrement App-Bound qui sont nécessaires pour déchiffrer les identifiants stockés dans le navigateur.

Source : BleepingComputer
Un chemin PDB intégré fait référence au nom de compte Windows ‘Mero’ et contient ‘claude’. Cela pourrait indiquer que l’IA a été utilisée pour aider à développer le malware Windows.
C:UsersMeroOneDriveDesktopstuffclaudeChromium-DebugElevatorx64ReleaseDebugChromium.pdb
Les chercheurs disent que quand les données sensibles sont extraites, le malware chiffre ces données et les renvoie au serveur de commande et contrôle.
Aikido a signalé l’incident à Packagist. Packagist a répondu rapidement et a retiré les versions malveillantes et a temporairement retiré la liste des paquets affectés pour empêcher des installations supplémentaires.
Les développeurs qui utilisent les paquets Laravel Lang doivent examiner les versions des paquets installés, changer les identifiants exposés, inspecter les systèmes pour trouver des indicateurs de compromission et, si possible, vérifier les connexions sortantes historiques vers flipboxstudio[.]info.
