Misuse of connection.serverAuthenticate may cause authorization bypass in golang.org/x/crypto
Оценка Noroxi
Приоритет: Наблюдать (оценка срочности 37/100)
- Есть публичный код proof-of-concept (GitHub); записей об эксплуатации в реальных атаках нет.
- Вероятность эксплуатации в ближайшие 30 дней: 3,1% (FIRST EPSS); выше, чем у 87,8% записей.
- Может быть вызвана любым, у кого есть доступ через интернет. Учётная запись или пароль не требуются. Действия пользователя не требуются. Особые условия не требуются; воспроизводится стабильно.
- По данным CISA атаку можно автоматизировать: цели находятся массовым сканированием.
- Исправленная версия: golang.org/x/crypto golang.org/x/crypto/ssh 0.31.0; azl3 cert-manager 1.12.13-2 on Azure Linux 3.0 1.12.13-2; azl3 cf-cli 8.7.11-3 on Azure Linux 3.0 8.7.3-4.
Пока низкий приоритет. Обновитесь до golang.org/x/crypto golang.org/x/crypto/ssh 0.31.0; azl3 cert-manager 1.12.13-2 on Azure Linux 3.0 1.12.13-2; azl3 cf-cli 8.7.11-3 on Azure Linux 3.0 8.7.3-4 или новее.
Формируется автоматически по данным записи: CVSS (NVD и CNA), CISA KEV и SSVC, FIRST EPSS, источники эксплойтов, исправленные версии. Как мы считаем
Первоисточники: NVD · CVE.org · FIRST EPSS
Applications and libraries which misuse connection.serverAuthenticate (via callback field ServerConfig.PublicKeyCallback) may be susceptible to an authorization bypass. The documentation for ServerConfig.PublicKeyCallback says that "A call to this function does not guarantee that the key offered is in fact used to authenticate." Specifically, the SSH protocol allows clients to inquire about whether a public key is acceptable before proving control of the corresponding private key. PublicKeyCallback may be called with multiple keys, and the order in which the keys were provided cannot be used to infer which key the client successfully authenticated with, if any. Some applications, which store the key(s) passed to PublicKeyCallback (or derived information) and make security relevant determinations based on it once the connection is established, may make incorrect assumptions. For example, an attacker may send public keys A and B, and then authenticate with A. PublicKeyCallback would be called only twice, first with A and then with B. A vulnerable application may then make authorization decisions based on key B for which the attacker does not actually control the private key. Since this API is widely misused, as a partial mitigation golang.org/x/cry...@v0.31.0 enforces the property that, when successfully authenticating via public key, the last key passed to ServerConfig.PublicKeyCallback will be the key used to authenticate the connection. PublicKeyCallback will now be called multiple times with the same key, if necessary. Note that the client may still not control the last key passed to PublicKeyCallback if the connection is then authenticated with a different method, such as PasswordCallback, KeyboardInteractiveCallback, or NoClientAuth. Users should be using the Extensions field of the Permissions return value from the various authentication callbacks to record data associated with the authentication attempt instead of referencing external state. Once the connection is established the state corresponding to the successful authentication attempt can be retrieved via the ServerConn.Permissions field. Note that some third-party libraries misuse the Permissions type by sharing it across authentication attempts; users of third-party libraries should refer to the relevant projects for guidance.
- BDU:2024-11338
- GHSA-v778-237x-gjrc
- GO-2024-3321
- openSUSE-SU-2024:14573-1
- openSUSE-SU-2024:14585-1
- openSUSE-SU-2024:14590-1
- openSUSE-SU-2024:14592-1
- openSUSE-SU-2024:14593-1
- openSUSE-SU-2024:14595-1
- openSUSE-SU-2024:14599-1
- openSUSE-SU-2024:14602-1
- openSUSE-SU-2024:14604-1
- openSUSE-SU-2025:0025-1
- openSUSE-SU-2025:0056-1
- openSUSE-SU-2025:0094-1
- openSUSE-SU-2025:14613-1
- openSUSE-SU-2025:14633-1
- openSUSE-SU-2025:14641-1
- openSUSE-SU-2025:14660-1
- openSUSE-SU-2025:14713-1
- Опубликовано
- 11 дек. 2024 г.
- Обновлено
- 17 июн. 2026 г.
- EPSS
- 3,1 % · 87-й процентиль
- CWE
- CWE-1108
Инструменты для отчёта
Оценка срочности
37
Наблюдать
Пока низкий приоритет.
- CVSS
- 36 / 40 · 9.1 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 1 / 30 · 3,1 %
Решение CISA SSVC
- Эксплуатация
- нет
- Автоматизируемо
- да
- Техническое влияние
- полное
Vulnrichment: входные данные дерева решений CISA.
Узнайте, когда запись изменится
- Нет в KEV: эксплуатация в реальных атаках не зафиксирована
- Есть PoC, боевого модуля нет
- Исправление выпущено
Если что-то из этого изменится, сообщим в ежедневной сводке.
У вас WordPress? Проверьте сайт бесплатно в WP Lens
Анализ Noroxi
Что это значит для вашей инфраструктуры?
Оценка выше формируется автоматически по данным записи и не знает вашей среды. Наша команда проверит на ваших системах, действительно ли уязвимость эксплуатируема и какой меры достаточно.
Мы используем этот продукт, нужна помощьЗатронутые системы
Затронута ли ваша версия?
Выберите продукт и введите свою версию. Она сравнивается с диапазонами этой записи прямо в браузере и никуда не отправляется.
—
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (Go). Не зависят от анализа CPE в NVD и обычно опережают его.
golang.org/x/crypto golang.org/x/crypto/ssh
- до 0.31.0затронута · semver
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| Debian:12 | golang-go.crypto | с 0 | — |
| Debian:14 | golang-go.crypto | до 1:0.42.0-1 | 1:0.42.0-1 |
| Go | golang.org/x/crypto | до 0.31.0 | 0.31.0 |
| openSUSE:Leap 15.6 | vexctl | до 0.4.1+git78.f951e3a-150000.1.11.1 | 0.4.1+git78.f951e3a-150000.1.11.1 |
| openSUSE:Leap 16.0 | git-bug | до 0.10.1-bp160.1.1 | 0.10.1-bp160.1.1 |
| openSUSE:Leap 16.0 | gitea-tea | до 0.15.1-bp160.1.1 | 0.15.1-bp160.1.1 |
| openSUSE:Leap 16.0 | google-guest-agent | до 20250506.01-160000.1.1 | 20250506.01-160000.1.1 |
| openSUSE:Leap 16.0 | trivy | до 0.66.0-bp160.1.1 | 0.66.0-bp160.1.1 |
| openSUSE:Leap 16.0 | vexctl | до 0.4.4+git20.5d61136-160000.1.1 | 0.4.4+git20.5d61136-160000.1.1 |
| openSUSE:Tumbleweed | apptainer | до 1.3.6-5.1 | 1.3.6-5.1 |
| openSUSE:Tumbleweed | cloudflared | до 2024.12.1-1.1 | 2024.12.1-1.1 |
| openSUSE:Tumbleweed | git-bug | до 0.8.0+git.1733745604.d499b6e-1.1 | 0.8.0+git.1733745604.d499b6e-1.1 |
| openSUSE:Tumbleweed | gitleaks | до 8.24.2-1.1 | 8.24.2-1.1 |
| openSUSE:Tumbleweed | golang-github-prometheus-prometheus | до 3.1.0-1.1 | 3.1.0-1.1 |
| openSUSE:Tumbleweed | google-guest-agent | до 20250327.01-1.1 | 20250327.01-1.1 |
| openSUSE:Tumbleweed | gopass | до 1.15.16-1.1 | 1.15.16-1.1 |
| openSUSE:Tumbleweed | govulncheck-vulndb | до 0.0.20241213T205935-1.1 | 0.0.20241213T205935-1.1 |
| openSUSE:Tumbleweed | grafana | до 11.3.0-4.1 | 11.3.0-4.1 |
| openSUSE:Tumbleweed | helm | до 3.16.4-1.1 | 3.16.4-1.1 |
| openSUSE:Tumbleweed | helm3 | до 3.19.2-1.1 | 3.19.2-1.1 |
| openSUSE:Tumbleweed | loki | до 3.3.2-1.1 | 3.3.2-1.1 |
| openSUSE:Tumbleweed | minikube | до 1.36.0-2.1 | 1.36.0-2.1 |
| openSUSE:Tumbleweed | rclone | до 1.69.0-1.1 | 1.69.0-1.1 |
| openSUSE:Tumbleweed | rime-plum-go | до 1.0.3-1.1 | 1.0.3-1.1 |
+59
Тот же продукт
Другие записи с наивысшей оценкой для того же основного продукта.
- CVE-2026-56854Source-address critical option not enforced for non-public-key auth callbacks in golang.org/x/crypto/ssh30Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| golang.org/x/crypto golang.org/x/crypto/ssh | 0.31.0 | Вендор (CNA) |
| azl3 cert-manager 1.12.13-2 on Azure Linux 3.0 | 1.12.13-2 · CBL-Mariner Releases | Microsoft (MSRC) |
| azl3 cf-cli 8.7.11-3 on Azure Linux 3.0 | 8.7.3-4 · CBL-Mariner Releases | Microsoft (MSRC) |
| azl3 cf-cli 8.7.3-4 on Azure Linux 3.0 | 8.7.3-4 · CBL-Mariner Releases | Microsoft (MSRC) |
| azl3 docker-buildx 0.14.0-2 on Azure Linux 3.0 | 0.14.0-2 · CBL-Mariner Releases | Microsoft (MSRC) |
| azl3 docker-buildx 0.14.0-5 on Azure Linux 3.0 | 0.14.0-2 · CBL-Mariner Releases | Microsoft (MSRC) |
| azl3 docker-compose 2.27.0-2 on Azure Linux 3.0 | 2.27.0-2 · CBL-Mariner Releases | Microsoft (MSRC) |
| azl3 docker-compose 2.27.0-5 on Azure Linux 3.0 | 2.27.0-2 · CBL-Mariner Releases | Microsoft (MSRC) |
| azl3 gh 2.62.0-3 on Azure Linux 3.0 | 2.62.0-3 · CBL-Mariner Releases | Microsoft (MSRC) |
| azl3 gh 2.62.0-8 on Azure Linux 3.0 | 2.62.0-3 · CBL-Mariner Releases | Microsoft (MSRC) |
| azl3 kubevirt 1.2.0-11 on Azure Linux 3.0 | 1.2.0-11 · CBL-Mariner Releases | Microsoft (MSRC) |
| azl3 kubevirt 1.2.0-17 on Azure Linux 3.0 | 1.2.0-11 · CBL-Mariner Releases | Microsoft (MSRC) |
| azl3 moby-engine 25.0.3-13 on Azure Linux 3.0 | 25.0.3-9 · CBL-Mariner Releases | Microsoft (MSRC) |
| azl3 moby-engine 25.0.3-9 on Azure Linux 3.0 | 25.0.3-9 · CBL-Mariner Releases | Microsoft (MSRC) |
| azl3 packer 1.9.5-4 on Azure Linux 3.0 | 1.9.5-4 · CBL-Mariner Releases | Microsoft (MSRC) |
| azl3 packer 1.9.5-6 on Azure Linux 3.0 | 1.9.5-4 · CBL-Mariner Releases | Microsoft (MSRC) |
| azl3 telegraf 1.31.0-10 on Azure Linux 3.0 | 1.31.0-3 · CBL-Mariner Releases | Microsoft (MSRC) |
| azl3 telegraf 1.31.0-3 on Azure Linux 3.0 | 1.31.0-3 · CBL-Mariner Releases | Microsoft (MSRC) |
| cbl2 cert-manager 1.11.2-16 on CBL Mariner 2.0 | 1.11.2-16 · CBL-Mariner Releases | Microsoft (MSRC) |
| cbl2 cert-manager 1.11.2-22 on CBL Mariner 2.0 | 1.11.2-16 · CBL-Mariner Releases | Microsoft (MSRC) |
| cbl2 cert-manager 1.11.2-22 on CBL-Mariner 2.0 | 1.11.2-16 · CBL-Mariner Releases | Microsoft (MSRC) |
| cbl2 moby-compose 2.17.3-10 on CBL Mariner 2.0 | 2.17.3-9 · CBL-Mariner Releases | Microsoft (MSRC) |
| cbl2 moby-compose 2.17.3-10 on CBL-Mariner 2.0 | 2.17.3-9 · CBL-Mariner Releases | Microsoft (MSRC) |
| cbl2 moby-compose 2.17.3-9 on CBL Mariner 2.0 | 2.17.3-9 · CBL-Mariner Releases | Microsoft (MSRC) |
| cbl2 moby-engine 24.0.9-12 on CBL Mariner 2.0 | 24.0.9-12 · CBL-Mariner Releases | Microsoft (MSRC) |
| cbl2 moby-engine 24.0.9-16 on CBL Mariner 2.0 | 24.0.9-12 · CBL-Mariner Releases | Microsoft (MSRC) |
| cbl2 moby-engine 24.0.9-16 on CBL-Mariner 2.0 | 24.0.9-12 · CBL-Mariner Releases | Microsoft (MSRC) |
| cbl2 packer 1.9.5-5 on CBL Mariner 2.0 | 1.9.5-5 · CBL-Mariner Releases | Microsoft (MSRC) |
| cbl2 packer 1.9.5-5 on CBL-Mariner 2.0 | 1.9.5-5 · CBL-Mariner Releases | Microsoft (MSRC) |
| cbl2 telegraf 1.29.4-10 on CBL Mariner 2.0 | 1.29.4-10 · CBL-Mariner Releases | Microsoft (MSRC) |
+27
Статус эксплойта
Есть proof of concept
Существует публичный PoC или сигнатура обнаружения. Знание об эксплойте доступно; не откладывайте установку исправлений.
Доказательство
- Репозиторий PoC на GitHub ×4
Noroxi не размещает код эксплойтов и не даёт на них ссылок. Показываются имена модулей Metasploit и идентификаторы шаблонов Nuclei (имена, не код); записи Exploit-DB и репозитории PoC даются только числом.
| Источник | Тип | Дата |
|---|---|---|
| Репозиторий PoC на GitHub | stars:6 | 2024-12-17 |
| Репозиторий PoC на GitHub | stars:1 | 2024-12-17 |
| Репозиторий PoC на GitHub | stars:1 | 2025-01-24 |
| Репозиторий PoC на GitHub | stars:0 | 2026-04-13 |
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
- Публикация
- Первый PoC+5 дн.
- Сегодня20 окт. 2026 г.+677 дн.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
Ночной расчёт связей ничего не нашёл.
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Технические детали
Условия атаки
- Может быть вызвана любым, у кого есть доступ через интернет.
- Учётная запись или пароль не требуются.
- Действия пользователя не требуются.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- высокое · данные могут быть прочитаны
- Целостность
- высокое · данные или конфигурация могут быть изменены
- Доступность
- нет
- Вектор атаки
- Сеть
- Сложность атаки
- Низкая
- Требуемые привилегии
- Не требуются
- Взаимодействие с пользователем
- Не требуется
- Область действия
- Не изменяется
- Влияние на конфиденциальность
- Высокое
- Влияние на целостность
- Высокое
- Влияние на доступность
- Нет
Класс уязвимости (CWE)
CWE-1108 · Excessive Reliance on Global VariablesВектор CVSS
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
nvd-secondary
Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
У MITRE нет сопоставления CAPEC/ATT&CK для этого CWE.
Журнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
Показать все источники (ещё 6)Свернуть
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.