Une vulnérabilité dans le gestionnaire d'actions GitHub a permis de compromettre les packages dans Nixpkgs.

Des vulnérabilités dans les gestionnaires d'actions GitHub, automatiquement invoqués lors de la soumission de requêtes d'extraction au dépôt de paquets Nixpkgs, utilisé dans la distribution NixOS et l'écosystème de gestion de paquets Nix, ont été révélées. Cette vulnérabilité permettait à un utilisateur non autorisé d'extraire un jeton accordant un accès en lecture et en écriture au code source de tous les paquets hébergés dans Nixpkgs. Ce jeton permettait de modifier directement n'importe quel paquet via le dépôt Git du projet, contournant ainsi les processus de révision et d'approbation.

La possibilité de compromettre Nixpkgs et d'injecter du code personnalisé dans n'importe quel paquet a été démontrée par des chercheurs en sécurité en octobre dernier lors de la conférence NixCon et a été immédiatement corrigée dans l'infrastructure du projet. Cependant, les détails de l'attaque n'ont été divulgués qu'un an plus tard. Le problème était lié à l'utilisation de gestionnaires d'actions GitHub dans le dépôt GitHub Nixpkgs, liés à l'événement « pull_request_target » et effectuant des vérifications automatiques lors de nouvelles requêtes d'extraction.

Contrairement à l'événement « pull_request », les gestionnaires de « pull_request_target » disposent d'un accès en lecture/écriture à l'environnement de compilation, ce qui nécessite une attention particulière lors de l'utilisation des données transmises dans une requête de tirage. L'un des gestionnaires liés à « pull_request_target » a validé le fichier « OWNERS » fourni dans la requête de tirage en compilant et en appelant l'utilitaire codeowners-validator : étapes : — uses : actions/checkout@eef61447b9ff4aafe5dcd4e0bbf with : ref : refs/pull/$/merge path : pr — run : nix-build base/ci -A codeownersValidator — run : result/bin/codeowners-validator env : OWNERS_FILE : pr/ci/OWNERS

Le problème résidait dans le fait que si le fichier OWNERS était mal formaté, l'utilitaire codeowners-validator enregistrait le contenu de la chaîne malformée dans le journal standard, accessible au public. L'attaque consistait à placer un lien symbolique nommé OWNERS dans la requête d'extraction, pointant vers le fichier « .credentials », qui stocke les identifiants dans l'environnement de compilation. Par conséquent, le traitement de ce fichier provoquait une erreur et la première ligne, contenant le jeton d'accès au dépôt, était enregistrée dans le journal public.

Une vulnérabilité dans le gestionnaire d'actions GitHub a permis de compromettre les packages dans Nixpkgs.

De plus, une autre vulnérabilité a été découverte dans le gestionnaire qui vérifie les règles editorconfig. étapes : — nom : obtenir la liste des fichiers modifiés à partir de PR exécuter : gh api […] | jq [ … ] > « $HOME/changed_files » — utilise : actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 avec : ref : refs/pull/$/merge — nom : vérification d'EditorConfig exécuter : cat « $HOME/changed_files » | xargs -r editorconfig-checker

Dans ce cas, le problème résidait dans l'utilisation de l'utilitaire « xargs » pour exécuter editorconfig-checker avec chaque fichier de la pull request. Les noms de fichiers n'étant pas validés, un attaquant pouvait inclure un fichier contenant des caractères spéciaux dans la pull request, qui seraient traités comme des arguments de ligne de commande lors de l'exécution d'editorconfig-checker. Par exemple, lors de la création d'un fichier « --help », editorconfig-checker affichait un indice sur les options disponibles.

Source: opennet.ru

Achetez un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Achetez un hébergement web fiable avec protection DDoS, serveurs VPS et VDS | ProHoster