Mongoose: TLS Hostname Verification Bypass via Overly Permissive Wildcard Matching
Mongoose is an embedded web server and network library. Prior to version 7.22, an on-path network attacker with a wildcard certificate for a parent domain can impersonate deeper subdomains to a client using the built-in TLS stack. The mg_tls_verify_cert_san() and mg_tls_verify_cert_cn() functions in src/tls_builtin.c call mg_match(), whose wildcard can cross DNS label boundaries, so a pattern such as *.example.com can match foo.bar.example.com. The resulting hostname verification bypass permits interception and modification of TLS traffic. This issue is fixed in version 7.22.
- Опубликовано
- 20 авг. 2026 г.
- Обновлено
- 29 сент. 2026 г.
- EPSS
- 0,4 % · 27-й процентиль
- CWE
- CWE-295
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
36
Наблюдать
Пока низкий приоритет.
- CVSS
- 36 / 40 · 9.1 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 0 / 30 · 0,4 %
Решение CISA SSVC
- Эксплуатация
- proof of concept
- Автоматизируемо
- нет
- Техническое влияние
- полное
Vulnrichment: входные данные дерева решений CISA.
Оценка CNA и NVD
- NVD
- —
- CNA · GitHub_M
- 9,1
- NVD ещё не выставил свою оценку; показана оценка CNA.
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Затронутые системы
| Вендор | Продукт | CPE |
|---|---|---|
| cesanta | mongoose | cpe:2.3:a:cesanta:mongoose |
Затронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- cesanta mongooseдо 7.22
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (GitHub_M). Не зависят от анализа CPE в NVD и обычно опережают его.
cesanta mongoose
- < 7.22затронута
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| Debian:14 | mongoose | до 7.22+ds-1 | 7.22+ds-1 |
Тот же продукт
cesanta: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2019-19307An integer overflow in parse_mqtt in mongoose.c in Cesanta Mongoose 6.16 allows an attacker to achieve remote DoS (infinite loop), or possib51В плане
- CVE-2017-2894An exploitable stack buffer overflow vulnerability exists in the MQTT packet parsing functionality of Cesanta Mongoose 6.8.48В плане
- CVE-2019-12951An issue was discovered in Mongoose before 6.15.40В плане
- CVE-2018-20356An invalid read of 8 bytes due to a use-after-free vulnerability in the mg_http_free_proto_data_cgi function call in mongoose.c in Cesanta M40В плане
- CVE-2018-20355An invalid write of 8 bytes due to a use-after-free vulnerability in the mg_http_free_proto_data_cgi function call in mongoose.c in Cesanta 40В плане
- CVE-2018-20354An invalid read of 8 bytes due to a use-after-free vulnerability during a "return" in the mg_http_get_proto_data function in mongoose.c in C40В плане
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| cesanta mongoose | 7.22 · description | Вендор (CNA) |
| debian:mongoose | 7.22+ds-1 · Debian:14 | Реестр пакетов (OSV) |
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
- CVE-2026-73251с разницей 0 дн.Mongoose Built-in TLS: CA-bundle certificate chain accepted without any signature verification37Наблюдать
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Технические детали
Условия атаки
- Может быть вызвана любым, у кого есть доступ через интернет.
- Учётная запись или пароль не требуются.
- Действия пользователя не требуются.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- Целостность
- Доступность
- Вектор атаки
- Сеть
- Сложность атаки
- Низкая
- Требуемые привилегии
- Не требуются
- Взаимодействие с пользователем
- Не требуется
- Область действия
- X
Класс уязвимости (CWE)
CWE-295 · Improper Certificate ValidationВектор CVSS
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
nvd-secondary
Первопричина
Ошибка проверки сертификата незаметно подавляется вместо разрыва соединения. Часто это код, добавленный для тестовой среды и попавший в продуктивную.
Ошибка в коде
Весь класс CWE-295Показательный пример этого класса уязвимостей. Это не исходный код вендора; показан ошибочный шаблон и его исправление.
Уязвимый код
override fun checkServerTrusted(chain: Array<X509Certificate>, type: String) { // Оставлено пустым для тестовой среды}Исправленный код
val client = OkHttpClient.Builder() .certificatePinner( CertificatePinner.Builder() .add("api.sirius.example", "sha256/…") .build() ).build()Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
Анализ Noroxi
Анализа Noroxi для этой записи пока нет
Мы не пишем анализ вручную для всех 385 000+ уязвимостей; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.
Мы используем этот продукт, нужна помощьЖурнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
- github.com/cesanta/mongoose/commit/a9df523f76f43a38bd53b4232b9cfd4c16869e71
- github.com/cesanta/mongoose/pull/3611
- github.com/cesanta/mongoose/releases/tag/7.22
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.