Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
NotCVE-2026-0014 — InputLeap의 드래그 앤 드롭 핸들러에서 발생하는 CWE-22 경로 순회 취약점에 대한 개념 증명 및 권고안으로, 재현 절차, 익스플로잇 스크립트, 그리고 완화 지침을 포함합니다. | Kitploit
도구/GitHubGitHub/cduram/notcve-2026-0014
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration Testing
GitHubcduram/notcve-2026-0014

NotCVE-2026-0014

InputLeap의 드래그 앤 드롭 핸들러에서 발생하는 CWE-22 경로 순회 취약점에 대한 개념 증명 및 권고안으로, 재현 절차, 익스플로잇 스크립트, 그리고 완화 지침을 포함합니다.

저장소 보기
414시간 6분 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

요약

제품: InputLeap v3.0.3
공급업체: input-leap
취약점: 경로 순회(Path Traversal)
CWE: CWE-22 제한된 디렉터리로의 경로명 제한 부적절('경로 순회')

설명

InputLeap의 드래그 앤 드롭 핸들러는 마지막 경로 구분자를 찾아 그 뒤 부분만 유지하는 방식으로 파일명을 정제하려고 시도합니다. 구분자가 발견되지 않으면 C++ 문자열 검색은 실패를 나타내는 특수한 센티널 값인 npos를 반환합니다. 그러나 코드는 산술 계산에 그 결과를 사용하기 전에 이 센티널 값을 검사하지 않습니다. npos는 가능한 가장 큰 부호 없는 정수로 정의되므로, 이를 빼면 조용히 랩어라운드가 발생하여 완전히 잘못되었지만 그럴듯해 보이는 답을 만들어냅니다. 즉, 파일명만 반환하는 대신 정제되지 않은 원본 문자열 전체를 반환합니다. 공격자는 한 항목에는 구분자가 없고 다른 항목에는 일치하지 않는 구분자가 포함된 메시지를 조작하여 이를 악용할 수 있습니다. 코드의 전역 구분자 감지 휴리스틱이 뒤집히고, 검색이 조용히 실패하며, ....\AppData...\Startup\evil.exe가 그대로 통과합니다. 그런 다음 이 문자열이 드롭 디렉터리에 연결되어 OS에 전달되고, OS는 .. 시퀀스를 해석하여 의도한 폴더 밖에 파일을 씁니다. 이 취약점은 "찾을 수 없음" 경우에 대한 방어적 검사가 누락되어 있기 때문에 존재합니다.

재현 단계

  1. 대상에서 --enable-drag-drop을 활성화합니다(옵트인, 기본값 OFF).
  2. 연결된 피어로서, 내장된 파일명 데이터가 버퍼 어딘가에 "/" 문자를 포함하여(슬래시="/"를 강제하기 위해) 실제 파일명 세그먼트는 "\" 구분자를 사용하는 드래그 앤 드롭 파일 전송 메시지를 시작합니다. 예를 들어 데이터 블롭 앞부분에 우연한 "/"를 삽입하고 파일명을 "..\..\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\evil.exe"로 설정합니다.
  3. DragInformation::parseDragInfo의 find_last_of(slash, ...)가 "\"로 구분된 파일명 부분에 대해 npos를 반환하여, 부호 없는 산술 랩어라운드를 일으키고 잘리지 않은 전체 경로를 반환합니다.
  4. DropHelper::writeToDir가 이 경로를 사용자의 드롭 대상 디렉터리(기본값 Desktop)에 연결하고 정규화 없이 파일을 써서 Startup 폴더에 배치합니다.
  5. 다음 로그인 시 evil.exe가 피해자 사용자로 실행됩니다.

영향받는 코드

/src/lib/inputleap/DragInformation.cpp
/src/lib/inputleap/DropHelper.cpp

개념 증명 또는 집에 가라

서버에 대한 TLS 및 비암호화 연결을 지원하는 POC가 제공되었습니다.

input-leap-directory-traversal-poc.py

영향

공격자는 이 취약점을 악용하여 기본 또는 할당된 폴더 밖의 임의 경로에 파일을 업로드할 수 있습니다. 이는 코드 실행으로 이어질 수 있습니다

권장 해결책

  1. DragInformation::parseDragInfo에서 슬래시 감지 휴리스틱을 std::filesystem::path(filename).filename()으로 교체하여 기본 이름만 추출되도록 보장합니다.
  2. DropHelper::writeToDir에서 최종 경로를 std::filesystem::canonical로 정규화하고 destination으로 시작하지 않으면 거부합니다.
  3. "..", NUL 바이트, 드라이브 문자(X:), 선행 구분자를 포함하는 파일명을 거부합니다.

공개 타임라인

  • 2026년 7월 27일 -- InputLeap 프로젝트에 보고를 시도했으나, 연락하기 하루 전에 프로젝트가 아카이브되었습니다. NotCVE에 보고했습니다.
  • 2026년 9월 24일 -- NotCVE-2026-0014 공개.
도구 다운로드