피드로 돌아가기
Python 3.13.4, 3.12.11, 3.11.13, 3.10.18 and 3.9.23 are now available
Python InsiderPython Insider
Security

Python이 여러 버전에서 tarfile 추출 필터 우회, unicode-escape 디코더 use-after-free, IPv6 주소 처리 메모리 과소비를 수정한 보안 패치 배포

Python 3.13.4, 3.12.11, 3.11.13, 3.10.18 and 3.9.23 are now available

Thomas Wouters2025년 6월 3일5intermediate

Context

Python의 tarfile 추출 필터(filter="data", filter="tar")가 조작된 심볼릭 링크와 하드 링크를 통해 우회될 수 있었다. unicode-escape 디코더에서 "strict"이 아닌 에러 핸들러 사용 시 use-after-free 취약점이 존재했다. ipaddress 모듈에서 긴 IPv6 주소 처리 시 과도한 메모리 소비와 경량 서비스 거부(DoS) 위험이 있었다.

Technical Solution

  • tarfile 추출 필터 우회 방지: CVE 2024-12718, CVE 2025-4138, CVE 2025-4330, CVE 2025-4517을 해결하는 gh-135034 패치 적용
  • unicode-escape 디코더 메모리 안전 개선: gh-133767을 통해 "strict"이 아닌 에러 핸들러 사용 시 use-after-free 제거
  • IPv6 주소 처리 최적화: gh-128840으로 긴 IPv6 주소 처리를 조기에 단락하여 메모리 소비 방지
  • ipaddress 모듈 백포트: 보안 수정을 가능하게 하기 위해 추가 ipaddress 변경사항을 여러 Python 버전에 백포트
  • Python 3.13.4: 보안 수정 외 300개 이상의 버그 수정, 빌드 개선, 문서 변경사항 포함

Key Takeaway

보안 취약점이 여러 활성 Python 버전에 걸쳐 동시에 존재하는 경우 조정된 다중 버전 패치 릴리스가 생태계 전체의 업그레이드 속도를 높이는 효과적인 전략이다.


Python을 사용하는 팀에서 tarfile을 이용한 아카이브 추출, 유니코드 문자열 디코딩, IPv6 주소 파싱을 하는 경우 Python

3.

1

3.4,

3.

1

2.11,

3.

1

1.13,

3.

1

0.18,

3.

9.23으로 즉시 업그레이드하여 CVE 2024-12718, CVE 2025-4138, CVE 2025-4330, CVE 2025-4517에 대한 익스플로잇 공격으로부터 보호받을 수 있다.

원문 읽기