/
Блог Хекслета
/
Код
/

Что такое уязвимости, CVE и CVSS: разбираемся на примерах 2026 года

Что такое уязвимости, CVE и CVSS: разбираемся на примерах 2026 года

26 октября 2026 г.

9 минут
76
Что такое уязвимости, CVE и CVSS: разбираемся на примерах 2026 года

Сообщения об уязвимостях сыплются как из ведра. В 2025 году официально зафиксировали около 50 тысяч дыр в программах, а на 2026 год прогнозируют около 66 тысяч. 

Специалисты предвидели такой поворот. Джейсон Клинтон, заместитель директора по информационной безопасности компании Anthropic, в августе 2026 года написал в соцсети X: 

Цунами уязвимостей придёт уже через несколько месяцев, и времени залатать критическую инфраструктуру не хватит.

Прошло несколько месяцев — и цунами действительно пришло. Разобрать эту тему лучше всего на примере громкой истории осени 2026 года.

21 октября 2026 года разработчики PHP спешно выпустили обновление, которое закрыло две серьёзные дыры в языке. Исследователи дали этим уязвимостям название PHP2Shell. Через них злоумышленник мог заставить чужой сервер выполнять почти любые команды — и для этого не был нужен ни логин, ни пароль. После взлома хакер может читать данные, менять их и запускать на сервере что угодно.

Грандиозность проблемы в том, что PHP — весьма распространённый язык. По оценке компании Wiz, на PHP работают около 70% сайтов в мире, в том числе на нём написаны более чем популярные системы WordPress, Drupal и Joomla. 

В абсолютных цифрах картина выглядит ещё эпичнее. По данным Netcraft, всего в интернете около 1,5 млрд сайтов, из них «живы», по приблизительным подсчётам, около 217 млн. Из них на PHP работает около 150 млн сайтов. Для сравнения: на втором месте — сайты на серверном JavaScript (например, на Node.js) с долей около 8%, это примерно 18 млн живых сайтов.

Ошибка, которой больше десяти лет

Дыры, обнаруженные в PHP, не касаются кода сайтов: код может быть идеален, но дыра находится на уровень глубже: в движке языка. PHP развивается, регулярно выпускаются новые версии, но дыры прятались глубоко: британский центр кибербезопасности NCSC (не путать с британскими учёными) написал, что затронуты вообще все версии PHP.

Уязвимость есть в каждой версии PHP, начиная с 5.4 (2012 года). Ошибка существовала больше десяти лет: только в 2026 году её нашли сразу несколько команд, независимо друг от друга. Среди них Calif, Wiz и OpenAI. Исследователи Wiz пишут, что в работе им помогли ИИ-модели Gemini и GPT.

Патч, который не успел

Информацию об уязвимостях в PHP долго держали в секрете, исправление готовили тихо и планировали выпустить его 22 октября. Однако утром 20 октября на форуме Hacker News появился пост об этих дырах. Пост удалили, но в интернете всегда остаются следы: скриншоты поста разошлись по соцсетям.

Команде PHP пришлось выпускать патч на сутки раньше, 21 октября в 14:00 по UTC. Незадолго до релиза в открытом доступе появилось видео, где показано, как на практике можно применить уязвимость и захватить сервер. По сообщениям, его по ошибке выложили сотрудники компании Calif, нашедшие дыру. Видео тоже удалили из публичного доступа, но было поздно: пользователи скачали его. Тайна, которую хранили два месяца, развалилась за два дня. 

Патч выпущен, но администраторам серверов нужно время, чтобы его применить. Это даёт злоумышленникам некоторое время, чтобы найти уязвимые серверы и воспользоваться дырами.

Освоить PHP с нуля и разобраться, как устроены сайты, которые на нём работают, можно на курсе «PHP-разработчик».

Сайты недоступны, но хакеры ни при чём

Уязвимость вредит, даже если её никто не использовал: достаточно лишь угрозы. Чтобы успеть обновиться и проверить серверы, в Нидерландах закрыли сайт парламента, портал госуслуг MijnOverheid, систему входа DigiD, сайт порта Роттердама, сайты нескольких больниц и («И» — ирония) сайт национального центра кибербезопасности. 

В Финляндии и Дании отключили часть госсервисов, во Франции МВД распорядилось временно закрыть сайты местных администраций. Wikimedia выключила Toolforge, Phabricator и часть инструментов для разработчиков.

Все эти отключения — просто меры предосторожности: подтверждённых взломов за ними не стояло. Однако временное отключение сайта обойдётся дешевле, чем возможный взлом. 

Белые и чёрные хакеры: одинаковые навыки, разные результаты

Calif, Wiz и OpenAI действовали как белые хакеры: они нашли дыру и передали информацию разработчикам. Были и чёрные хакеры, которые искали уязвимости теми же методами, теми же инструментами — но с другими целями. Разница проявляется в момент, когда нужно решить, что делать с обнаруженной уязвимостью.

У «белого пути» есть своя экономика. Платформа HackerOne за год с июля 2024 по июнь 2025 выплатила исследователям 81 млн долларов наград за найденные ошибки. Google в 2025 году выплатила около 17 млн за подобные же находки. Программа Zero Day Initiative, которая покупает уязвимости и передаёт их производителям, платит от 500 до 150 000 долларов за подтверждённую уязвимость.

Обычные же взломщики преследуют другие цели, и на их рынке другие цены. Брокер Crowdfense, по данным ForkLog, предлагает до 7 млн долларов за взлом iPhone. Crowdfense и другие брокеры называют своими клиентами правительства и спецслужбы. 

Чёрные хакеры зарабатывают и на продаже краденых баз данных или доступов во взломанные сети. По данным Rapid7, такой доступ стоит в среднем около 2700 долларов. Его покупают, например, группы вымогателей: они шифруют данные жертвы и требуют выкуп. 

Кто такие белые, чёрные и серые хакеры и почему утечек данных становится больше, Хекслету рассказал «белый хакер» Александр Герасимов в интервью «Мы все в зоне риска».

CVE: все уязвимости по порядку

Когда об уязвимости становится известно — ей присваивают собственное имя: номер в каталоге CVE (Common Vulnerabilities and Exposures). Этот каталог создала американская корпорация MITRE в 1999 году. Номер позволяет точно идентифицировать уязвимость, когда идёт обсуждение или поиск решения. При использовании номеров и производитель, и безопасник, и журналист уверены, что говорят о вполне определённой уязвимости.

Например, описанным уязвимостям в PHP присвоены номера CVE-2026-109618 и CVE-2026-109619. Каждый номер состоит из трёх частей: это префикс "CVE", год и порядковый номер. Номера CVE выдают уполномоченные организации, CNA (CVE Numbering Authority): чаще всего это производители ПО, крупные IT-компании и исследовательские центры. 

К номеру прикладывается запись: что сломано, в каких версиях, где взять исправление. Каждая запись об уязвимости живёт в одном из трёх статусов: зарезервирована, опубликована или отклонена. Обычно номер резервируют, как только становится известно об уязвимости, а описание публикуют позже, вместе с исправлением. 

Для ещё неисправленных уязвимостей в публичном каталоге отображается только номер: там нет ни слова о том, что за дыра, в каком языке и в чём проблема. Так было и с PHP2Shell: номера у дыр появились до патча, но что за ними стоит, знали только исследователи и разработчики. 

Однако за день до патча в том самом посте на форуме Hacker News появились номера PHP2Shell — и загадка в том, кто и как узнал, что кроется за этими номерами. Тем не менее, секрет раскрылся, и патч пришлось выпускать на сутки раньше.

CVSS: шкала опасности от 0 до 10

Для стихийных бедствий уже давно придуманы собственные шкалы: силу землетрясения меряют магнитудой («шкалой Рихтера»), ветер — по шкале Бофорта от 0 до 12 баллов, ураганы делят на категории от 1 до 5. 

Для уязвимостей тоже есть своя шкала: CVSS (Common Vulnerability Scoring System). Её ведёт международная ассоциация команд реагирования на инциденты FIRST.

Если запись CVE описывает техническую сторону уязвимости, то шкала CVSS говорит именно о том, насколько опасна та или иная дыра. 

Оценка складывается из простых вопросов:

  • можно ли атаковать по сети или нужен физический доступ к компьютеру или серверу;

  • нужен ли пароль;

  • должна ли жертва что-то нажать;

  • что получит атакующий: прочитает данные, изменит их или уронит систему.

Чем больше ответов в пользу атакующего, тем выше балл. Оценка от 9,0 до 10 считается критической, от 7,0 до 8,9 — высокой. 

Обе уязвимости PHP2Shell оценили в 9,2 балла: атака по сети, без пароля и без участия жертвы, с полным контролем над сервером. С такой оценкой патч нужен немедленно, однако на это «немедленно» потребовалось два месяца.

Реальные проблемы

По выгоде, которую может получить злоумышленник, уязвимости делят на несколько видов. Примеры из одного только 2026 года показывают, чем эти разновидности оборачиваются на практике.

Запуск своего кода на чужом сервере. Атакующий запускает на чужой машине любые свои программы так, будто сидит за ней сам. Это самый опасный вид, именно такой и была PHP2Shell.

В одной из атак через PHP2Shell на европейский госорган за два часа украли хэши паролей и секреты двухфакторной защиты и попытались получить права администратора домена. 

В Citrix NetScaler через уязвимости хакеры ставили веб-шеллы — программы для удалённого управления сервером. 

Через дыры в LiteLLM и Kestra злоумышленники майнили криптовалюту на чужих мощностях, а через LiteLLM ещё и крали ключи API.

Обход ограничений доступа. Система пускает внутрь без пароля. 

Уязвимость в VPN-шлюзе Palo Alto GlobalProtect позволила вымогателям проникнуть в сети больниц, учебных заведений, госорганов и энергетических компаний. Хакеры крали данные и шифровали их ради выкупа. 

Через уязвимость в BeyondTrust Remote Support, по данным Mandiant, предположительно китайская шпионская группа пыталась добраться до хранилища паролей и стирала за собой следы.

Чтение чужих файлов. Атакующий не управляет сервером, но видит его содержимое. 

Уязвимость KindaRails2Shell в Rails позволяла через загрузку картинки прочитать секретные ключи приложения, пароли к базе данных и токены облака. С такими ключами можно получить доступ к данным и к серверу приложения.

Повышение прав пользователя. Каждому пользователю компьютера или сервера присвоены определённые права: обычный пользователь работает только со своими файлами, администратор управляет всем. Атакующий может попасть в систему с правами обычного пользователя: через украденный пароль или другую дыру. И после этого хакер использует уязвимость, которая превращает его в администратора. 

Например, уязвимость Copy Fail в ядре Linux давала злоумышленнику права главного администратора почти на всех дистрибутивах, выпущенных с 2017 года.

Уязвимости вне кода

PHP2Shell — это ошибка в логике выполнения программы. Но уязвимость может быть и в других процессах. 

Вот, например, история удостоверяющего центра eMudhra. Это одна из организаций, которые подтверждают, что сайт настоящий. Благодаря сертификатам от таких центров связь пользователя с сайтом надёжно шифруется, и никто по дороге не прочитает пароли и номера карт, которые вы отправляете на сайт. 

Сертификатам eMudhra доверяли браузеры и системы Google, Mozilla, Apple и Microsoft, то есть почти каждый компьютер и телефон в мире.

В 2025 году специалисты eMudhra допустили ошибку при генерации ключей для своих сертификатов. Секретный ключ должен быть длинным случайно сгенерированным числом, которое невозможно угадать. А у eMudhra ключами оказались числа от 4 до 237, а один из секретных ключей был просто числом 4. Такой ключ можно подобрать простым перебором, зная только открытые данные сертификата. 

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

О проблеме сообщили 17 октября 2026 года. Chrome заблокировал сертификаты в тот же вечер, Firefox, Apple и Microsoft — в течение трёх дней. А 22 октября eMudhra объявила, что уходит с международного рынка сертификатов для сайтов.

Но есть и такие угрозы, которые вообще не связаны с ошибками разработчиков.

В августе 2026 года червь ChainDrop заразил больше 400 пакетов в npm. Пакеты — это готовые куски кода, как детали конструктора. Программисты встраивают пакеты в свои программы, чтобы не писать всё с нуля. npm — один из крупнейших каталогов с пакетами.

Скорее всего, атакующие украли пароли разработчиков и выложили от их имени «обновления» с вредоносным кодом. Этот код крал пароли и ключи доступа к npm, к GitHub и облачным сервисам, а с их помощью заражал следующие пакеты. Так червь расползался по программам. Номер CVE этому червю не нужен: в пакетах не было программной ошибки.

Пакеты из npm — повседневный инструмент JavaScript-разработчика. Как с ними работать и как писать серверную часть сайтов на JavaScript, учат на курсе «Node.js-разработчик».

Десятки серьёзных историй за полгода

PHP2Shell, eMudhra и ChainDrop — три случая из десятков, известных за последние полгода. С конца апреля по октябрь 2026 года критические уязвимости нашли в ядре Linux, Splunk, библиотеке libssh2 (её используют curl и Git-клиенты), ядре WordPress, Rails, Citrix NetScaler, почтовом шлюзе FortiMail и BeyondTrust. Для шести из перечисленных уязвимостей уже подтверждены реальные атаки: через эти дыры взламывают компании и сайты, которые не успели установить исправление.

Масштаб видно по цифрам. 14 октября Microsoft в одном обновлении закрыла больше 1400 уязвимостей. По данным SecurityWeek, это больше, чем за весь 2025 год. В curl в релизе 8.21.0 исправили 18 уязвимостей сразу — это рекорд для одного релиза. 

По данным FIRST, в 2025 году опубликовано 49 972 CVE. На 2026 год в феврале прогнозировалось около 59 тысяч CVE, а в июне ожидания выросли до 66 тысяч. Это лишь прогноз, так что подождём итогов.

Популярное объяснение такого роста — усиление и распространение ИИ. Исследователи Wiz действительно нашли PHP2Shell с помощью ИИ-моделей, а Copy Fail, по данным Unit 42, нашли с помощью ИИ примерно за час работы. 

Но прямая связь между ростом числа найденных уязвимостей и ИИ пока не доказана: «одновременно» не означает «в связи». 

Как с этим жить

Обновлять всё и сразу не получается: уязвимостей — десятки тысяч в год. Поэтому команды безопасности работают по приоритетам. Британский NCSC в рекомендациях по PHP2Shell описал порядок действий, который применим и к другим дырам:

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

  • Обновить то, что доступно через интернет. Если обновиться нельзя — применить временные меры или отключить систему. 

  • Проверить, не успел ли кто-то воспользоваться уязвимостью.

После утечек вроде KindaRails2Shell или ChainDrop к этому списку следует добавить ещё один шаг: сменить все пароли, ключи и токены. Патч закрывает дверь, но ключи, которые уже вынесли, остаются у похитителя.

История не закончилась

22 октября, в разгар истории с PHP2Shell и eMudhra, безопасник из Anthropic Джейсон Клинтон, которого мы уже цитировали, написал: 

Как ни плохо всё стало за последние четыре дня, дальше будет гораздо хуже, и только потом начнёт налаживаться. Руководители служб безопасности, используйте этот кризис: идите к своим советам директоров и просите помощи прямо сейчас. Не для ИИ, для основ. (Нам нужно продержаться примерно 18 месяцев.)

Дыр в программном обеспечении обнаруживают всё больше — а значит, нужны и те, кто может с ними справиться.

Плащ и маску белым хакерам не выдают, но они по-настоящему спасают мир: каждая уязвимость, закрытая до атаки — это несостоявшаяся утечка, сохранённые доступы и, что важно, здоровая психика у админов. С чего начать — в статье «Как стать специалистом по кибербезопасности».


Степан Яковлев

20 часов назад

0

+7 800 100 22 47

бесплатно по РФ

+7 495 085 21 62

бесплатно по Москве

108813 г. Москва, вн.тер.г. поселение Московский,
г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3
ОГРН 1217300010476
ИНН 7325174845