파이썬 패키지 인덱스(PyPI)가 중요한 보안 정책 변경을 발표했습니다. 앞으로는 패키지 릴리스(release)가 게시된 지 14일이 지나면 해당 릴리스에 새로운 파일을 추가할 수 없게 됩니다. 이 조치는 개발자 토큰이나 배포 워크플로우가 공격자에게 탈취될 경우, 이미 안정적으로 배포된 기존 릴리스에 악성 파일이 섞여 들어가는 공급망 공격(supply chain attack)을 방지하기 위함입니다.
이번 변경은 LiteLLM과 Telnyx 프로젝트에서 발생했던 공급망 침해 사건을 계기로 논의가 시작되었습니다. 당시 공격자들은 변경 가능한 참조(mutable reference)를 악용해 기존 패키지에 악성 코드를 삽입하려 했습니다. PyPI는 상위 15,000개 패키지를 조사한 결과, 릴리스 14일 이후에 새 Python 버전(예: Python 3.14) 지원 파일을 추가한 프로젝트가 56개에 불과하다는 점을 확인했습니다. 이는 대부분의 프로젝트가 새 Python 버전 지원 시 다음 릴리스 버전을 배포하는 것이 일반적이라는 것을 시사하며, PyCon US 2026 패키징 서밋에서도 이러한 방식이 합리적이라는 합의가 이루어졌습니다.
이번 정책은 기존 릴리스의 무결성을 보장하고, 침해된 파일과 정상 파일이 뒤섞이는 불명확한 상태를 사전에 방지하는 데 큰 의미가 있습니다. 개발자들은 이제 새 Python 버전 지원과 같은 업데이트가 필요할 경우, 기존 릴리스를 수정하는 대신 새로운 패키지 버전을 배포해야 합니다. 이는 개발자들에게 약간의 워크플로우 변화를 요구하지만, 전체 파이썬 생태계의 보안 수준을 한 단계 높이는 중요한 발걸음으로 평가됩니다. 향후 PEP 694의 Upload 2.0 API와 Staged Previews를 통해 릴리스의 개방/폐쇄 상태를 정의하고 확인할 수 있는 표준화된 방법이 마련될 예정입니다.