Zum Inhalt springen

CWE - Common Weakness Enumeration

Klassifikation von Schwachstellentypen

Lesezeit: 4 Min.

Was bedeutet CWE?

CWE ist eine standardisierte Liste von Schwachstellentypen, die beschreibt, welche Art von Programmierfehler eine Sicherheitslücke verursacht hat.

CWE (Common Weakness Enumeration) ist ein von MITRE gepflegter Katalog, der Schwachstellentypen klassifiziert. Im Gegensatz zur CVE, die eine konkrete Sicherheitslücke in einem konkreten Produkt beschreibt, kategorisiert CWE die zugrunde liegende Ursache, etwa „CWE-89: SQL-Injection” oder „CWE-787: Out-of-bounds Write”. CWE ist damit die gemeinsame Sprache für Schwachstellen-Muster in der Entwicklung, bei Pentests und in der Sicherheitsanalyse.

Unterschied zwischen CVE und CWE

CVE benennt das „Was“: eine konkrete Schwachstelle in einer konkreten Software-Version. CWE benennt das „Warum“: den Programmierfehler oder Designfehler, der zur Schwachstelle geführt hat. Ein CVE-Eintrag enthält in der Regel eine Referenz auf eine oder mehrere CWE-Kategorien. Ein Beispiel macht den Unterschied deutlich: CVE-2021-44228 („Log4Shell“) ist die konkrete Schwachstelle in Apache Log4j 2.0 bis 2.14.1. Der zugehörige CWE-Eintrag ist CWE-502 („Deserialization of Untrusted Data“), also das Muster, das dahintersteckt und das in tausenden anderen Produkten genauso auftreten kann. Wer nur CVEs verfolgt, patcht Einzelfälle. Wer CWEs auswertet, erkennt, welche Fehlerklasse im eigenen Code systematisch wiederkehrt.

Wie eine CWE-ID aufgebaut ist

Eine CWE-ID besteht aus dem Präfix „CWE-“ und einer fortlaufenden Nummer ohne inhaltliche Bedeutung: CWE-79 ist nicht schwerer als CWE-78.

Der Katalog ist hierarchisch aufgebaut: Auf oberster Ebene stehen sehr allgemeine „Pillars“ wie CWE-707 („Improper Neutralization“), darunter „Classes“, „Bases“ und schließlich sehr spezifische „Variants“. Für Advisories und Reports wird üblicherweise die Base-Ebene verwendet, weil sie konkret genug für Gegenmaßnahmen und allgemein genug für Statistiken ist. Zusätzlich gruppieren sogenannte Views den Katalog nach Anwendungszweck, etwa nach Entwicklungsphase oder nach Architekturkonzept.

CWE Top 25: die häufigsten Schwachstellentypen

Jedes Jahr veröffentlicht MITRE die „CWE Top 25 Most Dangerous Software Weaknesses“, eine nach realer Auftretenshäufigkeit in CVE-Einträgen und nach durchschnittlichem CVSS-Score gewichtete Rangliste. Sie dient als Priorisierungs-Hilfe für sichere Softwareentwicklung.

Dauerhaft in der Spitzengruppe stehen: CWE-79 (Cross-site Scripting), CWE-787 (Out-of-bounds Write), CWE-89 (SQL-Injection), CWE-416 (Use After Free), CWE-78 (OS Command Injection), CWE-20 (Improper Input Validation) und CWE-22 (Path Traversal). Für kleine und mittlere Unternehmen ist die Liste vor allem als Schulungs- und Review-Leitfaden nützlich: Wer die ersten zehn Einträge im eigenen Code systematisch ausschließt, deckt einen Großteil der real ausgenutzten Fehlerklassen ab.

CWE in der Praxis: Code-Review, SAST und Pentests

CWE-Referenzen sind ein Pflichtbestandteil seriöser Security-Advisories. Sie ermöglichen es, gezielt Schulungen, Code-Reviews und automatisierte Tests auf wiederkehrende Schwachstellen-Muster auszurichten, etwa solche aus der OWASP Top 10, die sich vollständig auf CWE-IDs abbilden lassen. In der Werkzeugkette taucht CWE an drei Stellen auf: SAST-Werkzeuge (statische Codeanalyse) melden Funde direkt mit CWE-ID, sodass sich Befunde verschiedener Hersteller vergleichen lassen. Pentest-Reports nutzen CWE, um Einzelfunde einer Kategorie zuzuordnen. Und im Bug-Tracking erlaubt die CWE-Auswertung über mehrere Releases hinweg die Frage: Häufen sich bei uns Eingabevalidierungs-Fehler oder eher Berechtigungsfehler? Die Antwort steuert, wo Schulungsbudget und Review-Aufwand am meisten bewirken.

CWE und CVSS: Ursache und Schweregrad

CWE und CVSS beantworten unterschiedliche Fragen und ersetzen einander nicht. CWE sagt, welcher Fehlertyp vorliegt; CVSS sagt, wie schwer die konkrete Ausprägung wiegt. Derselbe CWE-Typ kann je nach Kontext sehr unterschiedliche CVSS-Scores erzeugen: Eine SQL-Injection (CWE-89) in einer intern erreichbaren Verwaltungsoberfläche wird deutlich niedriger bewertet als dieselbe Fehlerklasse in einem aus dem Internet erreichbaren Kundenportal. Für die Priorisierung im Tagesgeschäft gilt daher: CVSS steuert die Reihenfolge der Patches, CWE steuert die Frage, welche Prozess- und Schulungsmaßnahme das Wiederauftreten verhindert.

CWE in der Regulierung: CRA und TR-03183

Der EU Cyber Resilience Act verlangt von Herstellern, Schwachstellen strukturiert zu dokumentieren und zu melden. Die BSI TR-03183-3 konkretisiert das für Schwachstellen-Reports und sieht die Angabe der Schwachstellenklasse vor, in der Praxis über die CWE-ID. Auch das CSAF-Format kennt ein eigenes Feld für CWE-Angaben je Schwachstelle. Wer als Hersteller künftig CRA-konform meldet, muss die CWE-Zuordnung also ohnehin vornehmen. Es lohnt sich, den Schritt früh in den eigenen Schwachstellenprozess aufzunehmen, statt ihn erst bei der ersten Meldepflicht nachzuholen.

Praxis-Tool

Prüfe deinen Schwachstellen-Management-Prozess im Audit

Zum IT-Sicherheits-Audit

Auch bekannt als

Common Weakness Enumeration · CWE-ID · Schwachstellentyp · Schwachstellenklasse

Häufige Fragen zu CWE

Was ist der Unterschied zwischen CVE und CWE?

CVE identifiziert eine konkrete Schwachstelle in einem konkreten Produkt und einer konkreten Version. CWE beschreibt die dahinterliegende Fehlerklasse, die in beliebig vielen Produkten auftreten kann. Kurz: CVE ist der Einzelfall, CWE das Muster. Ein CVE-Eintrag verweist in der Regel auf eine oder mehrere CWE-IDs.

Hat jede CVE eine CWE-Zuordnung?

Nein. Die CWE-Zuordnung ist im CVE-Datensatz optional und wird von den vergebenden Stellen unterschiedlich konsequent gepflegt. Bei neueren Einträgen und bei Herstellern mit eigenem PSIRT ist sie meist vorhanden, bei älteren oder knapp dokumentierten Einträgen fehlt sie häufig oder bleibt auf einer sehr allgemeinen Kategorie stehen.

Was sind die CWE Top 25?

Die CWE Top 25 sind eine jährlich von MITRE veröffentlichte Rangliste der gefährlichsten Software-Schwachstellentypen. Sie wird aus der Häufigkeit in realen CVE-Einträgen und dem durchschnittlichen CVSS-Score berechnet. Regelmäßig weit oben stehen Cross-site Scripting (CWE-79), Out-of-bounds Write (CWE-787) und SQL-Injection (CWE-89).

Ist eine niedrige CWE-Nummer schwerwiegender als eine hohe?

Nein. CWE-Nummern werden fortlaufend vergeben und enthalten keine Wertung. CWE-20 ist nicht gefährlicher als CWE-787. Die Schwere einer konkreten Schwachstelle wird über den CVSS-Score ausgedrückt, nicht über die CWE-ID.

Wie finde ich die passende CWE-ID für einen Befund?

Der offizielle Katalog auf cwe.mitre.org bietet eine Suche und mehrere Views, die den Katalog nach Anwendungsfall gruppieren. Für die meisten Befunde reicht die Base-Ebene aus. Wer aus einem SAST- oder Pentest-Werkzeug meldet, erhält die CWE-ID in der Regel bereits mitgeliefert und muss sie nur noch auf Plausibilität prüfen.

Brauche ich CWE-Angaben für den Cyber Resilience Act?

Der CRA selbst nennt CWE nicht wörtlich, verlangt aber eine strukturierte Beschreibung gemeldeter Schwachstellen. Die BSI TR-03183-3 und das CSAF-Format sehen dafür ein CWE-Feld vor. Wer meldepflichtig wird, sollte die CWE-Zuordnung daher als festen Schritt im Schwachstellenprozess einplanen.