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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-40987 — CVE-2026-40987 PoC | Kitploit
도구/GitHubGitHub/daehyuh/cve-2026-40987
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingPapers & ResearchLearning & Education
GitHubdaehyuh/cve-2026-40987

CVE-2026-40987

CVE-2026-40987 PoC

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-40987: Spring Integration 원격 파일 동기화 Path Traversal PoC

이 저장소는 Spring 공식 보안 권고문으로 공개된 CVE-2026-40987의 최소 재현 PoC입니다.

  • 공식 권고문: https://spring.io/security/cve-2026-40987/
  • 공식 제목: Remote-file synchronizer in Spring Integration writes server-supplied filename under localDirectory without canonicalization
  • 심각도: High
  • CVSS v3.1: AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:H/A:L
  • 공개일: 2026-06-10

취약점 요약

Spring Integration의 remote-file synchronizer가 원격 서버가 제공한 파일명을 로컬 저장 경로를 만들 때 그대로 사용할 수 있었습니다. 이때 canonical path 검증이 충분하지 않으면, 악성 또는 침해된 FTP/SFTP/SMB 서버가 ../escaped-by-ftp-list.txt 같은 파일명을 반환하여 설정된 localDirectory 밖에 파일을 쓰게 만들 수 있습니다.

공식 권고문 기준으로는 FTP만의 문제가 아니라 Spring Integration의 FTP/SFTP/SMB 원격 파일 동기화 계열에 해당하는 문제입니다. 이 PoC는 그중 FtpInboundFileSynchronizer를 사용해 같은 취약 경로를 가장 작고 명확하게 재현합니다.

영향 범위

공식 권고문 기준 영향 제품:

  • Spring Integration

영향 버전:

  • 7.0.0 - 7.0.4
  • 6.5.0 - 6.5.8
  • 6.4.0 - 6.4.11
  • 6.3.0 - 6.3.14
  • 5.5.0 - 5.5.20
  • 더 이상 지원되지 않는 이전 버전도 영향 가능

수정 버전:

  • 7.0.5 또는 7.0.4.1
  • 6.5.9 또는 6.5.8.1
  • 6.4.12
  • 6.3.15
  • 5.5.21

이 PoC가 보여주는 것

테스트는 두 가지 경로를 보여줍니다.

  1. SpringIntegrationRemoteFilePathTraversalTest

    • Spring Integration의 공통 remote-file synchronizer 경로를 직접 재현합니다.
    • 원격 파일명이 ../escaped-by-spring-integration.txt일 때 configured local directory 밖으로 파일 경로가 만들어지는지 확인합니다.
  2. SpringIntegrationFtpPathTraversalTest

    • 테스트 안에서 작은 악성 FTP 서버를 실행합니다.
    • FTP 서버의 LIST 응답에 ../escaped-by-ftp-list.txt를 넣습니다.
    • Spring Integration의 실제 FtpInboundFileSynchronizer가 이 파일명을 받아 incoming/../escaped-by-ftp-list.txt를 다운로드하고, 결과 파일이 downloads 디렉터리 밖에 생성되는 것을 확인합니다.

PoC의 핵심 흐름은 다음과 같습니다.

root@kitploit:~
configured localDirectory = <temp>/downloads
remote LIST filename      = ../escaped-by-ftp-list.txt
resulting local path      = <temp>/downloads/../escaped-by-ftp-list.txt
normalized location       = <temp>/escaped-by-ftp-list.txt

즉, 애플리케이션이 의도한 다운로드 디렉터리를 벗어나 파일을 쓸 수 있습니다.

실행 방법

Windows:

root@kitploit:~
.\mvnw.cmd test

macOS/Linux:

root@kitploit:~
./mvnw test

취약 버전 기준 기대 결과:

root@kitploit:~
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0
BUILD SUCCESS

테스트 성공은 "취약 동작이 재현되었다"는 의미입니다. 즉, 취약한 의존성에서는 테스트가 통과하면서 디렉터리 탈출 쓰기 동작을 증명합니다.

로컬에서 확인한 버전

다음 명령으로 여러 취약 버전을 확인할 수 있습니다.

root@kitploit:~
.\mvnw.cmd "-Dspring-integration.version=6.4.10" test
.\mvnw.cmd "-Dspring-integration.version=6.5.8" test
.\mvnw.cmd "-Dspring-integration.version=7.0.4" test
.\mvnw.cmd "-Dspring-integration.version=7.1.0-RC1" test

이 저장소의 기본값은 spring-integration.version=7.0.4입니다.

왜 위험한가

이 취약점은 공격자가 클라이언트 애플리케이션의 로컬 파일시스템에 공격자 제어 콘텐츠를 쓸 수 있게 만드는 문제입니다. 공격자는 일반적인 HTTP 클라이언트가 아니라, 애플리케이션이 신뢰하고 폴링하는 원격 파일 서버의 응답을 조작할 수 있어야 합니다.

따라서 전제 조건은 존재하지만, 조건이 맞으면 다음과 같은 영향이 가능합니다.

  • 애플리케이션 작업 디렉터리 내부 파일 생성 또는 덮어쓰기
  • batch input directory, web root, temp directory 등에 공격자 제어 파일 배치
  • 후속 처리 파이프라인과 결합될 경우 더 큰 무결성 영향

공식 권고문은 이 문제를 High로 평가했습니다.

Credit

공식 Spring 권고문에는 다음 연구자가 책임 있게 보고한 것으로 기재되어 있습니다.

  • M0untainShley
  • SharlongWen
  • daehyuh

참고 링크

  • Spring 공식 권고문: https://spring.io/security/cve-2026-40987/
  • CVSS calculator: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:H/PR:L/UI:R/S:C/C:L/I:H/A:L&version=3.1
도구 다운로드