python-cryptography: Duplicate self-signed intermediates can cause exponential path-building
python-cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. In versions 42.0.0 through 48.0.0, when resolving invalid certificate chains that include duplicate copies of self-signed certificates, the processing recursively invokes the same candidate, leading to an exponential blowup. Although the limitation that the chain depth cannot exceed a specified maximum depth prevents unbounded recursion and guarantees termination, an attacker-controlled certificate chain can lead the processing to easily take more than 5s to reject in testing. This amplification could form the basis for a resource exhaustion denial of service attack. The core issue arises in the recursive nature of build_chain_inner, which does not de-duplicate against previously analyzed candidates. As the correctness of validation is not affected, the integrity of a system cannot be compromised through this vector, only its availability. This issue is fixed in 49.0.0.
- BDU:2026-11011
- EUVD-2026-52450
- GHSA-jwv3-5hgf-82ww
- ALSA-2026:64774
- ALSA-2026:64795
- ALSA-2026:71658
- openSUSE-SU-2026:21685-1
- PYSEC-2026-3553
- RHSA-2026:55543
- RHSA-2026:64774
- RHSA-2026:64795
- RHSA-2026:71658
- RHSA-2026:71659
- RLSA-2026:64774
- RLSA-2026:64795
- RLSA-2026:71658
- SUSE-SU-2026:23196-1
- SUSE-SU-2026:23247-1
- SUSE-SU-2026:23404-1
- SUSE-SU-2026:23570-1
- Опубликовано
- 3 авг. 2026 г.
- Обновлено
- 10 сент. 2026 г.
- EPSS
- 0,3 % · 15-й процентиль
- CWE
- CWE-400
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
34
Наблюдать
Пока низкий приоритет.
- CVSS
- 34 / 40 · 8.7 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 0 / 30 · 0,3 %
Решение CISA SSVC
- Эксплуатация
- proof of concept
- Автоматизируемо
- да
- Техническое влияние
- частичное
Vulnrichment: входные данные дерева решений CISA.
Оценка CNA и NVD
- NVD
- —
- CNA · GitHub_M
- 8,7
- NVD ещё не выставил свою оценку; показана оценка CNA.
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.
Затронутые системы
—
Версии, заявленные вендором
Диапазоны затронутых версий, заявленные назначающей организацией (GitHub_M). Не зависят от анализа CPE в NVD и обычно опережают его.
pyca cryptography
- >= 42.0.0, < 49.0.0затронута
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| AlmaLinux:10 | python3-cryptography | до 43.0.0-4.el10_2.5 | 43.0.0-4.el10_2.5 |
| AlmaLinux:10 | python3.14-cryptography | до 45.0.4-4.el10_2.5 | 45.0.4-4.el10_2.5 |
| AlmaLinux:9 | python3.14-cryptography | до 45.0.4-4.el9_8.6 | 45.0.4-4.el9_8.6 |
| Debian:12 | python-cryptography | все версии | — |
| Debian:14 | python-cryptography | до 49.0.0-1 | 49.0.0-1 |
| openSUSE:Leap 16.0 | python-cryptography | до 44.0.3-160000.5.1 | 44.0.3-160000.5.1 |
| PyPI | cryptography | с 42.0.0 · до 49.0.0 | 49.0.0 |
| PyPI | cryptography | до 49.0.0 | 49.0.0 |
| Red Hat:enterprise_linux_eus:10.0 | python-cryptography | до 0:43.0.0-4.el10_0.1 | 0:43.0.0-4.el10_0.1 |
| Red Hat:enterprise_linux_eus:10.0 | python-cryptography-debugsource | до 0:43.0.0-4.el10_0.1 | 0:43.0.0-4.el10_0.1 |
| Red Hat:enterprise_linux_eus:10.0 | python3-cryptography | до 0:43.0.0-4.el10_0.1 | 0:43.0.0-4.el10_0.1 |
| Red Hat:enterprise_linux_eus:10.0 | python3-cryptography-debuginfo | до 0:43.0.0-4.el10_0.1 | 0:43.0.0-4.el10_0.1 |
| Red Hat:enterprise_linux:10.2 | python-cryptography | до 0:43.0.0-4.el10_2.5 | 0:43.0.0-4.el10_2.5 |
| Red Hat:enterprise_linux:10.2 | python-cryptography-debugsource | до 0:43.0.0-4.el10_2.5 | 0:43.0.0-4.el10_2.5 |
| Red Hat:enterprise_linux:10.2 | python3-cryptography | до 0:43.0.0-4.el10_2.5 | 0:43.0.0-4.el10_2.5 |
| Red Hat:enterprise_linux:10.2 | python3-cryptography-debuginfo | до 0:43.0.0-4.el10_2.5 | 0:43.0.0-4.el10_2.5 |
| Red Hat:enterprise_linux:10.2 | python3.14-cryptography | до 0:45.0.4-4.el10_2.5 | 0:45.0.4-4.el10_2.5 |
| Red Hat:enterprise_linux:10.2 | python3.14-cryptography-debuginfo | до 0:45.0.4-4.el10_2.5 | 0:45.0.4-4.el10_2.5 |
| Red Hat:enterprise_linux:10.2 | python3.14-cryptography-debugsource | до 0:45.0.4-4.el10_2.5 | 0:45.0.4-4.el10_2.5 |
| Red Hat:enterprise_linux:9::appstream | python3.14-cryptography | до 0:45.0.4-4.el9_8.6 | 0:45.0.4-4.el9_8.6 |
| Red Hat:enterprise_linux:9::appstream | python3.14-cryptography-debuginfo | до 0:45.0.4-4.el9_8.6 | 0:45.0.4-4.el9_8.6 |
| Red Hat:enterprise_linux:9::appstream | python3.14-cryptography-debugsource | до 0:45.0.4-4.el9_8.6 | 0:45.0.4-4.el9_8.6 |
| Red Hat:hummingbird:1 | python-cryptography | до 0:50.0.0-1.hum1 | 0:50.0.0-1.hum1 |
| Red Hat:hummingbird:1 | python3-cryptography | до 0:50.0.0-1.hum1 | 0:50.0.0-1.hum1 |
+6
Тот же продукт
pyca: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2026-69247cryptography: PKCS#7 EnvelopedData decryption exposes a Bleichenbacher oracle through distinguishable errors and timing32Наблюдать
- CVE-2026-69248python-cryptography verifier accepts wildcard DNS names allowing escape from permittedSubtrees27Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| pyca cryptography | 49.0.0 · description | Вендор (CNA) |
| azl3 python-cryptography 42.0.5-4 on Azure Linux 3.0 | 42.0.5-5 · CBL-Mariner Releases | Microsoft (MSRC) |
| almalinux:python3-cryptography | 43.0.0-4.el10_2.5 · AlmaLinux:10 | Реестр пакетов (OSV) |
| almalinux:python3.14-cryptography | 45.0.4-4.el9_8.6 · AlmaLinux:9 | Реестр пакетов (OSV) |
| debian:python-cryptography | 49.0.0-1 · Debian:14 | Реестр пакетов (OSV) |
| opensuse:python-cryptography | 44.0.3-160000.5.1 · openSUSE:Leap 16.0 | Реестр пакетов (OSV) |
| PyPI:cryptography | 49.0.0 | Реестр пакетов (OSV) |
| red hat:python-cryptography | 0:50.0.0-1.hum1 · Red Hat:hummingbird:1 | Реестр пакетов (OSV) |
| red hat:python-cryptography-debugsource | 0:43.0.0-4.el10_2.5 · Red Hat:enterprise_linux:10.2 | Реестр пакетов (OSV) |
| red hat:python3-cryptography | 0:50.0.0-1.hum1 · Red Hat:hummingbird:1 | Реестр пакетов (OSV) |
| red hat:python3-cryptography-debuginfo | 0:43.0.0-4.el10_2.5 · Red Hat:enterprise_linux:10.2 | Реестр пакетов (OSV) |
| red hat:python3.14-cryptography | 0:45.0.4-4.el9_8.6 · Red Hat:enterprise_linux:9::appstream | Реестр пакетов (OSV) |
| red hat:python3.14-cryptography-debuginfo | 0:45.0.4-4.el9_8.6 · Red Hat:enterprise_linux:9::appstream | Реестр пакетов (OSV) |
| red hat:python3.14-cryptography-debugsource | 0:45.0.4-4.el9_8.6 · Red Hat:enterprise_linux:9::appstream | Реестр пакетов (OSV) |
| rocky linux:python-cryptography | 0:43.0.0-4.el10_2.5 · Rocky Linux:10 | Реестр пакетов (OSV) |
| rocky linux:python3.14-cryptography | 0:45.0.4-4.el9_8.6 · Rocky Linux:9 | Реестр пакетов (OSV) |
| suse:python-cryptography | 42.0.4-slfo.1.1_6.1 · SUSE:Linux Micro 6.1 | Реестр пакетов (OSV) |
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
Ночной расчёт связей ничего не нашёл.
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Технические детали
Условия атаки
- Может быть вызвана любым, у кого есть доступ через интернет.
- Учётная запись или пароль не требуются.
- Действия пользователя не требуются.
- Особые условия не требуются; воспроизводится стабильно.
В случае успеха
- Конфиденциальность
- Целостность
- Доступность
- Вектор атаки
- Сеть
- Сложность атаки
- Низкая
- Требуемые привилегии
- Не требуются
- Взаимодействие с пользователем
- Не требуется
- Область действия
- X
Класс уязвимости (CWE)
CWE-400 · Uncontrolled Resource ConsumptionВектор CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/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-400Показательный пример этого класса уязвимостей. Это не исходный код вендора; показан ошибочный шаблон и его исправление.
Уязвимый код
function expand(node) { return node.children.map(expand);}Исправленный код
const MAX_DEPTH = 32;function expand(node, depth = 0) { if (depth > MAX_DEPTH) throw new Error("слишком глубоко"); return node.children.map((c) => expand(c, depth + 1));}Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
Анализ Noroxi
Анализа Noroxi для этой записи пока нет
Мы не пишем анализ вручную для всех 385 000+ уязвимостей; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.
Мы используем этот продукт, нужна помощьЖурнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
- github.com/pyca/cryptography/commit/3763aa79b
- github.com/pyca/cryptography/commit/4a12cf49675a184e47f912b00b04f3a629283582
- github.com/pyca/cryptography/pull/14960
- github.com/pyca/cryptography/security/advisories/GHSA-jwv3-5hgf-82ww
- github.com/pypa/advisory-database/tree/main/vulns/cryptography/PYSEC-2026-3553.yaml
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.