Trop d’alertes Dependabot ? Suivez le chemin vers la fonction vulnérable

Dev
Vues 2

Un même paquet ne signifie pas la même urgence : un service appelle la fonction vulnérable lors d’une requête, un autre installe le paquet sans utiliser cette fonction. La préversion publique de l’analyse d’accessibilité Dependabot annoncée le 28 octobre 2026 éclaire cette différence.

Du paquet au chemin d’appels

Dependabot identifie les versions vulnérables. La nouvelle analyse cherche un chemin du code du dépôt à la fonction concernée. Un workflow Actions géré par GitHub utilise CodeQL pour construire un graphe et le comparer aux données sélectionnées des avis de sécurité.

Notre code fictif relie une API de commandes à package.parseUnsafe via un intermédiaire. Une autre entrée appelle uniquement package.formatLabel et n’atteint pas la cible dans ce graphe. Ce n’est ni une faille réelle ni une exécution de l’analyseur GitHub, mais une explication des limites d’une liste de paquets.

Exemple JavaScript fictif créé pour l’article : commandes mène à parseUnsafe, étiquettes à formatLabel. Ni faille réelle ni écran officiel.
Exemple JavaScript fictif créé pour l’article : commandes mène à parseUnsafe, étiquettes à formatLabel. Ni faille réelle ni écran officiel.

Quatre verdicts différents

Reachable signifie qu’au moins un chemin existe, sans prouver qu’une attaque est possible. Les entrées externes et l’exécution en production comptent encore. Les cinq chemins d’exemple au maximum ne constituent pas une liste exhaustive.

Potentially reachable signifie qu’un appel n’a pas pu être exclu et doit être priorisé avec Reachable. Unreachable correspond à une analyse terminée sans chemin trouvé ; Reachability unavailable, à l’absence de verdict. Ces états ne sont pas équivalents et aucun ne ferme ou n’ignore automatiquement une alerte.

Un changement de code ne met pas immédiatement le verdict à jour

L’activation lance le premier scan. Les suivants ont lieu toutes les 24 heures tant que des alertes restent ouvertes. Un push ne déclenche pas de scan immédiat ; la préversion ne propose pas de scan à la demande.

Supprimer l’appel aujourd’hui peut donc laisser un ancien Reachable affiché. Ajouter un appel peut conserver temporairement un ancien Unreachable. La seconde image montre une véritable traversée Python de notre graphe fictif. Pour une correction réelle, rapprochez la date du scan du code effectivement analysé.

Sortie Python réelle du graphe fictif : chemin trouvé et absent. Elle ne mesure ni les verdicts GitHub ni l’exploitabilité.
Sortie Python réelle du graphe fictif : chemin trouvé et absent. Elle ne mesure ni les verdicts GitHub ni l’exploitabilité.

Dépôts pris en charge

La préversion concerne GitHub Enterprise Cloud, résidence des données comprise. Elle nécessite JavaScript ou TypeScript, un lockfile npm, Yarn ou pnpm et les alertes Dependabot activées. La licence GitHub Code Security n’est pas nécessaire. Les scans sont gratuits et ne consomment pas de minutes Actions facturées ; les runners autohébergés ne sont pas pris en charge.

La fonction est désactivée par défaut. Activez-la dans Settings > Advanced Security ou via une configuration de sécurité personnalisée. Certains grands monorepos atteignent la limite de trois heures ou de ressources. Gravité, EPSS et exposition en production restent utiles. Le bénéfice est une priorité mieux étayée entre alertes ouvertes.

Sources et lectures complémentaires

GitHub Changelog · 2026-10-28

GitHub Docs · Reachability analysis