The CWE Top 25

The CWE Top 25: What It Is and Why It’s Not the Same as the OWASP Top 10

TL;DR

They are not competing lists. They are different units of measurement. The CWE Top 25 ranks individual weakness types, the specific coding and design mistakes that keep producing CVEs. The OWASP Top 10 ranks broad risk categories, each one a bucket holding dozens of those weakness types. Asking which is better is like asking whether millimetres beat metres.

The data underneath them is different too. The 2025 CWE Top 25, published by CISA with MITRE in December 2025, scored the weaknesses behind 39,080 CVE records from June 2024 to June 2025, weighted by prevalence, severity and appearances in the Known Exploited Vulnerabilities catalog. OWASP Top 10:2025 drew on more than 175,000 CVEs plus contributed application testing data and practitioner surveys, mapping 248 CWEs across ten categories.

Confusing them costs you in the audit, not in the abstract. A CWE identifies a specific security weakness in software, so it can carry evidence: this file, this line, this sink. An OWASP category cannot, because it describes a class of risk rather than a defect. When a report claims OWASP coverage with no CWE behind each finding, there is nothing an engineer can fix and nothing an auditor can verify.

Use both, for different jobs: the CWE Top 25 for finding-level triage, remediation and procurement questions; the OWASP Top 10 for programme design, threat modelling and training. Every Xygeni finding carries its CWE alongside the evidence in code, and maps to the relevant OWASP list for the surface it came from. Code security, API and AI findings all follow the same rule.

Quick answer. The CWE Top 25 is an annual ranking of the 25 most dangerous software weakness types, published by CISA and MITRE, scored from real CVE data and known exploitation. The OWASP Top 10 is a ranking of the ten broadest application security risk categories, each mapping to many CWEs. One names the defect. The other names the theme.

What the CWE Top 25 actually measures

Common Weakness Enumeration is a catalogue of weakness types maintained by MITRE. Each entry describes one kind of security weakness in software, independent of product or vendor: improper neutralisation of input in a web page, a write past the end of a buffer, a missing authorisation check.

The 2025 CWE Top 25, released in December 2025 by CISA in collaboration with MITRE and HSSEDI, ranks those types by how often they appeared as the root cause of the 39,080 CVEs disclosed between June 2024 and June 2025, weighted by severity and by how many entries each weakness has in the Known Exploited Vulnerabilities catalog.

The current top of the list will surprise nobody who has run an AppSec programme:

  • Cross-site scripting (CWE-79) holds first place for a second year, with a score far ahead of everything below it
  • SQL injection (CWE-89) sits second, still being exploited across every kind of platform
  • Cross-site request forgery (CWE-352) is third
  • Missing authorisation (CWE-862) jumped five places to fourth, part of a broader rise in authorisation failures
  • Out-of-bounds write (CWE-787) is fifth, with memory safety still firmly in the top ten alongside use-after-free and out-of-bounds read
  • Path traversal, OS command injection, and code injection fill out the rest of the top ten

Two patterns are worth reading. Authorisation weaknesses are climbing, which tracks with API-heavy and cloud-native architectures where the check that used to sit in one place now has to sit in hundreds. And memory safety refuses to leave: three buffer overflow variants entered the 2025 list as new or returning entries, which says something uncomfortable about how much legacy C and C++ still underpins modern systems.

Weakness, vulnerability, risk: three different things

Most of the confusion between the two lists comes from collapsing three concepts that professionals use precisely.

  • A weakness is the type of mistake. It is what a CWE identifies. Every security weakness in software has an identifier, whether or not anyone has ever exploited it in your code.
  • A vulnerability is one instance of that weakness in a specific product, at a specific version. That is what a CVE identifies. A CVE always has a CWE behind it, which is exactly how the CWE Top 25 gets built.
  • A risk is what an attacker achieves and what it costs you. That is the layer OWASP organises. Broken Access Control is not a defect you can point at in a file. It is a category that contains around 40 CWEs, any of which might be the actual bug.

Keep those three straight, and the relationship between the lists becomes obvious: a CVE is an instance of a weakness, a weakness belongs to a risk category, and the two rankings describe different layers of the same stack.

CWE Top 25 vs OWASP Top 10, side by side

Two lists, two units of measurement

Same domain, different altitude. The differences that matter are in the unit, the data and the job each one is good for.

CWE Top 25OWASP Top 10
UnitOne weakness type, for example CWE-89 SQL injectionOne risk category, holding many weakness types
Ranks25 weaknesses10 categories, 248 CWEs mapped across them in the 2025 edition
Data behind it39,080 CVE records, weighted by severity and KEV appearancesMore than 175,000 CVEs, plus contributed application testing data and practitioner surveys
Published byCISA with MITRE and HSSEDIThe OWASP Foundation, community driven
CadenceAnnual. The 2025 list landed in December 2025Every four years or so. 2025 followed 2021
ScopeAll software: web, embedded, firmware, operating systemsWeb applications and APIs, with companion lists for other surfaces
Carries evidenceYes. A CWE attaches to a file, a line and a data flowNo. A category describes a class of risk, not a defect
Best used forTriage, remediation, secure coding standards, procurement and vendor questionsProgramme design, threat modelling, training, board and audit conversations

Three ways teams get this wrong

  • Treating them as rivals. Choosing between them is a category error. The CWE Top 25 tells you which weakness types produce the most damage across the industry. The OWASP Top 10 tells you which risk themes your programme has to cover. A mature programme cites both, for different audiences.
  • Accepting OWASP coverage as a claim. “We cover the OWASP Top 10” is unfalsifiable, because a category is a bucket. Broken Access Control alone maps to roughly 40 CWEs, and no tool on the market detects every security weakness in software inside a single category. The question worth asking a vendor is which CWEs it detects, in which languages, with what evidence per finding. That question has an answer. The other one does not.
  • Mapping audit evidence to the wrong layer. An auditor asking for proof that injection risk is controlled needs findings, not a category name. A finding that says CWE-89, this file, this line, this parameter, with the payload and the fix, is evidence. A dashboard tile that says A05:2025 is a label.

The 2025 editions changed in ways worth noticing

Both lists moved recently, and the direction of travel is the same in each.

Authorisation is rising. Missing authorisation climbed to fourth in the CWE Top 25, and Broken Access Control stayed at number one in OWASP Top 10:2025 with an expanded scope that now absorbs server-side request forgery and explicitly covers API object- and function-level authorisation failures.

The supply chain became a first-class risk. OWASP Top 10:2025 introduced Software Supply Chain Failures at number three, expanding the old vulnerable components category to cover dependencies, build systems and distribution infrastructure. That change reflects what actually happened over the last two years, and it is the kind of risk no single CWE describes well.

And AI moved from a footnote to its own lists. The 2025 OWASP edition did not add an AI category, but it named “inappropriate trust in AI-generated code” in its next steps section. Through 2026, that gap got filled elsewhere: the OWASP Top 10 for Agentic Applications 2026 covers autonomous, tool-using systems, and the OWASP GenAI LLM Top 10 2026, published in August 2026, replaced the 2025 edition for LLM applications and expanded its mappings to NIST, MITRE ATLAS, and CWE. If you maintain a mapping table, those two are the entries to add.

What to expect next. The CWE Top 25 is annual and lands late in the year, so the 2025 edition is the current one and the next is due around the end of 2026. The OWASP Top 10 runs on a much longer cycle, roughly four years, which means the 2025 list stays authoritative for a while. That difference in cadence is itself a reason to use them for different jobs: one tracks the threat landscape year by year, the other sets a programme’s direction for the medium term. This page was last reviewed in September 2026.

How to use both without duplicating work?

Five rules that keep the two lists in their lanes

The lists are complementary. The work only duplicates when the same list is used for both jobs.

  1. Require a CWE on every finding If a finding does not carry a CWE, it cannot be counted, compared across tools, mapped to a category or verified by anyone later. Make it a minimum standard for every scanner you run and every report you accept from a vendor.
  2. Report to engineers in CWEs, to the board in OWASP categories A developer needs the weakness, the file and the fix. An executive needs the theme and the trend. Same data, two altitudes, and translating between them is a reporting job rather than a second scan.
  3. Turn the CWE Top 25 into secure coding standards The list is short, specific and ordered by real damage, which makes it the practical basis for coding rules, review checklists and the questions you put to a vendor before you buy their software.
  4. Use OWASP for design, not for detection Threat modelling, architecture review and training work at the category level, because that is where design decisions live. Detection claims at that level are marketing, since no tool covers every CWE in a category.
  5. Prioritise by exploitability, not by list position Neither ranking knows your architecture. A number four weakness on an unreachable code path matters less than a number nineteen on an internet-facing endpoint holding regulated data. Use the lists to inform scope, and your own context to order the work.

What this looks like in a finding

Xygeni attaches the classification to the evidence rather than to a dashboard. Findings from code analysis carry the weakness type, the severity, the location in the file, and the remediation guidance. DAST findings add the attack payload and the full request and response that proved it. API findings map to the OWASP API Security Top 10 and to CWE, so a sensitive data exposure in a response arrives with both the category and the specific weakness behind it. AI findings map to the OWASP Top 10 for LLM Applications, since that is the right list for that surface.

Then the prioritization funnel does the part neither ranking can do for you: narrowing everything to what is reachable, exploitable without credentials, and attached to something the business cares about. The same treatment applies to findings ingested from the scanners you already own, so one model of severity and evidence covers the whole programme rather than one tool.

FAQ

  • Is the CWE Top 25 better than the OWASP Top 10? Neither is better. One ranks weakness types with evidence you can act on, the other ranks risk categories you design a programme around.

  • How often does the CWE Top 25 change? Annually. The 2025 edition was published in December 2025, drawn from CVEs disclosed between June 2024 and June 2025.

  • Does every CVE have a CWE? Effectively yes, and that mapping is what makes the ranking possible. The CWE is the root cause; the CVE is the instance.

  • Can a single finding belong to both lists? Yes, and it usually does. SQL injection is CWE-89 and sits inside the OWASP injection category, so the same finding is reported both ways to different audiences.

  • What counts as a security weakness in software? Any recurring flaw in design, implementation or architecture that can lead to an exploitable vulnerability: a missing check, an unsanitised input, an unbounded write. The catalogue gives each one an identifier, whether or not it exists in your code today.

  • Which one do auditors ask about? They ask about both, and they accept evidence for only one. Category names satisfy a policy question; CWE-level findings with locations satisfy a control test.

  • What is the fastest way to use the CWE Top 25 this quarter? Take the top ten, check which of those weaknesses your current tooling actually detects in your languages, and treat the gaps as your roadmap.

One names the defect, the other names the theme

The clearest way to hold the difference: the CWE Top 25 tells you what to fix, and the OWASP Top 10 tells you what to talk about. A programme that only speaks in categories cannot prove anything to an auditor. A programme that only speaks in CWEs cannot explain itself to a board.

Every finding worth having carries both, plus the location that makes it fixable. See what that looks like at Xygeni.

sca-tools-software-composition-analysis-tools
Prioritize, remediate, and secure your software risks
Get your Free Account.
No credit card required.

Secure your Software Development and Delivery

with Xygeni Product Suite