On March 31, 2026, at 00:20 AM, a malicious version of axios@1.14.1 was published to npm. Five minutes later, Dependabot automatically opened its first pull requests. Within 40 minutes, the malware had already reached a production branch via an auto-merge. Within one hour, 895 public repositories had upgraded to the compromised version — with 111 Dependabot PRs and 30 Renovate PRs playing a central role. This wasn't a failure of Dependabot or Renovate. It was a demonstration of exactly what these bots are designed to do: automate fast. And that speed became a weapon.

Le 31 mars 2026 à 00h20, une version malveillante de axios@1.14.1 est publiée sur npm. Cinq minutes plus tard, Dependabot ouvre automatiquement ses premières pull requests. En 40 minutes, le malware atteint une branche de production via un auto-merge. En moins d'une heure, 895 dépôts publics ont mis à jour vers la version compromise — avec 111 PR Dependabot et 30 PR Renovate au cœur de la propagation. Ce n'était pas un échec de Dependabot ou Renovate. C'était exactement ce que ces bots sont conçus pour faire : automatiser vite. Et cette vitesse s'est retournée contre leurs utilisateurs.

In this guide, we break down the real differences between Dependabot and Renovate in 2026, explain the structural blind spots that no update bot covers, and show you the three-layer approach that leading security teams use to stay protected.

Dans ce guide, nous décortiquons les vraies différences entre Dependabot et Renovate en 2026, expliquons les angles morts structurels qu'aucun bot de mise à jour ne couvre, et vous montrons l'approche en trois couches que les équipes sécurité les plus solides utilisent pour rester protégées.

111
Dependabot PRs in the Axios malware spread
PR Dependabot dans la propagation du malware Axios
Source: GitGuardian, avril 2026
60%
Bot PRs merged with zero human review
PR de bots fusionnées sans aucune revue humaine
Source: GitGuardian, avril 2026
41 j
Median NVD delay to score a CVE
Délai médian du NVD pour scorer une CVE
Source: Sonatype, 2026
65%
Open source CVEs with no CVSS score assigned
CVE open source sans score CVSS assigné
Source: Sonatype, 2026

What Is Dependabot and What Is Renovate?

Qu’est-ce que Dependabot et Renovate ?

Both tools solve the same core problem: your dependencies go out of date, and manually tracking 50-300 packages across a project is unrealistic. They open pull requests when new versions are available — but they work very differently under the hood.

Les deux outils résolvent le même problème fondamental : vos dépendances deviennent obsolètes, et tracker manuellement 50 à 300 packages sur un projet est irréaliste. Ils ouvrent des pull requests quand de nouvelles versions sont disponibles — mais leur fonctionnement interne est très différent.

Dependabot was acquired by GitHub in 2019 and is now deeply integrated into the platform. Zero configuration required to start — GitHub enables it by default on all public repositories. It covers 30+ package managers (npm, pip, Maven, Cargo, Composer, NuGet, Go modules, Docker, Terraform, GitHub Actions, Helm, and more) and draws its security data from the GitHub Advisory Database, which contains over 28,000 manually reviewed advisories. It works exclusively on GitHub and Azure DevOps (limited).

Dependabot a été racheté par GitHub en 2019 et est désormais profondément intégré à la plateforme. Aucune configuration requise pour démarrer — GitHub l'active par défaut sur tous les dépôts publics. Il couvre 30+ gestionnaires de paquets (npm, pip, Maven, Cargo, Composer, NuGet, Go modules, Docker, Terraform, GitHub Actions, Helm, et plus) et puise ses données de sécurité dans la GitHub Advisory Database, qui contient plus de 28 000 advisories revus manuellement. Il fonctionne exclusivement sur GitHub et Azure DevOps (limité).

Renovate (by Mend.io) takes a different philosophy: maximum configurability. With 400+ configuration options, it supports 90+ package managers — three times more than Dependabot — including ecosystems like Bazel, Ansible, Azure Pipelines, CircleCI, and Kubernetes manifests. It runs on 7 platforms: GitHub, GitLab, Bitbucket, Azure DevOps, Forgejo, Gitea, and SCM-Manager. Auto-merge is a native first-class feature (Dependabot requires a separate GitHub Actions workflow). This flexibility makes Renovate the preferred choice for large engineering teams, monorepos, and multi-platform organizations.

Renovate (by Mend.io) adopte une philosophie différente : la configurabilité maximale. Avec 400+ options de configuration, il supporte 90+ gestionnaires de paquets — trois fois plus que Dependabot — incluant des écosystèmes comme Bazel, Ansible, Azure Pipelines, CircleCI et les manifestes Kubernetes. Il fonctionne sur 7 plateformes : GitHub, GitLab, Bitbucket, Azure DevOps, Forgejo, Gitea et SCM-Manager. L’auto-merge est une fonctionnalité native de premier ordre (Dependabot nécessite un workflow GitHub Actions séparé). Cette flexibilité fait de Renovate le choix privilégié des grandes équipes, monorepos et organisations multi-plateformes.

Dependabot vs Renovate: Feature Comparison 2026

Dependabot vs Renovate : Comparaison des Fonctionnalités 2026

Here is a direct feature comparison based on the current state of both tools:

Voici une comparaison directe des fonctionnalités basée sur l’état actuel des deux outils :

Feature Fonctionnalité Dependabot Renovate
Package managers Gestionnaires de paquets 30+ 90+
Git platforms Plateformes Git GitHub only 7 platforms
Zero-config setup Setup sans configuration ✅ Native ⚙️ Config needed
Auto-merge (native) Auto-merge (natif) ⚠️ Via Actions ✅ Native
Security advisory database Base d’advisories sécurité GitHub Advisory DB (28 000+) OSV + GitHub Advisory
Malware detection Détection de malware ⚠️ npm only (since Mar 2026) ❌ No
Grouping/scheduling PRs Groupement/planification des PR Basic Advanced (400+ options)
Cost Coût Free (GitHub) Free (self-hosted / Mend.io SaaS)

How Dependabot and Renovate Spread the Axios Malware in 2026

Comment Dependabot et Renovate ont Propagé le Malware Axios en 2026

The Axios supply chain attack of March 31, 2026 provided an unprecedented real-world test of what happens when dependency automation meets a compromised package. The timeline was brutal:

L’attaque supply chain d’Axios du 31 mars 2026 a fourni un test réel sans précédent de ce qui se passe quand l’automatisation des dépendances rencontre un package compromis. La chronologie était brutale :

GitGuardian, who analyzed the incident, coined the term "implicit trust" to describe what happened: "Dependabot and Renovate PRs carry an implicit trust that human PRs don't have — they're routine, expected, and often validated without scrutiny." When developers configure auto-merge for patch-level updates (a common practice for reducing noise), they're essentially granting bots the ability to introduce any code that arrives with a semver-compatible version bump. In the Axios case, 60% of bot PRs were merged completely automatically — by other bots.

GitGuardian, qui a analysé l’incident, a forgé le terme "confiance implicite" pour décrire ce qui s’est passé : "Les PR de Dependabot et Renovate portent une confiance implicite que les PR humaines n’ont pas — elles sont routinières, attendues, et souvent validées sans scrutin." Quand les développeurs configurent l’auto-merge pour les mises à jour de niveau patch (pratique courante pour réduire le bruit), ils accordent essentiellement aux bots la capacité d’introduire n’importe quel code qui arrive avec un bump de version semver-compatible. Dans le cas Axios, 60% des PR de bots ont été fusionnées complètement automatiquement — par d’autres bots.

The Structural CVE Blind Spot Both Bots Share

L’angle mort structurel CVE que partagent les deux bots

The Axios attack exposed a second, equally critical problem: dependency update bots are designed to track version changes, not CVE publications. These are not the same thing, and the gap between them is where your exposure lives.

L’attaque Axios a exposé un deuxième problème tout aussi critique : les bots de mise à jour de dépendances sont conçus pour suivre les changements de version, pas les publications de CVE. Ce ne sont pas la même chose, et l’écart entre les deux est là où réside votre exposition.

According to Sonatype's 2026 research, the NVD (National Vulnerability Database) takes a median 41 days to score a newly discovered vulnerability. Some CVEs take months, or over a year. During this window, Dependabot is largely silent — it cannot alert you to a vulnerability that isn't yet in its advisory database. Renovate faces the same limitation. Meanwhile, exploits for newly published CVEs typically appear within hours to days of disclosure, not 41 days later.

Selon les recherches Sonatype 2026, le NVD (National Vulnerability Database) met un délai médian de 41 jours pour scorer une vulnérabilité nouvellement découverte. Certaines CVE prennent des mois, voire plus d’un an. Pendant cette fenêtre, Dependabot est largement silencieux — il ne peut pas vous alerter d’une vulnérabilité qui n’est pas encore dans sa base d’advisories. Renovate fait face à la même limitation. Pendant ce temps, les exploits pour les CVE nouvellement publiées apparaissent en quelques heures à quelques jours après la divulgation, pas 41 jours plus tard.

The numbers are stark:

Les chiffres sont éloquents :

There's also the transitive dependency problem. Dependabot alerts on your direct dependencies, but 25% of teams don't even track transitive dependencies (Snyk 2024). Your package-lock.json may contain 500-2000 packages that neither bot monitors at the CVE level. A critical vulnerability in a deeply nested package can stay undetected for months.

Il y a aussi le problème des dépendances transitives. Dependabot alerte sur vos dépendances directes, mais 25% des équipes ne trackent même pas les dépendances transitives (Snyk 2024). Votre package-lock.json peut contenir 500 à 2000 packages qu’aucun bot ne surveille au niveau CVE. Une vulnérabilité critique dans un package profondément imbriqué peut rester indétectée pendant des mois.

When to Choose Dependabot vs Renovate

Quand Choisir Dependabot vs Renovate

The choice isn't binary — many teams use both. But here are the clear signals for each:

Le choix n’est pas binaire — beaucoup d’équipes utilisent les deux. Mais voici les signaux clairs pour chacun :

Choose Dependabot if:

Choisissez Dependabot si :

Choose Renovate if:

Choisissez Renovate si :

Safe Auto-Merge: The Configuration Rules That Matter

Auto-merge Sûr : Les Règles de Configuration qui Comptent

The lesson from Axios isn't "disable auto-merge." It's "configure auto-merge with appropriate guardrails." Here are the rules that actually reduce your risk:

La leçon d’Axios n’est pas "désactivez l’auto-merge." C’est "configurez l’auto-merge avec des garde-fous appropriés." Voici les règles qui réduisent réellement votre risque :

1. Never auto-merge patch updates from the full dependency tree

1. Ne jamais auto-merger les mises à jour patch de l’arbre de dépendances entier

Limit auto-merge to a trusted allowlist of well-maintained, high-reputation packages with a strong track record. If in doubt, require human review.

Limitez l’auto-merge à une allowlist de confiance de packages bien maintenus, de bonne réputation et avec un historique solide. Dans le doute, exigez une revue humaine.

2. Enable required status checks before auto-merge

2. Activer les checks de statut obligatoires avant l’auto-merge

Your CI pipeline (tests, SAST, lockfile audit) must pass before any bot PR is merged. This adds minutes of delay but blocks most malicious packages that don't pass behavioral tests.

Votre pipeline CI (tests, SAST, audit du lockfile) doit passer avant que toute PR de bot soit fusionnée. Cela ajoute quelques minutes de délai mais bloque la plupart des packages malveillants qui ne passent pas les tests comportementaux.

3. Pin GitHub Actions to commit SHA

3. Pinner les GitHub Actions sur le commit SHA

Only 7% of repositories currently pin their Actions correctly (per our GitHub Actions supply chain security guide). Use Renovate's pinDigests: true to automate this. For Dependabot, use insecure-external-code-execution: deny.

Seulement 7% des dépôts pinnent correctement leurs Actions actuellement (selon notre guide sécurité supply chain GitHub Actions). Utilisez pinDigests: true de Renovate pour automatiser cela. Pour Dependabot, utilisez insecure-external-code-execution: deny.

4. Add a "merge delay" buffer for new package versions

4. Ajouter un délai de "merge" pour les nouvelles versions de packages

Renovate supports a minimumReleaseAge setting (e.g., 3-7 days). This single setting would have prevented most of the Axios propagation — the malicious package was live for under 24 hours before being removed. Dependabot doesn't have this feature natively.

Renovate supporte un paramètre minimumReleaseAge (ex: 3-7 jours). Ce seul paramètre aurait empêché la plupart de la propagation Axios — le package malveillant était en ligne depuis moins de 24 heures avant d’être retiré. Dependabot n’a pas cette fonctionnalité nativement.

renovate.json — Safe auto-merge config
{
  "$schema": "https://docs.renovatebot.com/renovate-schema.json",
  "packageRules": [
    {
      "matchDepTypes": ["devDependencies"],
      "matchUpdateTypes": ["patch"],
      "automerge": true,
      "minimumReleaseAge": "5 days",
      "matchPackageNames": ["eslint", "prettier", "typescript"]
    }
  ],
  "pinDigests": true,
  "vulnerabilityAlerts": {
    "enabled": true,
    "automerge": false
  }
}

The Three-Layer Dependency Security Stack

La Stack de Sécurité en Trois Couches

Dependabot and Renovate are excellent at one thing: opening PRs when new versions are available. But version updates ≠ CVE coverage. Modern security teams combine three complementary layers:

Dependabot et Renovate excellent dans une chose : ouvrir des PR quand de nouvelles versions sont disponibles. Mais mises à jour de version ≠ couverture CVE. Les équipes sécurité modernes combinent trois couches complémentaires :

🤖
Layer 1 — Update Bot
Dependabot or Renovate. Keeps versions current. Opens PRs. Essential baseline.
Couche 1 — Bot de mise à jour
Dependabot ou Renovate. Maintient les versions à jour. Ouvre des PR. Baseline essentielle.
🔍
Layer 2 — Continuous CVE Monitor
Scans your lockfile daily against multi-source CVE feeds (OSV.dev, GHSA, NVD). Alerts you to vulnerabilities even when no new version exists yet.
Couche 2 — Monitoring CVE continu
Scanne votre lockfile quotidiennement contre des flux CVE multi-sources (OSV.dev, GHSA, NVD). Vous alerte sur les vulnérabilités même quand aucune nouvelle version n’existe encore.
🛡️
Layer 3 — CI/CD Gate
Lockfile integrity check + SAST in your pipeline. Blocks malicious packages before they reach production regardless of bot automation.
Couche 3 — Gate CI/CD
Vérification d’intégrité du lockfile + SAST dans votre pipeline. Bloque les packages malveillants avant qu’ils n’atteignent la production, quelle que soit l’automatisation des bots.

The key insight of Layer 2 is timing: CVE OptiBot uses OSV.dev as its primary data source, which aggregates advisories from GitHub, PyPI, crates.io, npm, OSS-Fuzz, and more — often days before the NVD has scored a new CVE. When a critical vulnerability appears in express, requests, or lodash today, you get an alert today — not 41 days later when Dependabot's advisory database catches up.

L’insight clé de la Couche 2 est le timing : CVE OptiBot utilise OSV.dev comme source de données principale, qui agrège les advisories de GitHub, PyPI, crates.io, npm, OSS-Fuzz, et plus — souvent des jours avant que le NVD n’ait scoré une nouvelle CVE. Quand une vulnérabilité critique apparaît dans express, requests, ou lodash aujourd’hui, vous recevez une alerte aujourd’hui — pas 41 jours plus tard quand la base d’advisories de Dependabot se met à jour.

Frequently Asked Questions

Questions fréquentes

Should I disable auto-merge after the Axios attack?

Dois-je désactiver l’auto-merge après l’attaque Axios ?

Not necessarily. Auto-merge is safe for a well-defined scope: devDependencies at patch level, with a minimumReleaseAge of 3-5 days and required CI checks. Never auto-merge production dependencies without human review. The Axios attack succeeded because many projects had blanket auto-merge for all packages including axios (a production HTTP client).

Pas nécessairement. L’auto-merge est sûr pour un périmètre bien défini : devDependencies au niveau patch, avec un minimumReleaseAge de 3-5 jours et des checks CI obligatoires. Ne jamais auto-merger les dépendances de production sans revue humaine. L’attaque Axios a réussi parce que beaucoup de projets avaient un auto-merge global pour tous les packages, y compris axios (un client HTTP de production).

Can I use both Dependabot and Renovate on the same repository?

Puis-je utiliser Dependabot et Renovate sur le même dépôt ?

Technically yes, but it creates PR noise and conflicts. Most teams disable Dependabot's version updates when adopting Renovate, while keeping Dependabot security alerts active (they're a separate feature). Renovate can handle all version updates while Dependabot provides its native GitHub security alert integration.

Techniquement oui, mais cela crée du bruit de PR et des conflits. La plupart des équipes désactivent les mises à jour de version de Dependabot en adoptant Renovate, tout en gardant les alertes de sécurité Dependabot actives (c’est une fonctionnalité séparée). Renovate peut gérer toutes les mises à jour de version pendant que Dependabot fournit son intégration native d’alertes de sécurité GitHub.

What does Dependabot miss that CVE monitoring catches?

Qu’est-ce que Dependabot manque que le monitoring CVE détecte ?

Three main categories: (1) CVEs not yet in the GitHub Advisory Database (NVD delay of 41 days median), (2) vulnerabilities in transitive dependencies that Dependabot doesn't surface prominently, and (3) ecosystem-specific advisories from PyPI, crates.io, or RubyGems that aren't yet synchronized. CVE monitoring via OSV.dev covers all three because it aggregates from many upstream sources simultaneously.

Trois catégories principales : (1) Les CVE pas encore dans la GitHub Advisory Database (délai NVD médian de 41 jours), (2) les vulnérabilités dans les dépendances transitives que Dependabot ne remonte pas clairement, et (3) les advisories spécifiques aux écosystèmes (PyPI, crates.io, RubyGems) pas encore synchronisés. Le monitoring CVE via OSV.dev couvre les trois car il agrège depuis de nombreuses sources upstream simultanément.

Is Renovate safer than Dependabot for supply chain risks?

Renovate est-il plus sûr que Dependabot pour les risques supply chain ?

Neither is inherently safer — they face the same structural risk: both open PRs for new versions without verifying package integrity or detecting malicious code injection. Renovate's minimumReleaseAge setting is a meaningful advantage for reducing the malicious package window. But fundamentally, both tools need to be complemented by lockfile integrity scanning and independent CVE monitoring to cover the full attack surface.

Aucun n’est intrinsèquement plus sûr — ils font face au même risque structurel : les deux ouvrent des PR pour les nouvelles versions sans vérifier l’intégrité des packages ni détecter les injections de code malveillant. Le paramètre minimumReleaseAge de Renovate est un avantage significatif pour réduire la fenêtre de packages malveillants. Mais fondamentalement, les deux outils ont besoin d’être complétés par un scan d’intégrité du lockfile et un monitoring CVE indépendant pour couvrir la surface d’attaque complète.

How long does it take to set up CVE OptiBot alongside Dependabot?

Combien de temps faut-il pour configurer CVE OptiBot en parallèle de Dependabot ?

CVE OptiBot scans your lockfiles (package-lock.json, yarn.lock, requirements.txt, composer.lock, etc.) via a simple upload or API integration. No agent to install, no code access required. Setup takes under 5 minutes. The two tools work in parallel: Dependabot handles version updates, CVE OptiBot provides continuous CVE coverage including the pre-NVD window.

CVE OptiBot scanne vos lockfiles (package-lock.json, yarn.lock, requirements.txt, composer.lock, etc.) via un simple upload ou une intégration API. Aucun agent à installer, aucun accès au code requis. Le setup prend moins de 5 minutes. Les deux outils fonctionnent en parallèle : Dependabot gère les mises à jour de version, CVE OptiBot fournit une couverture CVE continue incluant la fenêtre pré-NVD.

Add CVE Monitoring to Your Dependabot or Renovate Setup

Ajoutez le Monitoring CVE à votre Setup Dependabot ou Renovate

Dependabot and Renovate open PRs for new versions. CVE OptiBot tells you which packages in your current lockfile have live vulnerabilities — including the ones that won't show up in Dependabot for another 41 days. Scan any npm, Python, WordPress, or Laravel project in minutes.

Dependabot et Renovate ouvrent des PR pour les nouvelles versions. CVE OptiBot vous dit quels packages dans votre lockfile actuel ont des vulnérabilités actives — y compris celles qui n’apparaîtront pas dans Dependabot pendant encore 41 jours. Scannez n’importe quel projet npm, Python, WordPress ou Laravel en quelques minutes.

Start free CVE monitoring Démarrer le monitoring CVE gratuit