﻿# CWE Top 25 2022\. Обзор изменений

Список CWE Top 25 отражает наиболее серьёзные недостатки безопасности ПО\. Предлагаю вам ознакомиться с обновлённым топом в обзоре изменений за прошедший год\.

![0969_CWE_top_25_2022_ru/image1.png](https://import.viva64.com/docx/blog/0969_CWE_top_25_2022_ru/image1.png)

Мы позиционируем анализатор PVS\-Studio не только как средство для поиска ошибок в коде, но и как инструмент для статического тестирования защищённости приложений \(Static Application Security Testing, сокр\. SAST\)\. Для лучшего понимания трендов и планирования диагностических правил нет ничего лучше, чем заглянуть в свежий список наиболее актуальных проблем безопасности\. Таких списков несколько, например, [OWASP Top 10](https://owasp.org/Top10/), [SANS Top 25](https://www.softwaretestinghelp.com/sans-top-20-security-vulnerabilities/), и уже названный ранее [CWE Top 25](https://cwe.mitre.org/top25/)\.

Кстати, в прошлом году мы уже писали обзор изменений в CWE Top 25 2021\. При желании с ним можно ознакомиться [здесь](https://pvs-studio.ru/ru/blog/posts/0869/)\.

## Немного теории

Для лучшего понимания контекста не помешает освежить в памяти основные моменты\. Для этого я кратко пробегусь по следующим темам: 

* чем CVE отличается от CWE;
* зачем нужен CVSS;
* что такое NVD и KEV;
* как ранжируется CWE Top 25 в 2022 году\.

Если вы чувствуете себя подкованным в этих вопросах, то можете спокойно пропустить этот раздел\. Остальным рекомендую ознакомиться для удобства дальнейшего чтения\. Далее довольно вольный перевод и интерпретация некоторых пунктов [CWE FAQ](https://cwe.mitre.org/about/faq.html) и [CVE FAQ](https://cve.mitre.org/about/faqs.html):

**Чем "дефект" \(недостаток\) отличается от уязвимости в ПО?**

Дефекты \(недостатки\) – это ошибки, сбои и прочие проблемы реализации, проектирования или архитектуры программного обеспечения, которые могут привести к уязвимостям\.

Уязвимости – уже найденные кем\-то ошибки, которые могут быть напрямую использованы злоумышленниками для получения доступа к системе или сети, нарушения работы сервисов и так далее\.

**Что такое CWE, чем отличается от CVE, при чем тут CVSS и откуда взялся KEV?**

* CWE \(Common Weakness Enumeration\) – общий [перечень](https://cwe.mitre.org/data/index.html) дефектов \(недостатков\) безопасности\.
* CVE \(Common Vulnerabilities and Exposures\) – [перечень](https://cve.mitre.org/data/downloads/index.html) уязвимостей, обнаруженных в программном обеспечении\.
* CVSS \(Common Vulnerability Scoring System\) – числовая оценка, показывающая потенциальную критичность уязвимости \(CVE\)\. Она основана на стандартизированном наборе характеристик\.
* KEV \(Known Exploited Vulnerabilities\) – [каталог](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) известных эксплуатируемых уязвимостей\.

**И зачем мне вообще знать про CWE?**

Сегодня CWE используется как основное средство при обсуждении устранения и/или смягчения недостатков безопасности в архитектуре, дизайне, коде и реализации программного обеспечения\. Организации используют CWE в качестве стандартной меры для оценки инструментов проверки безопасности ПО и в качестве общего базового стандарта для идентификации, предупреждения и смягчения негативных последствий\.

![0969_CWE_top_25_2022_ru/image2.png](https://import.viva64.com/docx/blog/0969_CWE_top_25_2022_ru/image2.png)

**Что такое CWE Top 25?**

CWE Top 25 – это список наиболее опасных и распространённых недостатков\. Эти недостатки опасны потому, что часто их легко найти и использовать\. Они могут позволить злоумышленникам помешать работе приложения, украсть данные или даже полностью захватить систему\. CWE Top 25 – это значимый ресурс сообщества, который может помочь получить представление о наиболее распространённых и опасных на данный момент недостатках безопасности\.

**Каков алгоритм составления и ранжирования списка CWE Top 25 2022?**

Основными источниками информации для исследования [в этом году](https://cwe.mitre.org/top25/archive/2022/2022_cwe_top25.html) являлись:

* национальная база данных уязвимостей США \(U\.D\. National Vulnerability Database \(NVD\)\) за 2020–2021 годы;
* каталог эксплуатируемых уязвимостей \(KEV\) агентства по кибербезопасности и защите инфраструктуры США \(Cybersecurity and Infrastructure Security Agency \(CISA\)\), составленный в ноябре 2021 года\.

Полученные данные команда исследователей преобразовала согласно методу "[View\-1003](https://cwe.mitre.org/documents/cwe_usage/guidance.html#view_1003)" для уменьшения специфичности записей\. Благодаря этому, например, CWE\-122 \(Heap\-Based Buffer Overflow\) будет преобразована к базовой CWE\-787 \(Out\-of\-Bounds Write\)\. Также были отфильтрованы следующие категории записей:

* без оценки CVSS;
* помеченные как отклонённые;
* для которых отсутствует сопоставление CVE \-\> CWE;
* относящиеся к категориям "CWE\-Other" и "NVD\-CWE\-noinfo"\.

Далее команда исследователей применила собственную формулу для расчёта порядка ранжирования, учитывающую частоту, с которой какой\-либо недостаток \(CWE\) является основной причиной уязвимости, и потенциальную опасность эксплуатации\. Частота и прогнозируемая серьёзность нормализованы относительно своих минимальных и максимальных значений\. Для вычисления частоты упоминания в формуле подсчитывается, сколько раз CVE ссылались на CWE в базе данных NVD\.

_Freq \= \{count\(CWE\_X' ∈ NVD\) for each CWE\_X' in NVD\}_

_Fr\(CWE\_X\) \= \(count\(CWE\_X ∈ NVD\) \- min\(Freq\)\) / \(max\(Freq\) \- min\(Freq\)\)_

Другим важным компонентом формулы ранжирования является расчёт серьёзности недостатка, который вычисляется по формуле: 

_Sv\(CWE\_X\) \= \(average\_CVSS\_for\_CWE\_X \- min\(CVSS\)\) / \(max\(CVSS\) \- min\(CVSS\)\)_

Ну и в конце вычисляется итоговая оценка путём умножения оценки частоты упоминания на оценку серьёзности\.

_Score\(CWE\_X\) \= Fr\(CWE\_X\) \* Sv\(CWE\_X\) \* 100_

В целом методология анализа данных в этом году не претерпела существенных изменений\. А вот уже в следующем году авторы планируют более значительные перемены\. Вот некоторые из них:

* возможность создания узкоспециализированных списков, как например Top 25 для мобильных приложений и т\.п\.;
* рассмотреть возможность изменения метрик, используемых для составления списка, для уменьшения предвзятости данных \([подробнее](https://cwe.mitre.org/top25/archive/2022/2022_cwe_top25_supplemental.html#methodLimits)\);
* улучшить методику View\-1003;
* использовать другие способы нормализации, кроме View\-1003;
* по возможности, проводить сопоставления CVE \-\> CWE более часто, чтобы уменьшить число единовременных правок в данные по сопоставлению\.

Более подробно о методологии подготовки и анализа данных можно прочитать в [дополнительных сведениях](https://cwe.mitre.org/top25/archive/2022/2022_cwe_top25_supplemental.html#methodDetails) к исследованию\.

**Насколько большая выборка в этом году?**

Набор данных для анализа в этом году включал в себя 37 899 CVE, обнаруженных за два прошедших года\. 

**CWE Top 25 действительно обновляется каждый год?**

Да, CWE Top 25 обновляется ежегодно\. Предыдущие выпуски CWE Top 25 можно посмотреть в [архиве](https://cwe.mitre.org/top25/archive/)\.

**Кто занимается составлением CWE Top 25?**

Сообщество CWE включает как отдельных исследователей, так и представителей многочисленных организаций, научного сообщества и государственных структур, заинтересованных в активном сокращении и устранении недостатков в программном обеспечении\. Конкретный список участников команды CWE можно посмотреть на странице "[CWE Community Members](https://cwe.mitre.org/community/members.html)"\.

Более подробно познакомиться с классификацией можно на сайте [cwe\.mitre\.org](https://cwe.mitre.org/)\.

## Положение дел сегодня

Ниже представлена таблица соответствия между списком CWE Top 25 2022 и диагностиками PVS\-Studio с разделением по языкам программирования\. Наиболее актуальную таблицу с покрытием CWE Top 25 всегда можно [посмотреть](https://pvs-studio.ru/ru/pvs-studio/sast/cwetop25/) на нашем сайте\.

|\*\*\\\#\*\*|\*\*CWE ID\*\*|\*\*Имя\*\*|\*\*Оценка\*\*|\*\*KEV\*\*|\*\*Диагностики PVS\-Studio\*\*|
|---|---|---|---|---|---|
|1|\[CWE\\\-787\]\(https://cwe\.mitre\.org/data/definitions/787\.html\)|Out\\\-of\\\-bounds Write|64,20|62|C\\\+\\\+: \[V512\]\(https://pvs\-studio\.ru/ru/docs/warnings/v512/\), \[V557\]\(https://pvs\-studio\.ru/ru/docs/warnings/v557/\), \[V582\]\(https://pvs\-studio\.ru/ru/docs/warnings/v582/\), \[V645\]\(https://pvs\-studio\.ru/ru/docs/warnings/v645/\)<br>C\\\#: \[V3106\]\(https://pvs\-studio\.ru/ru/docs/warnings/v3106/\)<br>Java: \[V6025\]\(https://pvs\-studio\.ru/ru/docs/warnings/v6025/\)|
|2|\[CWE\\\-79\]\(https://cwe\.mitre\.org/data/definitions/79\.html\)|Improper Neutralization of Input During Web Page Generation \\\('Cross\\\-site Scripting'\\\)|45,97|2|C\\\#: \[V5610\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5610/\)|
|3|\[CWE\\\-89\]\(https://cwe\.mitre\.org/data/definitions/89\.html\)|Improper Neutralization of Special Elements used in an SQL Command \\\('SQL Injection'\\\)|22,11|7|C\\\#: \[V5608\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5608/\)|
|4|\[CWE\\\-20\]\(https://cwe\.mitre\.org/data/definitions/20\.html\)|Improper Input Validation|20,63|20|C\\\+\\\+: \[V739\]\(https://pvs\-studio\.ru/ru/docs/warnings/v739/\), \[V781\]\(https://pvs\-studio\.ru/ru/docs/warnings/v781/\), \[V1010\]\(https://pvs\-studio\.ru/ru/docs/warnings/v1010/\), \[V1024\]\(https://pvs\-studio\.ru/ru/docs/warnings/v1024/\), \[V5009\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5009/\)|
|5|\[CWE\\\-125\]\(https://cwe\.mitre\.org/data/definitions/125\.html\)|Out\\\-of\\\-bounds Read|17,67|1|C\\\+\\\+: \[V512\]\(https://pvs\-studio\.ru/ru/docs/warnings/v512/\), \[V557\]\(https://pvs\-studio\.ru/ru/docs/warnings/v557/\), \[V582\]\(https://pvs\-studio\.ru/ru/docs/warnings/v582/\)<br>C\\\#: \[V3106\]\(https://pvs\-studio\.ru/ru/docs/warnings/v3106/\)<br>Java: \[V6025\]\(https://pvs\-studio\.ru/ru/docs/warnings/v6025/\)|
|6|\[CWE\\\-78\]\(https://cwe\.mitre\.org/data/definitions/78\.html\)|Improper Neutralization of Special Elements used in an OS Command \\\('OS Command Injection'\\\)|17,53|32|C\\\+\\\+: \[V1010\]\(https://pvs\-studio\.ru/ru/docs/warnings/v1010/\), \[V5009\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5009/\)<br>C\\\#: \[V5616\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5616/\)|
|7|\[CWE\\\-416\]\(https://cwe\.mitre\.org/data/definitions/416\.html\)|Use After Free|15,50|28|C\\\+\\\+: \[V623\]\(https://pvs\-studio\.ru/ru/docs/warnings/v623/\), \[V723\]\(https://pvs\-studio\.ru/ru/docs/warnings/v723/\), \[V758\]\(https://pvs\-studio\.ru/ru/docs/warnings/v758/\), \[V774\]\(https://pvs\-studio\.ru/ru/docs/warnings/v774/\), \[V1017\]\(https://pvs\-studio\.ru/ru/docs/warnings/v1017/\)|
|8|\[CWE\\\-22\]\(https://cwe\.mitre\.org/data/definitions/22\.html\)|Improper Limitation of a Pathname to a Restricted Directory \\\('Path Traversal'\\\)|14,08|19|C\\\#: \[V5609\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5609/\)|
|9|\[CWE\\\-352\]\(https://cwe\.mitre\.org/data/definitions/352\.html\)|Cross\\\-Site Request Forgery \\\(CSRF\\\)|11,53|1|Coming in the future|
|10|\[CWE\\\-434\]\(https://cwe\.mitre\.org/data/definitions/434\.html\)|Unrestricted Upload of File with Dangerous Type|9,56|6|Coming in the future|
|11|\[CWE\\\-476\]\(https://cwe\.mitre\.org/data/definitions/476\.html\)|NULL Pointer Dereference|7,15|0|C\\\+\\\+: \[V522\]\(https://pvs\-studio\.ru/ru/docs/warnings/v522/\), \[V595\]\(https://pvs\-studio\.ru/ru/docs/warnings/v595/\), \[V664\]\(https://pvs\-studio\.ru/ru/docs/warnings/v664/\), \[V713\]\(https://pvs\-studio\.ru/ru/docs/warnings/v713/\), \[V1004\]\(https://pvs\-studio\.ru/ru/docs/warnings/v1004/\)<br>C\\\#: \[V3027\]\(https://pvs\-studio\.ru/ru/docs/warnings/v3027/\), \[V3042\]\(https://pvs\-studio\.ru/ru/docs/warnings/v3042/\), \[V3080\]\(https://pvs\-studio\.ru/ru/docs/warnings/v3080/\), \[V3095\]\(https://pvs\-studio\.ru/ru/docs/warnings/v3095/\), \[V3100\]\(https://pvs\-studio\.ru/ru/docs/warnings/v3100/\), \[V3125\]\(https://pvs\-studio\.ru/ru/docs/warnings/v3125/\), \[V3145\]\(https://pvs\-studio\.ru/ru/docs/warnings/v3145/\), \[V3146\]\(https://pvs\-studio\.ru/ru/docs/warnings/v3146/\), \[V3148\]\(https://pvs\-studio\.ru/ru/docs/warnings/v3148/\), \[V3149\]\(https://pvs\-studio\.ru/ru/docs/warnings/v3149/\), \[V3152\]\(https://pvs\-studio\.ru/ru/docs/warnings/v3152/\), \[V3153\]\(https://pvs\-studio\.ru/ru/docs/warnings/v3153/\), \[V3168\]\(https://pvs\-studio\.ru/ru/docs/warnings/v3168/\)<br>Java: \[V6008\]\(https://pvs\-studio\.ru/ru/docs/warnings/v6008/\), \[V6060\]\(https://pvs\-studio\.ru/ru/docs/warnings/v6060/\), \[V6093\]\(https://pvs\-studio\.ru/ru/docs/warnings/v6093/\)|
|12|\[CWE\\\-502\]\(https://cwe\.mitre\.org/data/definitions/502\.html\)|Deserialization of Untrusted Data|6,68|7|C\\\#: \[V5611\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5611/\)|
|13|\[CWE\\\-190\]\(https://cwe\.mitre\.org/data/definitions/190\.html\)|Integer Overflow or Wraparound|6,53|2|C\\\+\\\+: \[V629\]\(https://pvs\-studio\.ru/ru/docs/warnings/v629/\), \[V658\]\(https://pvs\-studio\.ru/ru/docs/warnings/v658/\), \[V673\]\(https://pvs\-studio\.ru/ru/docs/warnings/v673/\), \[V683\]\(https://pvs\-studio\.ru/ru/docs/warnings/v683/\), \[V1026\]\(https://pvs\-studio\.ru/ru/docs/warnings/v1026/\), \[V1028\]\(https://pvs\-studio\.ru/ru/docs/warnings/v1028/\), \[V1083\]\(https://pvs\-studio\.ru/ru/docs/warnings/v1083/\), \[V1085\]\(https://pvs\-studio\.ru/ru/docs/warnings/v1085/\), \[V5004\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5004/\), \[V5005\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5005/\), \[V5006\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5006/\), \[V5007\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5007/\), \[V5010\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5010/\), \[V5011\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5011/\)<br>C\\\#: \[V3113\]\(https://pvs\-studio\.ru/ru/docs/warnings/v3113/\)<br>Java: \[V6105\]\(https://pvs\-studio\.ru/ru/docs/warnings/v6105/\)|
|14|\[CWE\\\-287\]\(https://cwe\.mitre\.org/data/definitions/287\.html\)|Improper Authentication|6,35|4|Coming in the future|
|15|\[CWE\\\-798\]\(https://cwe\.mitre\.org/data/definitions/798\.html\)|Use of Hard\\\-coded Credentials|5,66|0|C\\\+\\\+: \[V5013\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5013/\)<br>C\\\#: \[V5601\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5601/\)<br>Java: \[V5305\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5305/\)|
|16|\[CWE\\\-862\]\(https://cwe\.mitre\.org/data/definitions/862\.html\)|Missing Authorization|5,53|1|Coming in the future|
|17|\[CWE\\\-77\]\(https://cwe\.mitre\.org/data/definitions/77\.html\)|Improper Neutralization of Special Elements used in a Command \\\('Command Injection'\\\)|5,42|5|C\\\#: \[V5616\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5616/\)|
|18|\[CWE\\\-306\]\(https://cwe\.mitre\.org/data/definitions/306\.html\)|Missing Authentication for Critical Function|5,15|6|Coming in the future|
|19|\[CWE\\\-119\]\(https://cwe\.mitre\.org/data/definitions/119\.html\)|Improper Restriction of Operations within the Bounds of a Memory Buffer|8,85|6|C\\\+\\\+: \[V512\]\(https://pvs\-studio\.ru/ru/docs/warnings/v512/\), \[V557\]\(https://pvs\-studio\.ru/ru/docs/warnings/v557/\), \[V582\]\(https://pvs\-studio\.ru/ru/docs/warnings/v582/\), \[V769\]\(https://pvs\-studio\.ru/ru/docs/warnings/v769/\), \[V783\]\(https://pvs\-studio\.ru/ru/docs/warnings/v783/\), \[V1004\]\(https://pvs\-studio\.ru/ru/docs/warnings/v1004/\)|
|20|\[CWE\\\-276\]\(https://cwe\.mitre\.org/data/definitions/276\.html\)|Incorrect Default Permissions|4,84|0|Coming in the future|
|21|\[CWE\\\-918\]\(https://cwe\.mitre\.org/data/definitions/918\.html\)|Server\\\-Side Request Forgery \\\(SSRF\\\)|4,27|8|C\\\#: \[V5618\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5618/\)|
|22|\[CWE\\\-362\]\(https://cwe\.mitre\.org/data/definitions/362\.html\)|Concurrent Execution using Shared Resource with Improper Synchronization \\\('Race Condition'\\\)|3,57|6|Coming in the future|
|23|\[CWE\\\-400\]\(https://cwe\.mitre\.org/data/definitions/400\.html\)|Uncontrolled Resource Consumption|3,56|2|Coming in the future|
|24|\[CWE\\\-611\]\(https://cwe\.mitre\.org/data/definitions/611\.html\)|Improper Restriction of XML External Entity Reference|3,38|0|C\\\#: \[V5614\]\(https://pvs\-studio\.ru/ru/docs/warnings/v5614/\)|
|25|\[CWE\\\-94\]\(https://cwe\.mitre\.org/data/definitions/94\.html\)|Improper Control of Generation of Code \\\('Code Injection'\\\)|3,32|4|C\\\+\\\+: \[V1076\]\(https://pvs\-studio\.ru/ru/docs/warnings/v1076/\)|



Как видно из таблицы, на данный момент статический анализатор PVS\-Studio обеспечивает покрытие **68% \(17 из 25\)** списка CWE Top 25 2022\. В прошлом году это значение составляло 52%\. Довольно значимое улучшение покрытия за год и во многом это заслуга большого количества SAST\-ориентированных диагностик, [выпущенных за прошедший год](https://pvs-studio.ru/ru/docs/manual/0010/)\.

## Изменения за последний год

Самые крупные передвижения вверх:

|\*\*\\\#\*\*|\*\*CWE ID\*\*|\*\*Название\*\*|\*\*Позиция в 2021 г\*\*|\*\*Позиция в 2022 г\*\*|\*\*Изменение за год\*\*|
|---|---|---|---|---|---|
|1|\[CWE\\\-362\]\(https://cwe\.mitre\.org/data/definitions/362\.html\)|Concurrent Execution using Shared Resource with Improper Synchronization \\\('Race Condition'\\\)|33|22|11▲|
|2|\[CWE\\\-77\]\(https://cwe\.mitre\.org/data/definitions/77\.html\)|Improper Neutralization of Special Elements used in a Command \\\('Command Injection'\\\)|25|17|8▲|
|3|\[CWE\\\-400\]\(https://cwe\.mitre\.org/data/definitions/400\.html\)|Uncontrolled Resource Consumption|27|23|4▲|
|4|\[CWE\\\-476\]\(https://cwe\.mitre\.org/data/definitions/476\.html\)|NULL Pointer Dereference|15|11|4▲|
|5|\[CWE\\\-94\]\(https://cwe\.mitre\.org/data/definitions/94\.html\)|Improper Control of Generation of Code \\\('Code Injection'\\\)|28|25|3▲|

Самые крупные передвижения вниз:

|\*\*\\\#\*\*|\*\*CWE ID\*\*|\*\*Название\*\*|\*\*Позиция в 2021 г\*\*|\*\*Позиция в 2022 г\*\*|\*\*Изменение за год\*\*|
|---|---|---|---|---|---|
|1|\[CWE\\\-522\]\(https://cwe\.mitre\.org/data/definitions/522\.html\)|Insufficiently Protected Credentials|21|38|17▼|
|2|\[CWE\\\-200\]\(https://cwe\.mitre\.org/data/definitions/200\.html\)|Exposure of Sensitive Information to an Unauthorized Actor|20|33|13▼|
|3|\[CWE\\\-732\]\(https://cwe\.mitre\.org/data/definitions/732\.html\)|Incorrect Permission Assignment for Critical Resource|22|30|8▼|
|4|\[CWE\\\-306\]\(https://cwe\.mitre\.org/data/definitions/306\.html\)|Missing Authentication for Critical Function|11|18|7▼|

"Новички" в Top 25:

|\*\*\\\#\*\*|\*\*CWE ID\*\*|\*\*Название\*\*|\*\*Позиция в 2021 г\*\*|\*\*Позиция в 2022 г\*\*|\*\*Изменение за год\*\*|
|---|---|---|---|---|---|
|1|\[CWE\\\-362\]\(https://cwe\.mitre\.org/data/definitions/362\.html\)|Concurrent Execution using Shared Resource with Improper Synchronization \\\('Race Condition'\\\)|33|22|11▲|
|2|\[CWE\\\-400\]\(https://cwe\.mitre\.org/data/definitions/400\.html\)|Uncontrolled Resource Consumption|27|23|4▲|
|3|\[CWE\\\-94\]\(https://cwe\.mitre\.org/data/definitions/94\.html\)|Improper Control of Generation of Code \\\('Code Injection'\\\)|28|25|3▲|

Ну и в конце – дефекты, которые выбыли из CWE Top 25 в 2022 году:

|\*\*\\\#\*\*|\*\*CWE ID\*\*|\*\*Название\*\*|\*\*Позиция в 2021 г\*\*|\*\*Позиция в 2022 г\*\*|\*\*Изменение за год\*\*|
|---|---|---|---|---|---|
|1|\[CWE\\\-200\]\(https://cwe\.mitre\.org/data/definitions/200\.html\)|Exposure of Sensitive Information to an Unauthorized Actor|20|33|13▼|
|2|\[CWE\\\-522\]\(https://cwe\.mitre\.org/data/definitions/522\.html\)|Insufficiently Protected Credentials|21|23|2▼|
|3|\[CWE\\\-732\]\(https://cwe\.mitre\.org/data/definitions/732\.html\)|Incorrect Permission Assignment for Critical Resource|22|30|8▼|



Краткий итог по изменениям:

* первые десять мест в топе остаются достаточно стабильными;
* CWE\-787 \(Out\-of\-bounds Write\) всё также удерживает лидерство;
* CWE\-502 \(Deserialization of Untrusted Data\) и CWE\-862 \(Missing Authorization\) уверенно поднимаются год от года;
* в этом году в топ ворвался CWE\-362 \(Concurrent Execution using Shared Resource with Improper Synchronization \('Race Condition'\)\), поднявшись сразу на 11 пунктов вверх по сравнению с прошлым годом;
* появившаяся в 2020 и резко взлетевшая в прошлом году CWE\-306 \(Missing Authentication for Critical Function\) сильно потеряла позиции в текущем;
* самым же крупным движением вниз отметилась CWE\-522 \(Insufficiently Protected Credentials\), которая упала вниз сразу на 17 пунктов\.

## За бортом

Бонусом предлагаю посмотреть, какие недостатки оказались ниже основного списка CWE Top 25 в 2022 году и вполне могут подняться в 2023 году:

|\*\*\\\#\*\*|\*\*CWE ID\*\*|\*\*Название\*\*|\*\*Оценка\*\*|\*\*KEV\*\*|\*\*Изменение за год\*\*|
|---|---|---|---|---|---|
|26|\[CWE\\\-295\]\(https://cwe\.mitre\.org/data/definitions/295\.html\)|Improper Certificate Validation|3,12|2|\\\-|
|27|\[CWE\\\-427\]\(https://cwe\.mitre\.org/data/definitions/427\.html\)|Uncontrolled Search Path Element|3,12|0|7▲|
|28|\[CWE\\\-863\]\(https://cwe\.mitre\.org/data/definitions/863\.html\)|Incorrect Authorization|3,10|0|10▲|
|29|\[CWE\\\-269\]\(https://cwe\.mitre\.org/data/definitions/269\.html\)|Improper Privilege Management|3,06|3|\\\-|
|30|\[CWE\\\-732\]\(https://cwe\.mitre\.org/data/definitions/732\.html\)|Incorrect Permission Assignment for Critical Resource|2,93|1|8▼|
|31|\[CWE\\\-843\]\(https://cwe\.mitre\.org/data/definitions/843\.html\)|Access of Resource Using Incompatible Type \\\('Type Confusion'\\\)|2,87|10|5▲|
|32|\[CWE\\\-668\]\(https://cwe\.mitre\.org/data/definitions/668\.html\)|Exposure of Resource to Wrong Sphere|2,68|0|21▲|
|33|\[CWE\\\-200\]\(https://cwe\.mitre\.org/data/definitions/200\.html\)|Exposure of Sensitive Information to an Unauthorized Actor|2,49|2|13▼|
|34|\[CWE\\\-1321\]\(https://cwe\.mitre\.org/data/definitions/1321\.html\)|Improperly Controlled Modification of Object Prototype Attributes \\\('Prototype Pollution'\\\)|2,48|0|новый|
|35|\[CWE\\\-601\]\(https://cwe\.mitre\.org/data/definitions/601\.html\)|URL Redirection to Untrusted Site \\\('Open Redirect'\\\)|2,41|0|2▲|
|36|\[CWE\\\-401\]\(https://cwe\.mitre\.org/data/definitions/401\.html\)|Missing Release of Memory after Effective Lifetime|2,39|0|4▼|
|37|\[CWE\\\-59\]\(https://cwe\.mitre\.org/data/definitions/59\.html\)|Improper Link Resolution Before File Access \\\('Link Following'\\\)|2,38|4|6▼|
|38|\[CWE\\\-522\]\(https://cwe\.mitre\.org/data/definitions/522\.html\)|Insufficiently Protected Credentials|2,25|0|17▼|
|39|\[CWE\\\-319\]\(https://cwe\.mitre\.org/data/definitions/319\.html\)|Cleartext Transmission of Sensitive Information|2,15|0|4▼|
|40|\[CWE\\\-312\]\(https://cwe\.mitre\.org/data/definitions/312\.html\)|Cleartext Storage of Sensitive Information|2,01|0|1▲|



Хоть данные недостатки и не попали в основной список, но они все равно являются важными т\.к\. при благоприятных обстоятельствах могут стать полноценными уязвимостями\.

## Заключение

Надеюсь, что данный материал был для вас интересен, а может быть и помог разобраться в актуальной терминологии\.

К счастью, в борьбе с потенциальными уязвимостями помогают статические анализаторы, и поэтому по традиции мне хотелось бы предложить вам скачать и попробовать [проверить свой проект](https://pvs-studio.ru/ru/pvs-studio/try-free/) статическим анализатором PVS\-Studio\. Вдруг и у вас в код закралась парочка CWE, которые только и ждут удобного момента, чтобы стать полноценными CVE :\)

## Дополнительные ссылки

1. [Технологии статического анализа кода PVS\-Studio](https://pvs-studio.ru/ru/blog/posts/0908/)\.
1. [Технологии, используемые в анализаторе кода PVS\-Studio для поиска ошибок и потенциальных уязвимостей](https://pvs-studio.ru/ru/blog/posts/cpp/0592/)\.
1. [Потенциальная уязвимость](https://pvs-studio.ru/ru/blog/terms/6441/)\.
1. [Уязвимость нулевого дня](https://pvs-studio.ru/ru/blog/terms/6478/)\.
1. [OWASP, уязвимости и taint анализ в PVS\-Studio C\#\. Смешать, но не взбалтывать](https://pvs-studio.ru/ru/blog/posts/csharp/0831/)\.
1. [Какая разница между DevOps и DevSecOps?](https://pvs-studio.ru/ru/blog/posts/0710/)