Python 3.14.7: как проверить, какая Expat реально встроена в интерпретатор. Практическая инструкция отделяет симптом от соседних причин: синтетический fixture, отрицательный control, таблица наблюдений, критерий остановки и минимальный пакет для поддержки без production-данных.
Ответ и предел изменения
Сначала отделите версию от догадки. Для запроса «как подтвердить версию встроенной Expat после перехода на Python 3.14.7 без опасного XML-теста» подтверждено только следующее изменение: В Python 3.14.7 bundled libexpat обновлена до 2.8.2; отдельный релиз Expat 2.8.2 опубликован 25 июня 2026 года. Наблюдаемая боль уже: Сканер показывает уязвимую libexpat, но команда пакета и Python могут смотреть на разные копии библиотеки, поэтому один номер пакета не доказывает фактическую связку интерпретатора. Ни release note, ни наличие issue не доказывают, что именно этот дефект есть в вашем приложении. До любого действия зафиксируйте исходный результат, происхождение Python и одну ожидаемую развилку; обновление окружения само по себе не считается диагностикой.
Изолированный опыт
Для опыта T22-01 подготовьте отдельную среду и выполните: в чистом процессе вывести sys.version, pyexpat.EXPAT_VERSION, pyexpat.version_info и путь модуля pyexpat, а затем сохранить SBOM только для этого интерпретатора. Перед запуском запишите version/build mode, доступные backend-возможности и deadline. Входы должны быть синтетическими и минимальными; повтор использует вновь созданные объекты, чтобы cache, locale, GUI state, descriptor или предыдущий exception не склеили ветки. Не включайте токены, рабочие письма, архивы, production PID и абсолютные домашние пути.
Отрицательный контроль
Опровергающий сценарий: сопоставить системный python, изолированный официальный Python 3.14.7 и контейнерный образ, не подавая им недоверенный XML. Ведите строки в формате «источник интерпретатора | sys.version | EXPAT_VERSION | путь pyexpat | пакетный владелец | результат SBOM». Порядок A → B → A2 обязателен: A — control, B — целевой case, A2 — новый control после полного пересоздания fixture. Если A2 не совпадает с A, опыт загрязнён и итог нельзя помечать passed. Пустое поле не равно нулю, а сообщение exception не заменяет его класс и фазу.
Критерий решения
Зелёный критерий заранее определён так: каждый реально запускаемый Python однозначно привязан к ожидаемой Expat, а сканер указывает ту же копию, а не соседний системный пакет. Всё остальное делится на not reproduced, environment blocked и failed control. Not reproduced означает только отсутствие симптома в этой конфигурации. Environment blocked запрещает вывод о версии. Failed control переводит расследование к fixture или соседней причине. Сравнение 3.14.6 и 3.14.7 допустимо лишь при идентичном входе, лимитах и runtime capabilities.
Стоп и очистка
Стоп-линия для T22-01: не загружать PoC-файлы и не разбирать недоверенный XML ради определения версии; остановиться при расхождении происхождения бинарника и SBOM. Дополнительные красные флаги — внешний сетевой запрос, запись вне temp root, приватные данные в stdout, неизвестный descendant process и превышение deadline. Не добивайтесь зелёного результата отключением проверок, catch-all обработчиком, бесконечным retry или ростом лимитов. Очистка удаляет только созданные ресурсы и ещё раз проверяет отсутствие живых child/GUI/stub объектов.
Данные для поддержки
Для поддержки достаточно передать: хэш бинарника Python, четыре значения версии без переменных окружения, путь модуля с сокращённым корнем, имя пакета или образа и идентификатор отчёта сканера. Добавьте label T22-01, московский timestamp и точную формулировку критерия «каждый реально запускаемый Python однозначно привязан к ожидаемой Expat, а сканер указывает ту же копию, а не соседний системный пакет». Секреты, IP, токены, hostnames и полные environment dumps удалите. Официальные источники подтверждают изменение «В Python 3.14.7 bundled libexpat обновлена до 2.8.2; отдельный релиз Expat 2.8.2 опубликован 25 июня 2026 года.», но не подтверждают массовость запроса или готовность конкретного приложения.
Материал подготовлен редакцией VOne с помощью ИИ по открытым официальным и первичным источникам; факты, даты и ссылки перепроверены. Реальные пользовательские данные не использовались.
Источники и проверка
- Python 3.14.7 release проверено 2026-08-29
- Python 3.14.7 changelog проверено 2026-08-29
- CPython issue #152216 проверено 2026-08-29
- Официальный релиз Expat 2.8.2 проверено 2026-08-29
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.