Python 3.10.22가 10월 1일 나왔다. 릴리스 페이지는 이것이 3.10의 마지막 릴리스이며 3.10 계열은 더 이상 보안 업데이트를 받지 않는다고 밝힌다.
PEP 619는 2026년 10월 1일부로 3.10이 수명 종료(end-of-life) 단계에 들어갔다고 적는다. 3.10 코드베이스는 동결됐고, 버그 트래커에서 어떤 종류의 이슈도 받지 않는다.
3.10.22에는 tarfile 압축 해제 필터 우회, zipfile의 bzip2·LZMA 해제 시 무제한 메모리 할당, urllib 자격 증명 범위 문제 등 CVE가 붙은 수정이 들어 있다. 번들된 libexpat도 2.8.5로 올렸다.
ssl.SSLContext.wrap_bio()는 이제 server_hostname 등 인자를 검증한다. 3.10에서는 호환성을 위해 check_hostname이 켜진 상태에서 호스트명이 없으면 DeprecationWarning만 낸다.
3.10.22는 소스만 제공한다. 공식 바이너리 설치기가 있던 마지막 3.10 버전은 2023년 4월의 3.10.11이었다.
주의할 점: 업스트림 종료와 배포판 지원의 차이
이번 종료는 업스트림 CPython 유지보수에 관한 것이다. OS 배포판이나 상용 공급업체는 별도 정책을 둘 수 있지만, 이 기사는 개별 배포판 정책이나 계약을 확인하지 않았다.
설치기로 Python을 설치한 환경은 3.10.12 이후 소스 전용 보안 릴리스를 평소 경로로 받지 못했을 수 있다. 3.10.22를 설치해도 업스트림 지원 기간이 늘어나지는 않는다.
릴리스 페이지는 지원되는 Python 버전으로 업그레이드하라고 안내하며, 현재 최신 기능 릴리스 계열은 3.14라고 밝힌다.
마지막 패치와 런타임 이전을 나누는 정리
3.10을 쓰는 서비스, 컨테이너 기반 이미지, 예약 작업의 목록을 만들면 두 작업의 범위가 드러난다.
마지막 패치는 이미 나온 수정을 반영하는 일이고, 런타임 이전은 앞으로의 보안 수정을 받기 위한 일이다. 의존성과 네이티브 확장의 동작은 이전할 버전에서 따로 드러난다.
Python 3.10.22는 3.10의 마지막 보안 수정이며, 이 패치를 적용해도 3.10의 업스트림 지원은 다시 시작되지 않는다.