CVE (Common Vulnerabilities and Exposures) to publiczny, ustandaryzowany system nadawania unikalnych identyfikatorów znanym podatnościom w oprogramowaniu i sprzęcie. Każda luka dostaje jeden niepowtarzalny numer w formacie CVE-RRRR-NNNNN (np. CVE-2021-44228), gdzie pierwsza część to rok rezerwacji identyfikatora, a druga to kolejny numer. Dzięki temu Ty, twórca skanera i autor poprawki możecie mówić o dokładnie tej samej dziurze, zamiast opisywać ją własnymi słowami.
Po co to komu
Bez wspólnego nazewnictwa byłby chaos: jeden vendor nazwałby lukę „błędem w parsowaniu nagłówka”, inny „remote crashem”, a Ty nie wiedziałbyś, czy mówią o tym samym. CVE jest jak numer PESEL dla podatności — jedna luka, jeden identyfikator, koniec dyskusji. Numery przydzielają organizacje zwane CNA (CVE Numbering Authority), czyli m.in. Microsoft, Google, Red Hat czy GitHub, w ramach programu koordynowanego przez MITRE i finansowanego przez amerykańską agencję CISA.
Co ważne: sam wpis CVE mówi co i gdzie, ale nie mówi jak bardzo boli. Od oceny powagi jest osobny mechanizm — CVSS (skala 0–10). Wzbogacone dane (oceny, odnośniki, dotknięte wersje) znajdziesz w bazie NVD prowadzonej przez NIST.
Przykład z praktyki
Grudzień 2021, słynny Log4Shell — czyli CVE-2021-44228 w bibliotece Apache Log4j. Jeden identyfikator i pół internetu wie, o czym mowa. Skaner podatności typu trivy czy grype przeczesze obraz kontenera i wypluje listę CVE z twoich zależności:
trivy image --severity HIGH,CRITICAL twoja-apka:latest
Dostaniesz tabelę z numerami CVE, dotkniętymi pakietami i wersją, w której załatano problem. Tyle wystarczy, żeby wiedzieć, co podbić w package.json czy pom.xml.
Częste błędy i mity
- „CVE = wynik krytyczności” — nie. CVE to tylko identyfikator. Powagę określa CVSS, a realne ryzyko jeszcze co innego (np. czy luka jest aktywnie wykorzystywana — patrz katalog KEV od CISA).
- „Brak CVE = bezpiecznie” — niekoniecznie. Numer dostają tylko luki zgłoszone i przyjęte. Zero-day z definicji jeszcze go nie ma.
- „Wysoki CVSS = muszę łatać natychmiast” — priorytetyzuj po tym, czy podatny komponent jest w ogóle wystawiony i używany. Krytyczna luka w module, którego nie importujesz, to nie pożar.
Pojęcia powiązane: CVSS, NVD, CNA, MITRE, CISA KEV, CWE (klasyfikacja typów słabości), zero-day, podatność (vulnerability), exploit.