Wat is een CVE?
CVE staat voor Common Vulnerabilities and Exposures: een publiek register van bekende beveiligingslekken in software. Elk lek krijgt een uniek ID, zoals CVE-2024-12345, met een beschrijving, ernst (CVSS-score) en de getroffen versies.
Als een van onze Composer-packages of een gebruikte GitHub Action een CVE krijgt, willen we dat zo snel mogelijk weten — en oplossen.
Het probleem zonder automatisering
Zonder tooling verloopt dat proces traag en foutgevoelig:
- Een beveiligingslek wordt gepubliceerd in de CVE-database
- De maintainer van de package brengt een patchversie uit
- Misschien lees je er iets over via een nieuwsbrief of social media
- Ergens in de komende weken of maanden voer je
composer updateuit - Je test, mergt, deployt — als je er überhaupt aan denkt
In dat gat zit het risico: een kwetsbare versie draait in productie terwijl er al een patch beschikbaar is.
Hoe Dependabot CVE's oppikt
Dependabot is rechtstreeks gekoppeld aan de GitHub Advisory Database — een actief bijgehouden database van beveiligingslekken in open-source packages. Zodra een advisory is gepubliceerd die betrekking heeft op een van onze dependencies, opent Dependabot automatisch een Pull Request met de veilige versie.
Dat werkt onafhankelijk van de wekelijkse scan: beveiligingsupdates worden direct getriggerd, niet pas de volgende maandag.
CVE gepubliceerd
↓
GitHub Advisory Database bijgewerkt
↓
Dependabot herkent kwetsbare versie in composer.lock
↓
Pull Request geopend met label "security"
↓
CI draait automatisch
↓
Merge → veilige versie live
Waarom dit concreet waardevol is
Enkele bekende CVE's die via dit kanaal tijdig opgepakt worden:
- symfony/http-kernel — meerdere CVE's over de jaren, waaronder path-traversal en request-smuggling
- league/commonmark — XSS-kwetsbaarheden in Markdown-parsing
- GitHub Actions — kwaadaardige of gecompromitteerde action-versies (supply chain attacks)
Zonder Dependabot zou je deze pas ontdekken tijdens een handmatige audit — als je die al uitvoert.
Het verschil met composer audit
We draaien al composer audit in onze CI-pijplijn. Dat controleert de huidige composer.lock tegen de advisory database. Het verschil:
composer audit |
Dependabot | |
|---|---|---|
| Wanneer | Bij elke CI-run | Continu, bij nieuwe advisories |
| Actie | Rapporteert het probleem | Opent direct een PR met de fix |
| Scope | Composer | Composer + GitHub Actions |
Ze vullen elkaar aan: composer audit blokkeert een build als er een kwetsbaarheid in zit; Dependabot zorgt ervoor dat die kwetsbaarheid er zo min mogelijk in zit.
Conclusie
Dependabot is primair gekozen vanwege de CVE-koppeling. Updates bijhouden is handig, maar het vroegtijdig signaleren van bekende beveiligingslekken — en direct een klare PR aanleveren — is de eigenlijke waarde. Samen met composer audit in CI vormt dit een solide eerste verdedigingslinie voor supply-chain security.