Épinglage des workflows
Un tag tel que @v4 est un pointeur que le mainteneur de l’action, ou un attaquant qui prend le contrôle de son compte, peut déplacer. Un SHA de commit de 40 caractères ne peut pas être déplacé.
Ce qui est vérifié
Une analyse quotidienne lit chaque fichier *.yml et *.yaml dans .forgejo/workflows/, .gitea/workflows/ et .github/workflows/ des dépôts de votre organisation. Forgejo exécute aussi .github/workflows/, si bien que les trois sont vérifiés. Elle liste :
- chaque référence d’action
uses:qui pointe vers un tag ou une branche au lieu d’un SHA de commit de 40 caractères ; - chaque image d’étape
uses: docker://<image>référencée par un tag, ou sans tag du tout, ce qui signifielatest, au lieu d’un digest. Un tag d’image peut être poussé à nouveau avec un contenu différent. Une image épinglée ressemble àdocker://<image>@sha256:<64 hex characters>; un tag avant le digest est autorisé.
La liste se trouve sous Sécurité › Corriger › Épinglage des workflows (/<org>/_admin/security/fix/workflow-pinning), groupée par dépôt. Les références d’images portent le type docker.
Ne sont pas vérifiés : les fichiers de workflow situés dans des sous-répertoires ou ailleurs, et une image nommée par une expression telle que docker://${{ env.IMAGE }}.
Les épingler avec une pull request
Pour un dépôt de la liste, un clic ouvre une pull request qui remplace chaque référence d’action listée par le SHA de commit du dépôt frem.sh/mirrors/ correspondant, et conserve le tag d’origine en commentaire. Elle est ouverte sur une nouvelle branche bot/sha-pin-actions-<time>. Une référence qui ne peut pas être résolue est laissée telle quelle.
La pull request n’épingle pas les images docker:// : il n’existe pas de miroir d’où tirer le digest. Épinglez-les à la main, par exemple avec le digest qu’affiche docker buildx imagetools inspect <image>:<tag>.
La même opération est disponible via POST /_app/api/v1/orgs/{org}/security/sha-pin-rewrite avec {"repo_full_name": "<org>/<repo>"} (portée findings:write).
Les références épinglées restent tenues à jour : les Mises à jour des dépendances proposent de nouvelles versions et réécrivent ensemble le SHA et son commentaire.