프로그래밍 언어 파이썬에서 2007년 존재가 공개됐지만 수정되지 않은 버그가 재발견됐다. 임의 코드 실행 가능한 취약점으로 이어지는 이 버그 영향은 코딩 자동화 도구를 통해 다양한 프로제트에 널리 퍼져 있으며 수정해야 할 오픈소스 리포지토리가 35만 건 이상에 달한다고 지적됐다.
문제가 되는 버그는 CVE -2007-4559로 태그가 지정됐으며 파이썬 모듈(tarfile)에 존재하는 취약점으로 간주된다. 이 모듈은 여러 다른 파일과 메타 데이터를 저장하는 tar 형태 아카이브를 읽고 쓰는 모듈이다. tar 형식 아카이브에 포함된 메타 데이터에는 파일명, 파일 크기, 체크섬, 파일 소유자 정보 등 다양한 정보가 포함되며 Tarinfo 클래스로 표시된다.
그리고 tarfile.extract() 함수와 tarfile.extractall() 함수로 Tarinfo 객체 내 정보를 명시적으로 신뢰해 함수에게 건네지는 패스와 Tarinfo 객체 내 파일명을 결합한다는 사양이 되어 있다는 게 공격자에게 디렉터리 트래버설을 허용하는 취약성이 되어 있다는 것. 다시 말해 악의가 있는 사람이 파일 시스템에 액세스할 수 있게 되어 임의 코드 실행이 가능하게 된다는 것이다.
하지만 이 취약점에 대해선 지금까지 수정되지 않았고 이 위험에 대해선 공식 문서로 경고만 됐다. 2022년 보안 기업인 맥아피와 파이어아이 통합 기업인 트렐릭스(Trellix) 어드밴스드리서치센터는 관련이 없는 취약성에 대한 조사에서 이 CVE-2007-4559를 재발견했다고 한다. 트릴릭스는 실제로 유튜브에서 CVE-2007-4559를 윈도 환경에서 악용하는 데모를 공개하기도 했다.
트릴릭스 측은 CVE-2007-4559 영향을 받을 가능성이 높은 257개 리포지토리를 스크래핑하고 이 가운데 175건을 수동 확인한 결과 61%가 tarfile.extract() 혹은 tarfile.extractall()에 의한 취약한 코드를 포함하고 있는 것으로 판명됐다. 또 나머지 리포지토리를 모두 확인한 결과 전체 중 65%가 취약한 코드를 포함하는 것으로 나타났다.
트릴릭스에 따르면 35만 개가 넘는 리포지토리가 이 취약점에 위협을 받고 있는 것으로 보이며 대부분 깃허브 코파일럿 같은 자동화 도구가 사용되고 있다고 한다. 자동화 도구는 모든 걸 자동으로 수행해 다양한 리포지토리 코드에서 학습한다. 학습자인 리포지토리에 취약한 코드가 포함되어 있으면 개발자가 모르는 동안 프로젝트 보안 위험이 높아질 수 있다.
이미 트릴릭스는 1만 1,000건 이상 프로젝트에서 수정 패치를 만들어 폴 리퀘스트 작성 준비를 정돈하고 있다고 한다. 앞으로 몇 주간 7만 개 이상 프로젝트가 수정될 것으로 예상하고 있지만 병합 요청이 유지 보수에 수락되지 않으면 수정되지 않으므로 모든 프로젝트를 완전히 수정하기가 어렵다. 관련 내용은 이곳에서 확인할 수 있다.