CVE-2026-123867: Node.js is vulnerable to a per-host mTLS authorization bypass via a CA-only SNI context failing open to the default CA
Оценка Noroxi
Приоритет: Наблюдать (оценка срочности 16/100)
- В отслеживаемых источниках (CISA KEV, Exploit-DB, Metasploit, Nuclei, GitHub) нет публичного эксплойта или записей об эксплуатации.
- Может быть вызвана любым, у кого есть доступ через интернет. Достаточно учётной записи с низкими привилегиями. Действия пользователя не требуются. Требуются особые условия, например определённое время или конфигурация.
- Исправленная версия: nodejs node 22.23.5, 24.22.3, 26.13.1.
Пока низкий приоритет. Обновитесь до nodejs node 22.23.5, 24.22.3, 26.13.1 или новее.
Формируется автоматически по данным записи: CVSS (NVD и CNA), CISA KEV и SSVC, FIRST EPSS, источники эксплойтов, исправленные версии. Как мы считаем
A per-host mutual-TLS authorization bypass in Node.js lets a client authorized for the default hostname reach a protected hostname it is not authorized for. When a TLS server assigns a hostname a different client-certificate CA with server.addContext(host, { ca: protectedCA }) but no server certificate in that SNI context, the per-host client CA is never installed and the handshake falls back to the default client CA. In src/crypto/crypto_tls.cc, CertCbDone installs the SNI context's CA only when setSniContext succeeds, but setSniContext returns false for a context with no server certificate, so a CA-only SNI context silently keeps the default CA. A client holding a certificate trusted by the default CA, but not the protected CA, can therefore complete mTLS to the protected hostname and read its response even with requestCert and rejectUnauthorized enabled, while a client certified by the protected CA is rejected. This vulnerability affects Node.js 26.x, 24.x, and 22.x.
- Опубликовано
- 11 нояб. 2026 г.
- Обновлено
- 11 нояб. 2026 г.
- EPSS
- —
- CWE
- CWE-295
Инструменты для отчёта
Оценка срочности
16
Пока низкий приоритет.
- CVSS
- 16 / 40 · 4.2 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 0 / 30 · —
Оценка CNA и NVD
- NVD
- —
- CNA · openjs
- 4,2
- NVD ещё не выставил свою оценку; показана оценка CNA.
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Узнайте, когда запись изменится
- Нет в KEV: эксплуатация в реальных атаках не зафиксирована
- Публичного эксплойта нет
- Исправление выпущено
Если что-то из этого изменится, сообщим в ежедневной сводке.
Проверьте шифрование сайтаПроверить SSL
Затронута ли ваша версия? ПроверьтеАнализ Noroxi
Что это значит для вашей инфраструктуры?
Оценка выше формируется автоматически по данным записи и не знает вашей среды. Наша команда проверит на ваших системах, действительно ли уязвимость эксплуатируема и какой меры достаточно.
Мы используем этот продукт, нужна помощьЗатронутые системы
Затронута ли ваша версия?
Выберите продукт и введите свою версию. Она сравнивается с диапазонами этой записи прямо в браузере и никуда не отправляется.
—
Используете node? Добавьте в свой стек и первыми узнавайте о подобных CVE. (Node.js)
Проверьте шифрование сайта
Уязвимость связана с проверкой сертификатов или слабой криптографией. Бесплатная проверка SSL оценивает сертификат, включённые версии TLS и слабые шифры.
Проверить SSLВерсии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (openjs). Не зависят от анализа CPE в NVD и обычно опережают его.
nodejs node
- 0.0.0 и новее · до 22.23.5затронута · semver
- 23.0.0 и новее · до 24.22.3затронута · semver
- 25.0.0 и новее · до 26.13.1затронута · semver
Тот же продукт
nodejs: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2024-27983An attacker can make the Node.js HTTP/2 server completely unavailable by sending a small amount of HTTP/2 frames packets with a few HTTP/2…57В плане
- CVE-2025-27210An incomplete fix has been identified for CVE-2025-23084 in Node.js, specifically affecting Windows device names like CON, PRN, and AUX.34Наблюдать
- CVE-2026-123872Node.js is vulnerable to a client certificate authentication bypass via TLS 1.2 renegotiation servername change32Наблюдать
Опубликованы до и после этой записи в том же продукте
- ← РаньшеCVE-2026-12386511 нояб. 2026 г. · Node.js is vulnerable to an HTTP/2 memory and file-descriptor leak via a protocol error during session shutdown30Наблюдать
- ← РаньшеCVE-2026-12386611 нояб. 2026 г. · Node.js is vulnerable to HTTP/2 response memory disclosure via a use-after-free during stream teardown30Наблюдать
- Позже →CVE-2026-12386811 нояб. 2026 г. · Node.js is vulnerable to an HTTP/2 memory exhaustion denial of service via unaccounted inbound DATA on an undrained stream23Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| nodejs node | 22.23.5 | Вендор (CNA) |
| nodejs node | 24.22.3 | Вендор (CNA) |
| nodejs node | 26.13.1 | Вендор (CNA) |
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
- Публикация
- Исправлениев тот же день
- Сегодня12 нояб. 2026 г.в тот же день
Истории пока нет (накапливается ежедневным заданием EPSS).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Среди источников нет ссылок на коммит или PR.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
- aur0r4_glyphсообщил
- mcollinaразработчик исправления
- UlisesGasconрецензент исправления
- pimterryрецензент исправления
- aduh95координатор
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
- CVE-2026-105483с разницей 19 дн.A flaw in Node.js TLS hostname verification allows a certificate without a matching IP address SAN to authenticate a connection to an IPv4…29Наблюдать
- CVE-2026-106069с разницей 19 дн.A flaw in Node.js TLS hostname verification can cause a server certificate to be validated against a different IP address than the one the…29Наблюдать
- CVE-2026-123877с разницей 0 дн.Node.js is vulnerable to a certificate validation bypass in https.Agent via cross-policy TLS session reuse27Наблюдать
- CVE-2026-106072с разницей 19 дн.A flaw in Node.js TLS hostname verification allows a certificate with only a DNS SAN to authenticate an IP endpoint when the client…26Наблюдать
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Вендор продукта присутствует в публичной программе. Сопоставление по имени; проверьте текст scope в программе.
Технические детали
Условия атаки
- Может быть вызвана любым, у кого есть доступ через интернет.
- Достаточно учётной записи с низкими привилегиями.
- Действия пользователя не требуются.
- Требуются особые условия, например определённое время или конфигурация.
В случае успеха
- Конфиденциальность
- низкое · данные могут быть прочитаны
- Целостность
- низкое · данные или конфигурация могут быть изменены
- Доступность
- нет
- Вектор атаки
- Сеть
- Сложность атаки
- Высокая
- Требуемые привилегии
- Низкие
- Взаимодействие с пользователем
- Не требуется
- Область действия
- Не изменяется
- Влияние на конфиденциальность
- Низкое
- Влияние на целостность
- Низкое
- Влияние на доступность
- Нет
Класс уязвимости (CWE)
CWE-295 · Improper Certificate ValidationВектор CVSS
CVSS:3.0/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N
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.
Журнал изменений
- Зрелость эксплойта— → none
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
Показать все источники (ещё 1)Свернуть
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.