CVE staat voor Common Vulnerabilities and Exposures en is de wereldwijde referentiecatalogus voor publiek bekende kwetsbaarheden. Het programma wordt sinds 1999 beheerd door de MITRE Corporation en gefinancierd door de Amerikaanse cyberveiligheidsdienst CISA. Elke kwetsbaarheid krijgt een unieke identificatie in het formaat CVE-JAAR-NUMMER, zoals CVE-2021-44228 voor Log4Shell, zodat leveranciers, scanners, onderzoekers en nieuwsartikelen allemaal hetzelfde lek bedoelen. De nummers worden toegekend door enkele honderden CVE Numbering Authorities (CNA's) wereldwijd. De ernst van een CVE wordt beoordeeld met het Common Vulnerability Scoring System (CVSS), een schaal van 0,0 tot 10,0 die door FIRST wordt beheerd: vanaf 9,0 heet het Critical, 7,0 tot 8,9 High, 4,0 tot 6,9 Medium en daaronder Low. De omvang van het systeem is enorm gegroeid: alleen al in 2024 verschenen er meer dan 40.000 nieuwe CVE's, en in het WordPress-ecosysteem werden in 2024 net geen 8.000 kwetsbaarheden gepubliceerd, waarvan ongeveer 96 procent in plugins.
Waar staat CVE voor?
Voordat CVE bestond, beschreef elke beveiligingsleverancier kwetsbaarheden in eigen woorden, en niemand kon zien of de buffer overflow in de ene advisory dezelfde bug was als de remote exploit in de andere. Het programma Common Vulnerabilities and Exposures, in 1999 gestart door MITRE, loste dat op met iets bedrieglijk eenvoudigs: één unieke naam per lek. Een CVE-record bevat dat nummer, een korte beschrijving, verwijzingen naar advisories en patches, en de getroffen producten.
Het formaat is CVE-JAAR-NUMMER, waarbij het jaar het jaar van toekenning is en niet per se van ontdekking, en het nummer vier of meer cijfers heeft. De officiële database staat op cve.org. Daar bovenop ligt de National Vulnerability Database (NVD) van het Amerikaanse standaardeninstituut NIST, die CVE-records verrijkt met ernstscores, getroffen versiebereiken en classificaties van zwakheden. Toont je beveiligingsscanner ernstgegevens bij een CVE, dan komen die meestal uit de NVD.
Hoe krijgt een kwetsbaarheid een CVE-nummer?
CVE-nummers worden uitgedeeld door CVE Numbering Authorities, kortweg CNA's. Dat zijn softwareleveranciers, beveiligingsbedrijven en onderzoeksorganisaties die gemachtigd zijn nummers toe te kennen voor hun eigen producten of hun aandachtsgebied. Het netwerk is gegroeid tot enkele honderden CNA's in tientallen landen, en daarom meldt een onderzoeker die een lek in bijvoorbeeld een Cisco-product vindt dat rechtstreeks bij Cisco, waarna Cisco de CVE zelf toekent.
De gebruikelijke gang van zaken ziet er zo uit: een onderzoeker ontdekt een kwetsbaarheid en meldt die bij de verantwoordelijke CNA, de CNA reserveert een CVE-nummer terwijl de fix wordt gebouwd, en zodra een patch uitkomt wordt het record samen met de advisory gepubliceerd. Die reserveringsfase verklaart waarom je soms een CVE-nummer in het openbaar ziet langskomen zonder dat er al details bij staan.
Voor WordPress-gebruikers is één detail het weten waard: Wordfence, WPScan en Patchstack zijn alle drie CNA. De overgrote meerderheid van de CVE's voor WordPress-plugins en -themes wordt door een van deze drie toegekend, en daarom zijn hun kwetsbaarheidsdatabases ook de meest complete bronnen voor het WordPress-ecosysteem.
Wat is de CVSS-score?
Een naam alleen zegt nog niets over hoe erg een lek is. Dat is het werk van het Common Vulnerability Scoring System, een open standaard die wordt beheerd door FIRST, de wereldwijde vereniging van incident-responseteams. CVSS vat de technische kenmerken van een kwetsbaarheid samen in een score tussen 0,0 en 10,0. Versie 2 verscheen in 2007, versie 3.0 in 2015, de verfijning 3.1 in 2019 en versie 4.0 in november 2023. In de praktijk spreken de meeste databases en advisories nog steeds CVSS 3.1, terwijl de adoptie van 4.0 langzaam groeit.
CVSS-ernstniveaus van None tot Critical
| Beoordeling | CVSS-score | Typische betekenis |
|---|---|---|
| None | 0,0 | Geen impact |
| Low | 0,1 tot 3,9 | Moeilijk te misbruiken of zeer beperkte impact |
| Medium | 4,0 tot 6,9 | Echte impact, maar met voorwaarden zoals gebruikersinteractie of bestaande rechten |
| High | 7,0 tot 8,9 | Ernstige impact, vaak blootstelling van gegevens of rechtenescalatie |
| Critical | 9,0 tot 10,0 | Meestal misbruik op afstand zonder authenticatie met volledige overname |
De beruchte 9,8 die je op zoveel advisories ziet, is de handtekeningscore van remote code execution zonder authenticatie: bereikbaar via het netwerk, geen rechten nodig, geen gebruikersinteractie vereist. Een perfecte 10,0 breekt daarnaast uit het kwetsbare onderdeel naar andere systemen, en dat is precies wat Log4Shell voor elkaar kreeg.
Hoe wordt een CVSS-score berekend?
De basisscore volgt uit een handvol metrieken die beschrijven hoe een lek bereikbaar is en wat het kapotmaakt. Aan de kant van de misbruikbaarheid: Attack Vector (netwerk, aangrenzend, lokaal, fysiek), Attack Complexity, Privileges Required en User Interaction. Aan de impactkant: het effect op Confidentiality, Integrity en Availability, plus in versie 3.1 de Scope-metriek, die vastlegt of de schade overslaat naar andere onderdelen. De losse keuzes worden vastgelegd in een compacte vectorstring die je bij elke NVD-vermelding tegenkomt:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
AV:N bereikbaar via het netwerk
AC:L lage aanvalscomplexiteit
PR:N geen rechten vereist
UI:N geen gebruikersinteractie nodig
S:U scope ongewijzigd
C:H/I:H/A:H hoge impact op vertrouwelijkheid, integriteit, beschikbaarheid
Resultaat: basisscore 9,8, CriticalHet mooie aan de vector is dat die je meer vertelt dan het getal. Een 7,5 met PR:N en een 7,5 met PR:H zijn totaal verschillende beesten voor je dreigingsmodel, en de vector lezen kost tien seconden zodra je de afkortingen kent.
Wat is er nieuw in CVSS 4.0?
Versie 4.0 pakt de grootste kritiekpunten op 3.1 aan. De verwarrende Scope-metriek is verdwenen en vervangen door aparte impactbeoordelingen voor het kwetsbare systeem en voor vervolgsystemen. User Interaction is genuanceerder geworden met een passieve en een actieve variant, en een nieuwe metriek Attack Requirements legt vast welke omstandigheden op het doelsysteem aanwezig moeten zijn. De oude temporal metrics zijn omgebouwd tot threat metrics, en de standaard benoemt de varianten van de score nu expliciet: CVSS-B voor de kale basisscore, CVSS-BT met dreigingsgegevens en CVSS-BE met omgevingscontext. Conceptueel is dit allemaal vooruitgang. Praktisch beweegt het ecosysteem traag, dus reken erop dat je nog jaren 3.1-vectoren leest.
Waarom een hoge CVSS-score niet automatisch je grootste risico is
Dit is de ongemakkelijke waarheid over CVSS: het meet ernst, niet waarschijnlijkheid. De overgrote meerderheid van de gepubliceerde CVE's wordt nooit in het wild misbruikt, terwijl sommige lekken met een middelmatige score binnen enkele uren worden platgelopen omdat de exploit openbaar is en het doelwit overal staat. Twee datasets helpen dat gat te dichten. De EPSS-score, ook van FIRST, schat de kans dat een kwetsbaarheid in de komende 30 dagen wordt misbruikt op basis van telemetrie uit de praktijk. En de CISA KEV-catalogus somt kwetsbaarheden op waarvan misbruik is bevestigd, en dat is het sterkste signaal dat er is.
Een praktische prioriteringsregel voor een site-eigenaar: patch eerst wat in KEV staat of een hoge EPSS-score heeft en in een onderdeel zit dat vanaf internet bereikbaar is. Een 9,8 in een plugin die je vorig jaar hebt uitgeschakeld doet er minder toe dan een 7,5 in de contactformulierplugin die elke bezoeker kan aanroepen. Ernst is context, en alleen jij kent jouw context.
CVE's in het WordPress-ecosysteem
De WordPress-core zelf is tegenwoordig een lastig doelwit en is goed voor ruim minder dan één procent van de gepubliceerde kwetsbaarheden. Het gebeurt in het ecosysteem van uitbreidingen: volgens Patchstack werden er in 2024 net geen 8.000 nieuwe kwetsbaarheden in het WordPress-ecosysteem gepubliceerd, waarvan ruwweg 96 procent in plugins en het meeste van de rest in themes. De meest voorkomende categorieën zijn cross-site scripting, cross-site request forgery en gebrekkige toegangscontrole. Dat betekent niet dat WordPress onveilig is, het betekent dat de veiligheid van je site wordt bepaald door welke plugins je installeert en hoe snel je ze bijwerkt. Een plugin met 100.000 installaties en een bekend, ongepatcht lek is binnen dagen doelwit van massascans, soms binnen uren.
Bekende voorbeelden van CVE's
- CVE-2014-0160, Heartbleed: geheugenlek in OpenSSL waarmee aanvallers privésleutels van servers konden uitlezen. De bug die kwetsbaarheden logo's en namen gaf.
- CVE-2017-0144, EternalBlue: het SMB-lek achter de WannaCry-ransomwaregolf in 2017.
- CVE-2021-44228, Log4Shell: een CVSS 10,0 in de Java-loggingbibliotheek Log4j. Eén geprepareerde tekenreeks in een willekeurig gelogd veld leidde tot remote code execution, en het halve internet logde gebruikersinvoer.
- CVE-2023-4966, Citrix Bleed: lekkende sessietokens in Citrix NetScaler, misbruikt door ransomwaregroepen tegen duizenden apparaten.
Hoe gebruikt InspectWP CVE-gegevens?
InspectWP detecteert de plugins en themes van een geanalyseerde WordPress-site en vergelijkt die met bekende kwetsbaarheidsgegevens, zodat een rapport je kan vertellen dat een specifiek geïnstalleerd onderdeel een gepubliceerde CVE heeft, hoe ernstig die is en dat er een update klaarstaat. Daarmee sluit je het vervelende gat tussen een CVE die ergens in een database bestaat en jij die er daadwerkelijk achter komt dat het om een van jouw sites gaat. In combinatie met geplande automatische rapporten krijg je de praktische versie van kwetsbaarhedenbeheer voor WordPress: weten wat je draait, weten wat kapot is, en eerst de dingen bijwerken die ertoe doen.