Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-5452 — CVE-2024-5452에 대한 상세한 기술 분석: DeepDiff 델타 속성 오염을 통해 PyTorch Lightning에서 발생하는 원격 코드 실행 취약점, 개념 증명 및 완화 가이드 포함. | Kitploit
도구/GitHubGitHub/skrkcb2/cve-2024-5452
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationLearning & EducationAI Security
GitHubskrkcb2/cve-2024-5452

CVE-2024-5452

CVE-2024-5452에 대한 상세한 기술 분석: DeepDiff 델타 속성 오염을 통해 PyTorch Lightning에서 발생하는 원격 코드 실행 취약점, 개념 증명 및 완화 가이드 포함.

저장소 보기
1년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2024-5452

01. RCE 와 pytorch-lightning 개요

  • 1) RCE 와 pytorch-lightning 개요

    RCE(Remote Code Execution, 원격 코드 실행)는 공격자가 원격에서 시스템이나 애플리케이션 내에서 임의의 코드를 실행할 수 있도록 하는 취약점 이며 CWE-94: Improper Control of Generation of Code ('Code Injection') 입니다.

    PyTorch Lightning은 PyTorch 기반의 딥러닝 모델 훈련을 쉽게 관리할 수 있도록 도와주는 라이브러리 이며 DeepDiff는 두 개의 Python 객체를 비교하여 차이를 분석하는 라이브러리 입니다.

    CVE-2024-5452는 Lightning의 AI 모델 가중치 관련 웹 애플리케이션 기능에서 DeepDiff와 Lightning을 활용하는 과정에서 DeepDiff의 취약한 헤더 검증 과 델타 속성 오염을 통하여 역직렬화 시 RCE를 일으키는 취약점 입니다.

    이로 통해 공격자가 임의의 객체를 주입하거나 원격 코드 실행(RCE)을 수행할 수 있는 취약점이 발생하는 코드 흐름을 살펴보고, 이에 대한 대응 방안을 모색 해보겠습니다.

02. pytorch-lightning 환경의 역직렬화 취약점 분석

  • 2.1 DeepDiff에 Delta 오염을 이용한 공격 분석

    pytorch-lightning 에서 웹 애플리케이션 소스의 DeepDiff 엔드 포인트 중 /api/v1/delta 에 delta의 속성을 오염시켜 보내어 공격 할 수 있습니다.
    예제를 살펴 보며 delta의 dunder속성 오염 시켜 어떻게 객체 역직렬화 취약점이 유발 되는지 알아보고자 합니다.

    1) DeepDiff에 Delta 오염을 이용한 공격 흐름

    첫 요청은 Client 공격예제, 오염 설정 -> Deepdiff의 /api/v1/delta에서 취약한 헤더 검증 -> 오염 설증을 통한 상태 저장 입니다.

    이미지 설명

    [그림 1] POC - Endpoint 공격

    이미지 설명

    [그림 2] POC - Vuln Injection / 전체 오염 설정 내용

    이미지 설명

    [그림 3] lightning/api/core/api.py / 취약한 헤더 검사 로직 파트

    이미지 설명

    [그림 4] lightning/api/core/app.py / 설정 구간

    이미지 설명

    [그림 5] lightning/api/core/app.py / 설정 저장 구간

    첫번쨰 요청은 [그림 3]의 /api/v1/delta의 header 검증을 [그림 1]를 통해 우회 후 조작한 오염 설정(delta) [그림 2]를 주입 시키고 [그림 4],[그림 5] 를 통하여 설정을 저장 시킵니다. 그럼 이제 두번째 요청에서 이 조작 한 델타의 설정들이 어떻게 작용 하는지 살펴 보겠습니다.

    이미지 설명 이미지 설명

    [그림 6] lightning/api/core/app.py / 초기 경로 흐름

    [그림 6]은 델타가 설정 된 후 두번 째 요청 흐름이며 run_once() -> maybe_apply_change() -> _collect_deltas_from_ui_and_work_queues()

    이미지 설명

    [그림 7] isinstance 오염 케이스

    [그림 7] _collect_deltas_from_ui_and_work_queues()에서의 isinstance 검사를 오염된 설정으로 통과(isinstance(delta, _DeltaRequest) == False)시켜 else로 동작한다.

    이미지 설명

    [그림 8] isinstance 오염 케이스 1

    [그림 8] 이해를 돕기 위해 isinstance(delta, _DeltaRequest), delta, _DeltaRequest(타입)의 결과를 출력 첫번째 요청은 설정을 위한 요청으로 변조를 세팅중 이여 정상이고 다음 요청은 _DeltaRequest타입이 str로 오염되어 조건을 우회 하고 있다. 흐름 상 다음 타겟인 _process_requests의 예시를 보겠습니다.

    이미지 설명

    [그림 9] isinstance 오염 케이스 2

    [그림 9] 를 보다시피 위와 동일한 내용으로 _process_requests는 오른쪽 클라이언트 POC코드의 세팅 으로 isinstance(request, _APIRequest)의 검사를 오염된 설정으로 통과 하였습니다, 해당 오염은 str을 OrderSet 인스턴스에 대해 isinstance 호출이 참을 반환 하는 케이스 입니다. 현재 까지 2가지 형태의 isinstance 오염을 봤는데 이후의 상황 은 오염을 통해 속성들을 호출 할수 있게 설정을 제작 합니다.

    이미지 설명

    이미지 설명

    이미지 설명

    [그림 10] isinstance 오염 케이스 3

    [그림 10] 의 isinstance 우회, 함수 설정이 끝나고 [그림 10]의 "내부 상태 고정"(_INTERNAL_STATE_VARS: ()을 비워 둠)을 설정하여 [그림 11]에서 내부 설정 상태를 검수 할수 없게 만듭니다.

    이미지 설명

    [그림 11_1] /lightning/app/core/flow.py 의 _INTERNAL_STATE_VARS 체크 함수

    이미지 설명

    [그림 11_2] /lightning/app/core/flow.py 의 __setattr__

    [그림 11]을 마지막 으로 전체적인 오염 및 설정은 끝났습니다.

    이미지 설명

    [그림 12] RCE Commnad

    이미지 설명

    이미지 설명

    [그림 13] RCE Response

    최종적으로 [그림 13] 에서 root 권한의 exec를 call해서 [그림 12]의 커맨드를 실행하여 마무리 합니다

2) DeepDiff에 Delta 오염을 이용한 공격 간략 예시(왼쪽: lightning App server, 오른쪽: Client)

이미지 설명

03. 대응 방안

지금까지 lightning환경에서 객체 역직렬화(CVE-2024-5452)를 통한 RCE 취약점이 수행되는 흐름을 확인 해봤습니다. 서버 자체가 탈취 당하는 공격 방식이기에 대응 방안이 중요합니다. 이를 위해 최신 버전 업데이트 제시 하고자 합니다.

  • lightning 업데이트

    lightning <= 2.2.1 일 경우 lightning > 2.3.3 이상의 버전으로 업데이트 해주시기 바랍니다.
  • lightning 라이브러리 간략 수정

    해당 방안은 피치 못할 케이스에 간략하게 막는 방법임으로 참고만 하시길 바랍니다. /api/v1/delta 엔드포인트에 간략한 로직 추가(경로 /lightning/app/core/api) 혹은 상단의 세션 검사 파트 강화 depence
  • IPS 를 통한 탐지 및 차단

    공격은 post man을 통해 json에 dunder속성을 명시하여 테스트 image 20250210_143207

04. 결론

지금까지 Lightning과 Deepdiff 를 통한 Dunder 속성을 오염시켜 RCE를 발생 시키는 취약점을 알아 봤습니다. 해당 취약점은 첫번째로 취약한 헤더 검증, 다음으로는 취약한 delta의 속성 검사 를 통한 객체 역직렬화 에서 일어나는 취약점 이였습니다.

05. 참고자료

(poc) https://security.snyk.io/vuln/SNYK-PYTHON-PYTORCHLIGHTNING-7218866
(nist) https://nvd.nist.gov/vuln/detail/CVE-2024-5452

도구 다운로드