
Python의 tarfile 모듈에서 경로 탐색 오류 이해하기
최근 한 보안 연구팀이 파이썬의 tar 파일 추출 기능에서 15년 전부터 존재해 온 결함을 발견했다고 발표했습니다. 이 취약점은 2007년에 처음 공개되었으며 CVE-2007-4559로추적됩니다. 파이썬 공식 문서에는 주석이 추가되었지만, 결함 자체는 수정되지 않았습니다.
이 취약점은 수천 개의 소프트웨어 프로젝트에 영향을 미칠 수 있지만, 많은 사람들이 상황을 잘 모르거나 어떻게 처리해야 할지 모릅니다. 바로 그 이유로, 여기 보안 코드 전사에서는여러분이 직접 이 취약점을 악용하는 과정을 시뮬레이션해 볼 수 있는 기회를 제공합니다. 이를 통해 그 영향을 직접 목격하고, 이 지속적인 오류의 메커니즘을 직접 체험함으로써 여러분의 애플리케이션을 더 잘 보호할 수 있도록 하기 위함입니다!
지금 바로 미션을 시뮬레이션해 보세요.
취약점: tar 파일 추출 중 경로 탐색
검증되지 않은 사용자 입력을 사용하여 파일 경로를 구성할 때 경로 또는 디렉터리 트래버스링이 발생하여 공격자가 접근 권한을 획득하고 파일을 덮어쓰거나 심지어 임의의 코드를 실행할 수 있게 됩니다.
이 취약점은 Python의 tarfile 모듈에 존재합니다. tar(테이프 아카이브) 파일은 아카이브라고 불리는 단일 파일입니다. 이 파일은 여러 파일과 해당 메타데이터를 함께 묶어 포장하며, 일반적으로 .tar.gz 또는 .tgz 확장자로 식별됩니다. 아카이브 내의 각 구성원은 파일 이름, 수정 시간, 소유권 등과 같은 메타데이터를 포함하는 TarInfo 객체로 표현될 수 있습니다.
위험은 파일을 다시 추출할 수 있다는 데서 비롯됩니다.
추출 시 각 멤버는 경로를 작성해야 합니다. 이 위치는 기본 경로와 파일명을 연결하여 생성됩니다:

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

문제는 파일명 정리가 부족하다는 점입니다. 공격자는 파일명을 경로 트래버슬 문자(예: 점점 슬래시 (../))를 포함하도록 재명명할 수 있으며, 이로 인해 파일이 원래 위치해야 할 디렉터리를 벗어나 임의의 파일을 덮어쓸 수 있습니다. 이는 결국 원격 코드 실행으로 이어질 수 있으며, 이를 악용할 시기가 이미 성숙해졌습니다.
해당 취약점을 식별하는 방법을 알고 있다면, 이 취약점은 다른 시나리오에서도 나타납니다. Python의 tar 파일 처리 외에도, 이 취약점은 zip 파일 추출시에도 존재합니다. 여러분은 압축 파일 취약점이라는다른 이름으로 이 문제를 알고 있을 수 있으며, 이는 Python 이외의 언어에서도 이미 반영되었습니다!
위험을 어떻게 줄일 수 있나요?
이 취약점이 수년간 알려져 왔음에도 불구하고, Python 유지보수 담당자들은 추출 기능이 의도된 대로작동한다고 여깁니다. 이런 상황에서 누군가는 "이것은 버그가 아닌 기능이다"라고 말할 수도 있습니다. 안타깝게도 개발자들은 알 수 없는 출처에서 tar 또는 zip 파일을 추출하는 것을 항상 피할 수는 없습니다. 안전한 개발 관행의 일환으로, 그들은 경로 탐색 취약점을 방지하기 위해 신뢰할 수 없는 입력을 정리할 책임이 있습니다.
Python을 사용하여 안전한 코드를 작성하고 위험을 줄이는 방법에 대해 더 알고 싶으신가요?
무료 Python 챌린지를경험해 보세요.
무료 프로그래밍 가이드를 더 받아보고 싶다면, 안전한 코딩 관행을 익히는 데 도움을 주는 '안전한 코드 코치'를 확인해 보세요.


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

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


최근 한 보안 연구팀이 파이썬의 tar 파일 추출 기능에서 15년 전부터 존재해 온 결함을 발견했다고 발표했습니다. 이 취약점은 2007년에 처음 공개되었으며 CVE-2007-4559로추적됩니다. 파이썬 공식 문서에는 주석이 추가되었지만, 결함 자체는 수정되지 않았습니다.
이 취약점은 수천 개의 소프트웨어 프로젝트에 영향을 미칠 수 있지만, 많은 사람들이 상황을 잘 모르거나 어떻게 처리해야 할지 모릅니다. 바로 그 이유로, 여기 보안 코드 전사에서는여러분이 직접 이 취약점을 악용하는 과정을 시뮬레이션해 볼 수 있는 기회를 제공합니다. 이를 통해 그 영향을 직접 목격하고, 이 지속적인 오류의 메커니즘을 직접 체험함으로써 여러분의 애플리케이션을 더 잘 보호할 수 있도록 하기 위함입니다!
지금 바로 미션을 시뮬레이션해 보세요.
취약점: tar 파일 추출 중 경로 탐색
검증되지 않은 사용자 입력을 사용하여 파일 경로를 구성할 때 경로 또는 디렉터리 트래버스링이 발생하여 공격자가 접근 권한을 획득하고 파일을 덮어쓰거나 심지어 임의의 코드를 실행할 수 있게 됩니다.
이 취약점은 Python의 tarfile 모듈에 존재합니다. tar(테이프 아카이브) 파일은 아카이브라고 불리는 단일 파일입니다. 이 파일은 여러 파일과 해당 메타데이터를 함께 묶어 포장하며, 일반적으로 .tar.gz 또는 .tgz 확장자로 식별됩니다. 아카이브 내의 각 구성원은 파일 이름, 수정 시간, 소유권 등과 같은 메타데이터를 포함하는 TarInfo 객체로 표현될 수 있습니다.
위험은 파일을 다시 추출할 수 있다는 데서 비롯됩니다.
추출 시 각 멤버는 경로를 작성해야 합니다. 이 위치는 기본 경로와 파일명을 연결하여 생성됩니다:

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

문제는 파일명 정리가 부족하다는 점입니다. 공격자는 파일명을 경로 트래버슬 문자(예: 점점 슬래시 (../))를 포함하도록 재명명할 수 있으며, 이로 인해 파일이 원래 위치해야 할 디렉터리를 벗어나 임의의 파일을 덮어쓸 수 있습니다. 이는 결국 원격 코드 실행으로 이어질 수 있으며, 이를 악용할 시기가 이미 성숙해졌습니다.
해당 취약점을 식별하는 방법을 알고 있다면, 이 취약점은 다른 시나리오에서도 나타납니다. Python의 tar 파일 처리 외에도, 이 취약점은 zip 파일 추출시에도 존재합니다. 여러분은 압축 파일 취약점이라는다른 이름으로 이 문제를 알고 있을 수 있으며, 이는 Python 이외의 언어에서도 이미 반영되었습니다!
위험을 어떻게 줄일 수 있나요?
이 취약점이 수년간 알려져 왔음에도 불구하고, Python 유지보수 담당자들은 추출 기능이 의도된 대로작동한다고 여깁니다. 이런 상황에서 누군가는 "이것은 버그가 아닌 기능이다"라고 말할 수도 있습니다. 안타깝게도 개발자들은 알 수 없는 출처에서 tar 또는 zip 파일을 추출하는 것을 항상 피할 수는 없습니다. 안전한 개발 관행의 일환으로, 그들은 경로 탐색 취약점을 방지하기 위해 신뢰할 수 없는 입력을 정리할 책임이 있습니다.
Python을 사용하여 안전한 코드를 작성하고 위험을 줄이는 방법에 대해 더 알고 싶으신가요?
무료 Python 챌린지를경험해 보세요.
무료 프로그래밍 가이드를 더 받아보고 싶다면, 안전한 코딩 관행을 익히는 데 도움을 주는 '안전한 코드 코치'를 확인해 보세요.

최근 한 보안 연구팀이 파이썬의 tar 파일 추출 기능에서 15년 전부터 존재해 온 결함을 발견했다고 발표했습니다. 이 취약점은 2007년에 처음 공개되었으며 CVE-2007-4559로추적됩니다. 파이썬 공식 문서에는 주석이 추가되었지만, 결함 자체는 수정되지 않았습니다.
이 취약점은 수천 개의 소프트웨어 프로젝트에 영향을 미칠 수 있지만, 많은 사람들이 상황을 잘 모르거나 어떻게 처리해야 할지 모릅니다. 바로 그 이유로, 여기 보안 코드 전사에서는여러분이 직접 이 취약점을 악용하는 과정을 시뮬레이션해 볼 수 있는 기회를 제공합니다. 이를 통해 그 영향을 직접 목격하고, 이 지속적인 오류의 메커니즘을 직접 체험함으로써 여러분의 애플리케이션을 더 잘 보호할 수 있도록 하기 위함입니다!
지금 바로 미션을 시뮬레이션해 보세요.
취약점: tar 파일 추출 중 경로 탐색
검증되지 않은 사용자 입력을 사용하여 파일 경로를 구성할 때 경로 또는 디렉터리 트래버스링이 발생하여 공격자가 접근 권한을 획득하고 파일을 덮어쓰거나 심지어 임의의 코드를 실행할 수 있게 됩니다.
이 취약점은 Python의 tarfile 모듈에 존재합니다. tar(테이프 아카이브) 파일은 아카이브라고 불리는 단일 파일입니다. 이 파일은 여러 파일과 해당 메타데이터를 함께 묶어 포장하며, 일반적으로 .tar.gz 또는 .tgz 확장자로 식별됩니다. 아카이브 내의 각 구성원은 파일 이름, 수정 시간, 소유권 등과 같은 메타데이터를 포함하는 TarInfo 객체로 표현될 수 있습니다.
위험은 파일을 다시 추출할 수 있다는 데서 비롯됩니다.
추출 시 각 멤버는 경로를 작성해야 합니다. 이 위치는 기본 경로와 파일명을 연결하여 생성됩니다:

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

문제는 파일명 정리가 부족하다는 점입니다. 공격자는 파일명을 경로 트래버슬 문자(예: 점점 슬래시 (../))를 포함하도록 재명명할 수 있으며, 이로 인해 파일이 원래 위치해야 할 디렉터리를 벗어나 임의의 파일을 덮어쓸 수 있습니다. 이는 결국 원격 코드 실행으로 이어질 수 있으며, 이를 악용할 시기가 이미 성숙해졌습니다.
해당 취약점을 식별하는 방법을 알고 있다면, 이 취약점은 다른 시나리오에서도 나타납니다. Python의 tar 파일 처리 외에도, 이 취약점은 zip 파일 추출시에도 존재합니다. 여러분은 압축 파일 취약점이라는다른 이름으로 이 문제를 알고 있을 수 있으며, 이는 Python 이외의 언어에서도 이미 반영되었습니다!
위험을 어떻게 줄일 수 있나요?
이 취약점이 수년간 알려져 왔음에도 불구하고, Python 유지보수 담당자들은 추출 기능이 의도된 대로작동한다고 여깁니다. 이런 상황에서 누군가는 "이것은 버그가 아닌 기능이다"라고 말할 수도 있습니다. 안타깝게도 개발자들은 알 수 없는 출처에서 tar 또는 zip 파일을 추출하는 것을 항상 피할 수는 없습니다. 안전한 개발 관행의 일환으로, 그들은 경로 탐색 취약점을 방지하기 위해 신뢰할 수 없는 입력을 정리할 책임이 있습니다.
Python을 사용하여 안전한 코드를 작성하고 위험을 줄이는 방법에 대해 더 알고 싶으신가요?
무료 Python 챌린지를경험해 보세요.
무료 프로그래밍 가이드를 더 받아보고 싶다면, 안전한 코딩 관행을 익히는 데 도움을 주는 '안전한 코드 코치'를 확인해 보세요.

아래 링크를 클릭하고 이 자료의 PDF를 다운로드하세요.
Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.
보고서 보기데모 예약Laura Verheyde는 Secure Code Warrior 의 소프트웨어 개발자로서 취약점을 연구하고 Missions 및 코딩 연구소의 콘텐츠를 제작하는 데 주력하고 있습니다.
최근 한 보안 연구팀이 파이썬의 tar 파일 추출 기능에서 15년 전부터 존재해 온 결함을 발견했다고 발표했습니다. 이 취약점은 2007년에 처음 공개되었으며 CVE-2007-4559로추적됩니다. 파이썬 공식 문서에는 주석이 추가되었지만, 결함 자체는 수정되지 않았습니다.
이 취약점은 수천 개의 소프트웨어 프로젝트에 영향을 미칠 수 있지만, 많은 사람들이 상황을 잘 모르거나 어떻게 처리해야 할지 모릅니다. 바로 그 이유로, 여기 보안 코드 전사에서는여러분이 직접 이 취약점을 악용하는 과정을 시뮬레이션해 볼 수 있는 기회를 제공합니다. 이를 통해 그 영향을 직접 목격하고, 이 지속적인 오류의 메커니즘을 직접 체험함으로써 여러분의 애플리케이션을 더 잘 보호할 수 있도록 하기 위함입니다!
지금 바로 미션을 시뮬레이션해 보세요.
취약점: tar 파일 추출 중 경로 탐색
검증되지 않은 사용자 입력을 사용하여 파일 경로를 구성할 때 경로 또는 디렉터리 트래버스링이 발생하여 공격자가 접근 권한을 획득하고 파일을 덮어쓰거나 심지어 임의의 코드를 실행할 수 있게 됩니다.
이 취약점은 Python의 tarfile 모듈에 존재합니다. tar(테이프 아카이브) 파일은 아카이브라고 불리는 단일 파일입니다. 이 파일은 여러 파일과 해당 메타데이터를 함께 묶어 포장하며, 일반적으로 .tar.gz 또는 .tgz 확장자로 식별됩니다. 아카이브 내의 각 구성원은 파일 이름, 수정 시간, 소유권 등과 같은 메타데이터를 포함하는 TarInfo 객체로 표현될 수 있습니다.
위험은 파일을 다시 추출할 수 있다는 데서 비롯됩니다.
추출 시 각 멤버는 경로를 작성해야 합니다. 이 위치는 기본 경로와 파일명을 연결하여 생성됩니다:

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

문제는 파일명 정리가 부족하다는 점입니다. 공격자는 파일명을 경로 트래버슬 문자(예: 점점 슬래시 (../))를 포함하도록 재명명할 수 있으며, 이로 인해 파일이 원래 위치해야 할 디렉터리를 벗어나 임의의 파일을 덮어쓸 수 있습니다. 이는 결국 원격 코드 실행으로 이어질 수 있으며, 이를 악용할 시기가 이미 성숙해졌습니다.
해당 취약점을 식별하는 방법을 알고 있다면, 이 취약점은 다른 시나리오에서도 나타납니다. Python의 tar 파일 처리 외에도, 이 취약점은 zip 파일 추출시에도 존재합니다. 여러분은 압축 파일 취약점이라는다른 이름으로 이 문제를 알고 있을 수 있으며, 이는 Python 이외의 언어에서도 이미 반영되었습니다!
위험을 어떻게 줄일 수 있나요?
이 취약점이 수년간 알려져 왔음에도 불구하고, Python 유지보수 담당자들은 추출 기능이 의도된 대로작동한다고 여깁니다. 이런 상황에서 누군가는 "이것은 버그가 아닌 기능이다"라고 말할 수도 있습니다. 안타깝게도 개발자들은 알 수 없는 출처에서 tar 또는 zip 파일을 추출하는 것을 항상 피할 수는 없습니다. 안전한 개발 관행의 일환으로, 그들은 경로 탐색 취약점을 방지하기 위해 신뢰할 수 없는 입력을 정리할 책임이 있습니다.
Python을 사용하여 안전한 코드를 작성하고 위험을 줄이는 방법에 대해 더 알고 싶으신가요?
무료 Python 챌린지를경험해 보세요.
무료 프로그래밍 가이드를 더 받아보고 싶다면, 안전한 코딩 관행을 익히는 데 도움을 주는 '안전한 코드 코치'를 확인해 보세요.




%20(1).avif)
.avif)
