SCW 아이콘
영웅 배경, 구분선 없음
블로그

Python의 tarfile 모듈에서 경로 탐색 오류 이해하기

로라 베르헤이드
게시됨 Oct 03, 2022
마지막 업데이트: 2026년 3월 9일

최근 한 보안 연구팀이 파이썬의 tar 파일 추출 기능에서 15년 전부터 존재해 온 결함을 발견했다고 발표했습니다. 이 취약점은 2007년에 처음 공개되었으며 CVE-2007-4559로추적됩니다. 파이썬 공식 문서에는 주석이 추가되었지만, 결함 자체는 수정되지 않았습니다.

이 취약점은 수천 개의 소프트웨어 프로젝트에 영향을 미칠 수 있지만, 많은 사람들이 상황을 잘 모르거나 어떻게 처리해야 할지 모릅니다. 바로 그 이유로, 여기 보안 코드 전사에서는여러분이 직접 이 취약점을 악용하는 과정을 시뮬레이션해 볼 수 있는 기회를 제공합니다. 이를 통해 그 영향을 직접 목격하고, 이 지속적인 오류의 메커니즘을 직접 체험함으로써 여러분의 애플리케이션을 더 잘 보호할 수 있도록 하기 위함입니다!

지금 바로 미션을 시뮬레이션해 보세요.

취약점: tar 파일 추출 중 경로 탐색

검증되지 않은 사용자 입력을 사용하여 파일 경로를 구성할 때 경로 또는 디렉터리 트래버스링이 발생하여 공격자가 접근 권한을 획득하고 파일을 덮어쓰거나 심지어 임의의 코드를 실행할 수 있게 됩니다.

이 취약점은 Python의 tarfile 모듈에 존재합니다. tar(테이프 아카이브) 파일은 아카이브라고 불리는 단일 파일입니다. 이 파일은 여러 파일과 해당 메타데이터를 함께 묶어 포장하며, 일반적으로 .tar.gz 또는 .tgz 확장자로 식별됩니다. 아카이브 내의 각 구성원은 파일 이름, 수정 시간, 소유권 등과 같은 메타데이터를 포함하는 TarInfo 객체로 표현될 수 있습니다.

위험은 파일을 다시 추출할 수 있다는 데서 비롯됩니다.

추출 시 각 멤버는 경로를 작성해야 합니다. 이 위치는 기본 경로와 파일명을 연결하여 생성됩니다:

Python에서 가져온 코드 조각 Tarfile.py


이 경로를 생성한 후, 그것은 tarfile.extra 또는 tarfile.extall 추출을 수행하는 함수로 전달됩니다:

Python에서 가져온 코드 조각 Tarfile.py

문제는 파일명 정리가 부족하다는 점입니다. 공격자는 파일명을 경로 트래버슬 문자(예: 점점 슬래시 (../))를 포함하도록 재명명할 수 있으며, 이로 인해 파일이 원래 위치해야 할 디렉터리를 벗어나 임의의 파일을 덮어쓸 수 있습니다. 이는 결국 원격 코드 실행으로 이어질 수 있으며, 이를 악용할 시기가 이미 성숙해졌습니다.

해당 취약점을 식별하는 방법을 알고 있다면, 이 취약점은 다른 시나리오에서도 나타납니다. Python의 tar 파일 처리 외에도, 이 취약점은 zip 파일 추출시에도 존재합니다. 여러분은 압축 파일 취약점이라는다른 이름으로 이 문제를 알고 있을 수 있으며, 이는 Python 이외의 언어에서도 이미 반영되었습니다!

작업으로 연결 

위험을 어떻게 줄일 수 있나요?

이 취약점이 수년간 알려져 왔음에도 불구하고, Python 유지보수 담당자들은 추출 기능이 의도된 대로작동한다고 여깁니다. 이런 상황에서 누군가는 "이것은 버그가 아닌 기능이다"라고 말할 수도 있습니다. 안타깝게도 개발자들은 알 수 없는 출처에서 tar 또는 zip 파일을 추출하는 것을 항상 피할 수는 없습니다. 안전한 개발 관행의 일환으로, 그들은 경로 탐색 취약점을 방지하기 위해 신뢰할 수 없는 입력을 정리할 책임이 있습니다.

Python을 사용하여 안전한 코드를 작성하고 위험을 줄이는 방법에 대해 더 알고 싶으신가요?

무료 Python 챌린지를경험해 보세요.

무료 프로그래밍 가이드를 더 받아보고 싶다면, 안전한 코딩 관행을 익히는 데 도움을 주는 '안전한 코드 코치'를 확인해 보세요.

리소스 보기
리소스 보기

최근 한 보안 연구팀이 파이썬의 tar 파일 추출 기능에서 15년 전부터 존재해 온 결함을 발견했다고 발표했다. 이 취약점은 2007년 처음 공개되었으며, 추적 결과 CVE-2007-4559로 등록되었다. 파이썬 공식 문서에는 주석이 추가되었으나, 결함 자체는 수정되지 않았다.

더 많은 것에 관심이 있으신가요?

더 알아보세요

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약
공유하기:
링크드인 브랜드사회적x 로고
저자
로라 베르헤이드
게시일: Oct 03, 2022

Laura Verheyde는 Secure Code Warrior 의 소프트웨어 개발자로서 취약점을 연구하고 Missions 및 코딩 연구소의 콘텐츠를 제작하는 데 주력하고 있습니다.

공유하기:
링크드인 브랜드사회적x 로고

최근 한 보안 연구팀이 파이썬의 tar 파일 추출 기능에서 15년 전부터 존재해 온 결함을 발견했다고 발표했습니다. 이 취약점은 2007년에 처음 공개되었으며 CVE-2007-4559로추적됩니다. 파이썬 공식 문서에는 주석이 추가되었지만, 결함 자체는 수정되지 않았습니다.

이 취약점은 수천 개의 소프트웨어 프로젝트에 영향을 미칠 수 있지만, 많은 사람들이 상황을 잘 모르거나 어떻게 처리해야 할지 모릅니다. 바로 그 이유로, 여기 보안 코드 전사에서는여러분이 직접 이 취약점을 악용하는 과정을 시뮬레이션해 볼 수 있는 기회를 제공합니다. 이를 통해 그 영향을 직접 목격하고, 이 지속적인 오류의 메커니즘을 직접 체험함으로써 여러분의 애플리케이션을 더 잘 보호할 수 있도록 하기 위함입니다!

지금 바로 미션을 시뮬레이션해 보세요.

취약점: tar 파일 추출 중 경로 탐색

검증되지 않은 사용자 입력을 사용하여 파일 경로를 구성할 때 경로 또는 디렉터리 트래버스링이 발생하여 공격자가 접근 권한을 획득하고 파일을 덮어쓰거나 심지어 임의의 코드를 실행할 수 있게 됩니다.

이 취약점은 Python의 tarfile 모듈에 존재합니다. tar(테이프 아카이브) 파일은 아카이브라고 불리는 단일 파일입니다. 이 파일은 여러 파일과 해당 메타데이터를 함께 묶어 포장하며, 일반적으로 .tar.gz 또는 .tgz 확장자로 식별됩니다. 아카이브 내의 각 구성원은 파일 이름, 수정 시간, 소유권 등과 같은 메타데이터를 포함하는 TarInfo 객체로 표현될 수 있습니다.

위험은 파일을 다시 추출할 수 있다는 데서 비롯됩니다.

추출 시 각 멤버는 경로를 작성해야 합니다. 이 위치는 기본 경로와 파일명을 연결하여 생성됩니다:

Python에서 가져온 코드 조각 Tarfile.py


이 경로를 생성한 후, 그것은 tarfile.extra 또는 tarfile.extall 추출을 수행하는 함수로 전달됩니다:

Python에서 가져온 코드 조각 Tarfile.py

문제는 파일명 정리가 부족하다는 점입니다. 공격자는 파일명을 경로 트래버슬 문자(예: 점점 슬래시 (../))를 포함하도록 재명명할 수 있으며, 이로 인해 파일이 원래 위치해야 할 디렉터리를 벗어나 임의의 파일을 덮어쓸 수 있습니다. 이는 결국 원격 코드 실행으로 이어질 수 있으며, 이를 악용할 시기가 이미 성숙해졌습니다.

해당 취약점을 식별하는 방법을 알고 있다면, 이 취약점은 다른 시나리오에서도 나타납니다. Python의 tar 파일 처리 외에도, 이 취약점은 zip 파일 추출시에도 존재합니다. 여러분은 압축 파일 취약점이라는다른 이름으로 이 문제를 알고 있을 수 있으며, 이는 Python 이외의 언어에서도 이미 반영되었습니다!

작업으로 연결 

위험을 어떻게 줄일 수 있나요?

이 취약점이 수년간 알려져 왔음에도 불구하고, Python 유지보수 담당자들은 추출 기능이 의도된 대로작동한다고 여깁니다. 이런 상황에서 누군가는 "이것은 버그가 아닌 기능이다"라고 말할 수도 있습니다. 안타깝게도 개발자들은 알 수 없는 출처에서 tar 또는 zip 파일을 추출하는 것을 항상 피할 수는 없습니다. 안전한 개발 관행의 일환으로, 그들은 경로 탐색 취약점을 방지하기 위해 신뢰할 수 없는 입력을 정리할 책임이 있습니다.

Python을 사용하여 안전한 코드를 작성하고 위험을 줄이는 방법에 대해 더 알고 싶으신가요?

무료 Python 챌린지를경험해 보세요.

무료 프로그래밍 가이드를 더 받아보고 싶다면, 안전한 코딩 관행을 익히는 데 도움을 주는 '안전한 코드 코치'를 확인해 보세요.

리소스 보기
리소스 보기

아래 양식을 작성하여 보고서를 다운로드하세요

귀하의 허락을 받아 저희 제품 및/또는 관련 보안 코딩 주제에 관한 정보를 보내드리고자 합니다. 귀하의 개인정보는 항상 매우 신중하게 취급되며, 마케팅 목적으로 타사에 판매하지 않을 것을 약속드립니다.

제출
scw 성공 아이콘
scw 오류 아이콘
양식을 제출하려면 "분석" 쿠키를 활성화하십시오. 완료 후에는 원할 때 다시 비활성화할 수 있습니다.

최근 한 보안 연구팀이 파이썬의 tar 파일 추출 기능에서 15년 전부터 존재해 온 결함을 발견했다고 발표했습니다. 이 취약점은 2007년에 처음 공개되었으며 CVE-2007-4559로추적됩니다. 파이썬 공식 문서에는 주석이 추가되었지만, 결함 자체는 수정되지 않았습니다.

이 취약점은 수천 개의 소프트웨어 프로젝트에 영향을 미칠 수 있지만, 많은 사람들이 상황을 잘 모르거나 어떻게 처리해야 할지 모릅니다. 바로 그 이유로, 여기 보안 코드 전사에서는여러분이 직접 이 취약점을 악용하는 과정을 시뮬레이션해 볼 수 있는 기회를 제공합니다. 이를 통해 그 영향을 직접 목격하고, 이 지속적인 오류의 메커니즘을 직접 체험함으로써 여러분의 애플리케이션을 더 잘 보호할 수 있도록 하기 위함입니다!

지금 바로 미션을 시뮬레이션해 보세요.

취약점: tar 파일 추출 중 경로 탐색

검증되지 않은 사용자 입력을 사용하여 파일 경로를 구성할 때 경로 또는 디렉터리 트래버스링이 발생하여 공격자가 접근 권한을 획득하고 파일을 덮어쓰거나 심지어 임의의 코드를 실행할 수 있게 됩니다.

이 취약점은 Python의 tarfile 모듈에 존재합니다. tar(테이프 아카이브) 파일은 아카이브라고 불리는 단일 파일입니다. 이 파일은 여러 파일과 해당 메타데이터를 함께 묶어 포장하며, 일반적으로 .tar.gz 또는 .tgz 확장자로 식별됩니다. 아카이브 내의 각 구성원은 파일 이름, 수정 시간, 소유권 등과 같은 메타데이터를 포함하는 TarInfo 객체로 표현될 수 있습니다.

위험은 파일을 다시 추출할 수 있다는 데서 비롯됩니다.

추출 시 각 멤버는 경로를 작성해야 합니다. 이 위치는 기본 경로와 파일명을 연결하여 생성됩니다:

Python에서 가져온 코드 조각 Tarfile.py


이 경로를 생성한 후, 그것은 tarfile.extra 또는 tarfile.extall 추출을 수행하는 함수로 전달됩니다:

Python에서 가져온 코드 조각 Tarfile.py

문제는 파일명 정리가 부족하다는 점입니다. 공격자는 파일명을 경로 트래버슬 문자(예: 점점 슬래시 (../))를 포함하도록 재명명할 수 있으며, 이로 인해 파일이 원래 위치해야 할 디렉터리를 벗어나 임의의 파일을 덮어쓸 수 있습니다. 이는 결국 원격 코드 실행으로 이어질 수 있으며, 이를 악용할 시기가 이미 성숙해졌습니다.

해당 취약점을 식별하는 방법을 알고 있다면, 이 취약점은 다른 시나리오에서도 나타납니다. Python의 tar 파일 처리 외에도, 이 취약점은 zip 파일 추출시에도 존재합니다. 여러분은 압축 파일 취약점이라는다른 이름으로 이 문제를 알고 있을 수 있으며, 이는 Python 이외의 언어에서도 이미 반영되었습니다!

작업으로 연결 

위험을 어떻게 줄일 수 있나요?

이 취약점이 수년간 알려져 왔음에도 불구하고, Python 유지보수 담당자들은 추출 기능이 의도된 대로작동한다고 여깁니다. 이런 상황에서 누군가는 "이것은 버그가 아닌 기능이다"라고 말할 수도 있습니다. 안타깝게도 개발자들은 알 수 없는 출처에서 tar 또는 zip 파일을 추출하는 것을 항상 피할 수는 없습니다. 안전한 개발 관행의 일환으로, 그들은 경로 탐색 취약점을 방지하기 위해 신뢰할 수 없는 입력을 정리할 책임이 있습니다.

Python을 사용하여 안전한 코드를 작성하고 위험을 줄이는 방법에 대해 더 알고 싶으신가요?

무료 Python 챌린지를경험해 보세요.

무료 프로그래밍 가이드를 더 받아보고 싶다면, 안전한 코딩 관행을 익히는 데 도움을 주는 '안전한 코드 코치'를 확인해 보세요.

웹 세미나 시청
시작하자
더 알아보세요

아래 링크를 클릭하고 이 자료의 PDF를 다운로드하세요.

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

보고서 보기데모 예약
리소스 보기
공유하기:
링크드인 브랜드사회적x 로고
더 많은 것에 관심이 있으신가요?

공유하기:
링크드인 브랜드사회적x 로고
저자
로라 베르헤이드
게시일: Oct 03, 2022

Laura Verheyde는 Secure Code Warrior 의 소프트웨어 개발자로서 취약점을 연구하고 Missions 및 코딩 연구소의 콘텐츠를 제작하는 데 주력하고 있습니다.

공유하기:
링크드인 브랜드사회적x 로고

최근 한 보안 연구팀이 파이썬의 tar 파일 추출 기능에서 15년 전부터 존재해 온 결함을 발견했다고 발표했습니다. 이 취약점은 2007년에 처음 공개되었으며 CVE-2007-4559로추적됩니다. 파이썬 공식 문서에는 주석이 추가되었지만, 결함 자체는 수정되지 않았습니다.

이 취약점은 수천 개의 소프트웨어 프로젝트에 영향을 미칠 수 있지만, 많은 사람들이 상황을 잘 모르거나 어떻게 처리해야 할지 모릅니다. 바로 그 이유로, 여기 보안 코드 전사에서는여러분이 직접 이 취약점을 악용하는 과정을 시뮬레이션해 볼 수 있는 기회를 제공합니다. 이를 통해 그 영향을 직접 목격하고, 이 지속적인 오류의 메커니즘을 직접 체험함으로써 여러분의 애플리케이션을 더 잘 보호할 수 있도록 하기 위함입니다!

지금 바로 미션을 시뮬레이션해 보세요.

취약점: tar 파일 추출 중 경로 탐색

검증되지 않은 사용자 입력을 사용하여 파일 경로를 구성할 때 경로 또는 디렉터리 트래버스링이 발생하여 공격자가 접근 권한을 획득하고 파일을 덮어쓰거나 심지어 임의의 코드를 실행할 수 있게 됩니다.

이 취약점은 Python의 tarfile 모듈에 존재합니다. tar(테이프 아카이브) 파일은 아카이브라고 불리는 단일 파일입니다. 이 파일은 여러 파일과 해당 메타데이터를 함께 묶어 포장하며, 일반적으로 .tar.gz 또는 .tgz 확장자로 식별됩니다. 아카이브 내의 각 구성원은 파일 이름, 수정 시간, 소유권 등과 같은 메타데이터를 포함하는 TarInfo 객체로 표현될 수 있습니다.

위험은 파일을 다시 추출할 수 있다는 데서 비롯됩니다.

추출 시 각 멤버는 경로를 작성해야 합니다. 이 위치는 기본 경로와 파일명을 연결하여 생성됩니다:

Python에서 가져온 코드 조각 Tarfile.py


이 경로를 생성한 후, 그것은 tarfile.extra 또는 tarfile.extall 추출을 수행하는 함수로 전달됩니다:

Python에서 가져온 코드 조각 Tarfile.py

문제는 파일명 정리가 부족하다는 점입니다. 공격자는 파일명을 경로 트래버슬 문자(예: 점점 슬래시 (../))를 포함하도록 재명명할 수 있으며, 이로 인해 파일이 원래 위치해야 할 디렉터리를 벗어나 임의의 파일을 덮어쓸 수 있습니다. 이는 결국 원격 코드 실행으로 이어질 수 있으며, 이를 악용할 시기가 이미 성숙해졌습니다.

해당 취약점을 식별하는 방법을 알고 있다면, 이 취약점은 다른 시나리오에서도 나타납니다. Python의 tar 파일 처리 외에도, 이 취약점은 zip 파일 추출시에도 존재합니다. 여러분은 압축 파일 취약점이라는다른 이름으로 이 문제를 알고 있을 수 있으며, 이는 Python 이외의 언어에서도 이미 반영되었습니다!

작업으로 연결 

위험을 어떻게 줄일 수 있나요?

이 취약점이 수년간 알려져 왔음에도 불구하고, Python 유지보수 담당자들은 추출 기능이 의도된 대로작동한다고 여깁니다. 이런 상황에서 누군가는 "이것은 버그가 아닌 기능이다"라고 말할 수도 있습니다. 안타깝게도 개발자들은 알 수 없는 출처에서 tar 또는 zip 파일을 추출하는 것을 항상 피할 수는 없습니다. 안전한 개발 관행의 일환으로, 그들은 경로 탐색 취약점을 방지하기 위해 신뢰할 수 없는 입력을 정리할 책임이 있습니다.

Python을 사용하여 안전한 코드를 작성하고 위험을 줄이는 방법에 대해 더 알고 싶으신가요?

무료 Python 챌린지를경험해 보세요.

무료 프로그래밍 가이드를 더 받아보고 싶다면, 안전한 코딩 관행을 익히는 데 도움을 주는 '안전한 코드 코치'를 확인해 보세요.

목록

PDF 다운로드
리소스 보기
더 많은 것에 관심이 있으신가요?

더 알아보세요

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.

데모 예약다운로드
공유하기:
링크드인 브랜드사회적x 로고
자원 센터

시작하는 데 도움이 되는 자료

더 많은 게시물
자원 센터

시작하는 데 도움이 되는 자료

더 많은 게시물