파이썬에서 프로토타입 오염 변종이 발견됐다. 프로토타입 오염은 프로토타입 기반 언어와 관련된 위험한 버그로, 자바스크립트에서 기승을 부리는 것으로 알려졌다.
그러나 해외 테크 매체 포스트스위거는 사이버 보안 연구원 압둘라힘 칼레드(Abdulraheem Khaled)가 파이썬에도 프로토타입 오염이 적용된 사실을 발견했다고 보도했다. 칼레드는 다른 클래스 기반 프로그래밍 언어도 프로토타입 오염의 영향을 받았을 가능성도 경고하며, 해당 공격 유형을 ‘클래스 오염(class pollution)’이라고 칭했다.
클래스 오염은 자바스크립트 프로토타입 오염의 개념을 파이썬으로 변환하려고 시도하는 동안 발생했다.
파이썬 개체를 오염시키기 위해 공격자는 사용자 입력을 사용해 개체의 특성을 설정한다. 사용자 입력이 속성 이름과 값을 모두 결정하는 경우 공격자는 이를 악용해 프로그램 동작을 조작할 수 있다.
대상 함수가 재귀 루프를 사용해 개체의 특성을 순회하는 경우 공격자는 잠재적으로 상위 클래스, 전역 변수 등에 대한 액세스 권한을 얻을 수 있다.
예를 들어, 공격자는 이러한 기능을 사용해 시스템에서 실행되는 명령 문자열을 수정하고, 중요한 변수의 값을 변경한다. 이를 통해 중요한 클래스를 기능 장애로 만들어 서비스 거부 공격(DoS)을 일으킬 수 있다.
매체는 모든 종류의 파이썬 응용 프로그램이 정제되지 않은 사용자 입력을 받고 안전하지 않은 개체 속성 할당 형식을 구현하는 한 이러한 유형의 공격에 취약할 수 있다고 설명했다.
클래스 오염의 최소 영향은 DoS이다. 하지만 공격은 잠재적으로 다음과 같은 파이썬 웹 애플리케이션에 더 깊은 영향을 미칠 수 있다.
Flask 웹 애플리케이션에서 세션에 서명하는 데 사용되는 비밀 키를 덮어쓰고 유효한 세션을 수동으로 만들어 계정 탈취 공격을 준비할 때는 더 취약해진다.
필터 우회를 할 때도 클래스 오염에 취약할 수 있다. 예를 들어 템플릿 파일을 로드하려고 할 때 Jinja에 구현된 경로 통과 방지를 우회한다. 이는 공격자가 템플릿 디렉토리에 제한받지 않고 모든 로컬 디렉토리에서 파일을 로드할 수 있도록 함으로써 로컬 파일 공개로 이어진다. COMSPEC 또는 PATH 환경 변수를 덮어써서 원격 명령을 실행하는 경우에도 취약할 수 있다.
매체는 “클래스 오염은 확실히 커뮤니티에서 더 많은 관심을 기울여야 하는 주제 중 하나로 주목받기 시작했다”며, “클래스 오염은 이제 막 밝혀진 새로운 취약점일 수 있지만, 곧 다른 프로그래밍 언어에서도 발생할 것으로 보인다”라고 전했다.
[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]






















![[김대선 칼럼] 종교의 자유와 생명평화 문화의 확산](/news/data/2025/10/20/p1065590165479262_556_h.png)
![[구혜영 칼럼] 시스템 말고 사람을 교체하라](/news/data/2025/10/16/p1065594348054313_792_h.png)
![[기고] 필드하키, 남북 평화를 여는 새로운 그라운드](/news/data/2025/09/08/p1065577652443752_295_h.png)
![[윤창원 칼럼] 뜨는 도시, 지는 국가 – 지방정부 국제교류의 자율과 책임](/news/data/2025/08/27/p1065597151274916_658_h.png)
![[기고] 박찬대 ‘유감’](/news/data/2025/07/29/p1065571800897621_913_h.png)
![[기고] 내란종식 완수와 개혁·통합을 이끌 여당 대표의 리더십](/news/data/2025/07/28/p1065575493623584_535_h.png)



