Рекомендуем
VPS на Windows и Linux — от 49 ₽ за 7 дней Быстрый запуск сервера на NVMe для сайтов, ботов и других задач.
Выбрать VPS

Python 3.14.8 и 3.12.15 закрыли уязвимости в SSL, архивах и urllib

Python 3.14.8 и 3.12.15 появились в одном внеплановом пакете исправлений безопасности: обновления закрывают проблемы в ssl, tarfile, zipfile, urllib.request и других компонентах стандартной библиотеки. Ветка 3.14 получила около 354 исправлений и полноценные сборки, тогда как Python 3.12.15 распространяется только в исходном коде.

Python 3.14.8 и 3.12.15 закрыли уязвимости
Python 3.14.8 и 3.12.15 закрыли уязвимости

Python 3.14.8 вышел раньше запланированного графика

Python 3.14.8 датирован 30 сентября 2026 года, хотя в официальном графике Python 3.14 релиз 3.14.8 ожидался 6 октября. Команда CPython пометила выпуск как expedited security release — ускоренный релиз безопасности.

Причина хорошо видна по содержимому обновления. В новой версии закрыли сразу несколько уязвимостей в сетевых функциях, обработке архивов и SSL. Параллельно разработчики включили обычный для maintenance-релиза набор исправлений: около 354 изменений в коде, сборочной системе и документации от 142 участников после Python 3.14.7.

Официальная страница Python 3.14.8 содержит установочные варианты для поддерживаемых платформ и исходные архивы. Серия 3.14 остаётся основной стабильной веткой Python с регулярными исправлениями ошибок.

Две ошибки в SSL затрагивали работу с контекстами и именем сервера

CVE-2026-19445 связана с SSLContext на стороне сервера. Ошибка типа use-after-free могла возникнуть, когда SNI callback переключал SSL-контекст, а исходный объект больше не удерживался ссылкой. Такой класс дефектов опасен тем, что программа продолжает обращаться к уже освобождённой области памяти, что способно привести к падению процесса и непредсказуемому поведению.

CVE-2026-19553 касается SSLContext.wrap_bio(). Метод недостаточно строго проверял параметр server_hostname. В актуальных ветках Python добавлена валидация аргументов, а asyncio теперь проверяет server_hostname при создании TLS-соединений.

Поведение различается между поколениями Python. В 3.10–3.12 отсутствие имени хоста при включённом check_hostname вызывает DeprecationWarning ради совместимости. В Python 3.13 и новее такая ситуация приводит к ValueError.

tarfile получил несколько исправлений фильтров распаковки

Сразу несколько CVE относятся к tarfile — модулю стандартной библиотеки для работы с TAR-архивами.

CVE-2026-82049 закрывает сценарий, при котором комбинация жёсткой ссылки и символической ссылки могла позволить изменить файл за пределами каталога распаковки или раскрыть его содержимое. Уязвимость затрагивала механизм extraction filters, который как раз должен ограничивать опасные пути и типы объектов внутри архива.

CVE-2026-19672 исправляет другой обход фильтров: архив мог сформировать путь, который сначала выходит за пределы целевого каталога, а затем возвращается обратно. Такой сценарий позволял создавать каталоги вне ожидаемого места назначения.

Python 3.12.15 получил ещё CVE-2026-87910. Исправление заставляет tarfile повторно учитывать extraction filter в ситуации, когда обработка ссылки откатывается к извлечению другого элемента архива. Если фильтр отклоняет такой элемент, распаковка его пропускает.

В списке Python 3.14.8 CVE-2026-87910 отсутствует, поэтому набор исправлений двух релизов совпадает не полностью.

zipfile ограничил объём памяти при распаковке сжатых данных

CVE-2026-15310 затрагивает zipfile. Проблема позволяла небольшому сжатому элементу архива запросить чрезмерно большой объём памяти при распаковке Bzip2, LZMA, а в Python 3.14 — ещё и Zstandard.

Исправление ограничивает объём данных, который декомпрессор может вернуть за одно чтение. Практический смысл здесь понятен даже без погружения во внутренности ZIP: специально подготовленный архив больше не должен провоцировать неконтролируемое выделение памяти тем же способом.

Разработчики отдельно уточнили границы исправления. Сторонние декомпрессоры, которые подменяют внутреннюю функцию _get_decompressor() и не поддерживают ожидаемый интерфейс needs_input и двухаргументный decompress(), могут сохранять прежнее поведение.

urllib.request больше не смешивает учётные данные разных URL-схем

CVE-2026-15806 связана с urllib.request.HTTPPasswordMgr. До исправления сохранённые учётные данные для одной URL-схемы могли использоваться при совпадающем адресе другой схемы.

Типичный пример — пара HTTPS и HTTP. После исправления менеджер паролей учитывает схему URL, поэтому данные, сохранённые для HTTPS, не должны автоматически применяться к соответствующему HTTP-адресу.

Ещё одно изменение касается stringprep и IDNA. CVE-2026-17084 ограничивает обработку атрибутами Unicode, определёнными в RFC 3454 и Unicode 3.2.0. Это возвращает реализацию к набору данных, на который опирается исходная спецификация StringPrep.

Python 3.14.8 обновил OpenSSL до 3.5.9

В Python 3.14.8 встроенная версия OpenSSL обновлена до 3.5.9 для Windows, macOS, Android и iOS. Для пользователей готовых сборок это изменение приходит вместе с самим интерпретатором.

Одновременно bundled Expat обновлён до 2.8.5. Expat используется в XML-стеке Python и входит в поставку CPython на ряде платформ.

Для Python 3.12.15 ситуация другая: релиз распространяется только исходным кодом и не включает bundled OpenSSL. Поэтому строка об OpenSSL 3.5.9 относится именно к более новой ветке 3.14.

Python 3.12.15 существует только как security-релиз в исходниках

Python 3.12 перешёл в фазу security fixes only. По странице Python 3.12.15 ветка больше не получает регулярные исправления ошибок, а security-релизы выходят нерегулярно и только в исходном виде до октября 2028 года.

Последним полноценным bugfix-релизом Python 3.12 с бинарными установщиками был Python 3.12.10. В 3.12.15 доступны исходные архивы .tar.gz и .tar.xz, снабжённые Sigstore-подписями, SBOM и контрольными суммами.

Такое различие хорошо показывает текущий жизненный цикл двух веток. Python 3.14.8 объединяет исправления безопасности с обычной maintenance-работой и готовыми сборками. Python 3.12.15 обслуживает уже существующие установки за счёт точечных security-патчей.

Один пакет релизов закрыл общий набор проблем сразу в нескольких ветках Python

Официальный Python Insider 1 октября 2026 года одновременно объявил Python 3.10.22, 3.11.17, 3.12.15, 3.13.16 и 3.14.8. Большая часть перечисленных уязвимостей закрыта сразу в нескольких поддерживаемых сериях, что указывает на общий код стандартной библиотеки, который продолжает использоваться параллельно в разных поколениях CPython.

Для Python 3.14.8 этот выпуск стал восьмым maintenance-релизом и внеплановым security-обновлением. Для Python 3.12.15 он подтверждает другой этап жизненного цикла: ветка получает только исправления безопасности и больше не выпускает штатные Windows- и macOS-инсталляторы.

Следующая развилка уже заложена в расписании Python: 3.14 продолжит получать регулярные bugfix-релизы, а 3.12 останется на нерегулярных source-only security-выпусках до октября 2028 года. Частота следующих исправлений 3.12 будет зависеть от появления новых уязвимостей.

При использовании материалов сайта необходимо указывать ссылку на TGLand.ru. Если вы копируете фрагменты текста в интернете, прямая гиперссылка, доступная для индексации поисковыми системами, должна быть размещена в начале материала.

Вам также может понравиться