CVE-2026-94417
CRL check skipped when OCSP enabled and certificate has no OCSP URL
Что произошло
When an application enables both OCSP and CRL revocation checking on one WOLFSSL_CTX or certificate manager, wolfSSL skips the CRL check for any peer certificate that carries no Authority Information Access OCSP URL, and accepts a certificate the loaded CRL lists as revoked. The soft-fail policy for a missing responder collapses the OCSP result onto success before the code decides whether the CRL fallback is still needed, so "no responder exists" becomes indistinguishable from "the responder answered good". Affected builds define both HAVE_OCSP and HAVE_CRL: --enable-ocsp --enable-crl directly, and implicitly --enable-all, --enable-distro, --enable-curl, --enable-nginx, --enable-haproxy, --enable-stunnel, --enable-lighty, --enable-wpas, --enable-strongswan, --enable-mosquitto, --enable-jni, --enable-openvpn and --enable-krb. An application is affected only if it calls both wolfSSL_CTX_EnableOCSP() (or wolfSSL_EnableOCSP() / wolfSSL_CertManagerEnableOCSP()) and wolfSSL_CTX_EnableCRL() (or the equivalents) with a CRL loaded; an application that uses OCSP stapling alone through wolfSSL_CTX_EnableOCSPStapling() is not affected, because that sets up a separate OCSP instance. The defect sits in ProcessPeerCerts() and is reachable over TLS 1.0 through TLS 1.3 and DTLS, both on a client verifying a server certificate and on a server verifying a client certificate under mutual or post-handshake authentication. When the skipped check falls on a chain certificate rather than the leaf, the unchecked intermediate is promoted into the certificate manager and stays a trusted signer for every later connection on that context, so an affected long-running process needs its WOLFSSL_CTX torn down and not only its library replaced. All wolfSSL versions from 5.9.2 and earlier are affected; on versions 5.9.1 and 5.9.2 the WOLFSSL_OCSP_CHECKALL configuration fails closed with OCSP_NEED_URL, which leaves wolfSSL_CTX_EnableOCSP() without CHECKALL as the exposed configuration on 5.9.2.
Что это значит
В источнике описана ошибка безопасности в перечисленных продуктах. Фактический риск зависит от установленной версии, конфигурации и доступности компонента; проверьте условия в первичном бюллетене.
Что делать
1. Проверьте, затронуты ли вы
Соберите инвентаризацию и сравните с таблицей затронутых версий. Эти команды только показывают установленные компоненты и сами по себе не доказывают наличие CVE.
dpkg-query -W -f='${Package} ${Version}\n'rpm -qa --qf '%{NAME}\t%{VERSION}-%{RELEASE}\n'Get-HotFix | Select-Object HotFixID, InstalledOn
2. Установите исправление
Сверьте точный продукт и версию с бюллетенем вендора. Установите указанное в нём исправление после резервного копирования и проверки совместимости. Подтверждённая целевая версия в источниках отсутствует.
3. Временные меры
До проверки бюллетеня ограничьте доступ к затронутому компоненту доверенными узлами. Оцените сегментацию и отключение ненужных интерфейсов с владельцем сервиса; универсального правила WAF для этой CVE не подтверждено.
4. Проверьте следы эксплуатации
Проверьте аномальные входы, новые учётные записи, ошибки и необычные дочерние процессы в затронутом сервисе. Публичные проверенные правила обнаружения не включены в запись; отсутствие сигналов не доказывает отсутствие компрометации.
5. После исправления
- Проверьте фактическую версию и результат установки по бюллетеню.
- При необходимости перезапустите сервисы в согласованное окно.
- Повторите проверку сканером и функциональные проверки.
- Зафиксируйте результат, дату, владельца и оставшийся риск.
Продукты и затронутые версии
wolfSSL / wolfSSL
{
"status": "affected",
"version": "0",
"versionType": "semver",
"lessThanOrEqual": "5.9.2"
}CVSS: оценки и векторы
CVSS 4.0 · cve2.3
CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
Источники и ссылки
Происхождение полей
{
"cwes": [
"cve"
],
"epss": {
"source": "epss",
"received_at": "2026-11-03T21:15:58.782161+00:00"
},
"title": {
"source": "cve",
"received_at": "2026-10-28T21:06:43.000209+00:00"
},
"scores": [
"cve"
],
"status": {
"source": "cve",
"received_at": "2026-10-28T21:06:43.000209+00:00"
},
"affected": [
"cve"
],
"published": {
"source": "cve",
"received_at": "2026-10-28T21:06:43.000209+00:00"
},
"solutions": [],
"percentile": {
"source": "epss",
"received_at": "2026-11-03T21:15:58.782161+00:00"
},
"references": [
"cve"
],
"description": {
"source": "cve",
"received_at": "2026-10-28T21:06:43.000209+00:00"
},
"workarounds": [],
"configurations": []
}Хронология записи
- Данные обновлены04.11.2026, 00:15
- Данные обновлены03.11.2026, 00:15
- Данные обновлены02.11.2026, 00:13
- Данные обновлены31.10.2026, 12:00
- Данные обновлены29.10.2026, 12:46
- Опубликована29.10.2026, 00:06
Личная заметка и статус
Другие CVE того же продукта
| УЯЗВИМОСТЬ / ПРОДУКТ | ПРИОРИТЕТ | CVSS | EPSS | СИГНАЛЫ | ОПУБЛИКОВАНА | Карточка |
|---|---|---|---|---|---|---|
| CVE-2026-15442 Heap use-after-free on read during bidirectional (D)TLS shutdown wolfSSL / wolfSSL | Низкий | 2.3 | 0,21 % | 27.09.2026 | ||
| CVE-2026-94419 Client session cache reference poisoning allows resumption with wrong server wolfSSL / wolfSSL | Низкий | 2.3 | 0,1 % | 27.09.2026 | ||
| CVE-2026-94418 Signature failure masked by date error under WOLFSSL_SMALL_CERT_VERIFY wolfSSL / wolfSSL | Низкий | 2.3 | 0,11 % | 27.09.2026 | ||
| CVE-2026-93304 (D)TLS 1.2 client accepts early ChangeCipherSpec before ClientKeyExchange wolfSSL / wolfSSL | Средний | 6.3 | 0,15 % | 27.09.2026 | ||
| CVE-2026-93302 Trusted peer certificate match ignores public key, allowing forged CA clones wolfSSL / wolfSSL | Высокий | 8.3 | 0,24 % | 27.09.2026 |