펜리젠트 헤더

CVE-2025-55680 PoC: Windows 클라우드 파일 경쟁 조건을 실제 권한 상승으로 전환하기

Microsoft가 또 다른 로컬 권한 상승 수정 사항을 배포하면 "화요일 패치에 포함된 또 하나의 CVE"로 취급하기 쉽습니다. CVE-2025-55680은 그보다 더 많은 관심을 기울여야 합니다. 이는 사용 시간 확인 시간(TOCTOU) 경쟁 조건 에서 Windows 클라우드 파일 미니 필터 드라이버 (cldflt.sys)를 사용하면 권한이 낮은 로컬 사용자가 민감한 위치에 임의의 파일을 생성하고 이를 시스템으로 가져갈 수 있습니다.NVD)

방어자에게는 클라우드 파일 관련 버그의 오랜 역사에서 또 하나의 데이터 포인트이며, 레드팀과 익스플로잇 개발자에게는 클라우드 동기화 추상화가 커널에 인접한 공격 표면을 어떻게 열어주는지에 대한 최신 사례 연구입니다. 이러한 버그를 추론하는 데 AI 지원 펜 테스팅이 점점 더 많이 사용되고 있기 때문에 CVE-2025-55680은 다음과 같은 자연스러운 테스트베드이기도 합니다. 자동화된 PoC 생성.

이 문서에서는 취약성 메커니즘, 익스플로잇 모델, 현실적인 완화 전략을 살펴본 다음 다음과 같은 AI 기반 도구가 어떻게 작동하는지 살펴봅니다. 펜리전트 는 팀을 "CVE가 있습니다"에서 "우리 환경에서 익스플로잇이 가능하다는(또는 불가능하다는) 증거가 있습니다"로 전환할 수 있습니다.

CVE-2025-55680 PoC

상황별 CVE-2025-55680 이해

에 따르면 NVD 그리고 공식 CVE.org 레코드, CVE-2025-55680은 TOCTOU 경주 조건 를 사용하여 로컬의 인증된 공격자가 권한을 상승시킬 수 있도록 합니다. 이 드라이버는 CVSS v3.1 기본 점수가 높은 범위(채점 기관에 따라 약 7.0~7.8)에 속하며 일반적인 벡터를 사용합니다:

AV:L / AC:(L 또는 H) / PR:L / UI:N / S:U / C:H / I:H / A:H (NVD)

클라우드 보안 공급업체 Wiz 는 몇 가지 중요한 메타 사실을 강조합니다.wiz.io)

  • 이는 클라이언트와 서버 모두에서 지원되는 여러 Windows 버전에 영향을 줍니다.
  • 다음과 같이 분류됩니다. CWE-367(TOCTOU 경주 조건).
  • 이미 공개 익스플로잇 코드와 연관되어 있으며 매우 일반적인 기능 스택(OneDrive / 주문형 파일)에서 시스템을 제공하기 때문에 "높은 가치"로 간주됩니다.

여러 권고(Wiz, Tenable, H-ISAC)에 따르면 CVE-2025-55680은 다음과 같습니다. 또 다른 항목 클라우드 파일 미니 필터 취약점 라인에서 2022년부터 제공되었습니다.wiz.io) 대규모 Windows 제품군 또는 VDI 팜을 유지 관리하는 팀의 경우 이제 이러한 문제군을 일회성 버그가 아닌 상시적인 위험 범주로 취급해야 합니다.

클라우드 파일 미니 필터의 실제 기능

버그를 이해하려면 먼저 드라이버가 어떤 기능을 하는지 이해해야 합니다. 드라이버의 클라우드 파일 미니 필터 (cldflt.sys)는 Windows 클라우드 동기화 스택의 일부입니다. 다음과 같은 기능을 지원합니다. OneDrive 파일 온디맨드를 사용하면 파일이 로컬에 '플레이스홀더'로 존재하고 액세스 시 클라우드에서 하이드레이트될 수 있습니다.엑소더스 인텔리전스)

높은 수준에서:

  • 동기화 공급자는 루트 동기화 경유 CfRegisterSyncRoot in cldapi.dll.
  • 이 루트 아래에서 파일은 완전히 수화되거나, 고정되거나, 사용 시에만 수화되는 플레이스홀더가 될 수 있습니다.
  • 다음과 같은 사용자 모드 API CfCreatePlaceholders 를 사용하여 이러한 플레이스홀더 항목을 만들 수 있습니다.
  • 커널에서, cldflt.sys 는 I/O를 가로채고 다음을 통해 파일 및 디렉터리 생성을 포함한 이러한 작업을 관리합니다. FltCreateFileEx2.

이 취약점은 다음과 같은 경로에 있습니다. 자리 표시자를 위한 사용자 제공 파일 이름 의 유효성을 검사하고 실제 커널 모드 파일 생성으로 전환합니다.

근본 원인: 최신 동기화 스택의 클래식 TOCTOU 레이스

엑소더스 인텔리전스는 CVE-2025-55680에 대한 자세한 기술 분석을 게시하여 버그가 내부에서 어떻게 발생하는지 설명했습니다. HsmpOpCreatePlaceholders() 함수의 cldflt.sys.(엑소더스 인텔리전스)

간단히 설명하자면

  1. 사용자 모드 코드는 다음을 호출합니다. CfCreatePlaceholders() 를 클릭하여 동기화 루트 아래에 하나 이상의 플레이스홀더 파일을 만듭니다.
  2. 필터 드라이버에서, HsmpOpCreatePlaceholders() 는 I/O 컨트롤을 수신합니다(IOCTL 0x903BC)와 상대 파일 이름 필드(relName).
  3. 드라이버:
    • 프로브 및 사용자 버퍼를 커널 공간에 매핑합니다. (MDL 사용 및 MmMapLockedPagesSpecifyCache).
    • 다음을 반복합니다. relName 를 사용하여 not 와 같은 금지 문자가 포함되어 있습니다. \\ 또는 : (이전 CVE 이후에 도입된 완화 조치).
  4. 유효성 검사를 통과하면 드라이버는 다음을 준비합니다. object_attributes 및 통화 FltCreateFileEx2() 를 사용하여 유효성이 검사된 파일 이름과 동기화 루트에서 파생된 루트 디렉터리 핸들을 사용하여 파일을 만듭니다.

이 버그는 3-4단계에 있습니다. 시간 창 사용자 버퍼의 유효성을 검사하고 FltCreateFileEx2()이 기간 동안 공격자는 다음을 수행할 수 있습니다. 동일한 매핑된 메모리 수정 를 호출할 수 있습니다. 커널과 사용자 보기는 물리적 페이지를 공유하기 때문에 사용자 버퍼의 변경 사항이 커널의 포인터에도 반영됩니다.(엑소더스 인텔리전스)

의사 코드로 표현하면 로직은 대략 다음과 같습니다:

// 의사 코드, 설명을 위해 단순화됨
NTSTATUS HsmpOpCreatePlaceholders(USER_BUFFER* userBuf) {
    // 사용자 버퍼를 커널 공간에 매핑합니다.
    KERNEL_VIEW* kview = MapUserBuffer(userBuf);

    WCHAR* relName = kview->relName;

    // 1. 파일명 유효성 검사: '\\' 및 ':' 문자 거부
    if (contains_forbidden_chars(relName)) {
        STATUS_INVALID_PARAMETER를 반환합니다;
    }

    // 2. RootDirectory = sync root로 OBJECT_ATTRIBUTES 빌드하기
    OBJECT_ATTRIBUTES oa = {0};
    oa.RootDirectory = SyncRootHandle;
    oa.ObjectName = relName; // 여전히 매핑된 사용자 메모리를 가리킴

    // 3. 파일 생성
    return FltCreateFileEx2(..., &oa, IO_IGNORE_SHARE_ACCESS_CHECK, ...);
}

그리고 TOCTOU 는 명확합니다: contains_forbidden_chars(relName) 문자열을 읽습니다. 한 번 안전하다고 판단하지만, 안전하다는 보장은 없습니다. relName 은 동일한 문자열로 유지됩니다. FltCreateFileEx2() 실행합니다.

공격자는 이 창을 조심스럽게 공략할 수 있습니다:

  • 예를 들어 동기화 루트 아래에 정상 상대 이름처럼 보이는 이름으로 유효성 검사를 통과합니다. JUSTASTRINGDnewfile.dll를 클릭한 다음
  • 매핑된 버퍼에서 한 문자를 뒤집어 파일이 생성될 때쯤에는 다음과 같이 되도록 합니다. JUSTASTRING\\newfile.dll에서 저스트스트링 는 다음과 같은 권한 있는 디렉터리를 가리키는 정션 또는 심볼릭 링크입니다. C:\\Windows\\System32.(엑소더스 인텔리전스)

파일 생성 경로에 심볼릭 링크나 정션 통과에 대한 추가 안전 장치가 적용되지 않기 때문에, 드라이버는 권한이 낮은 사용자가 쓸 수 없는 위치에 공격자가 제어하는 파일을 생성하게 됩니다.

CVE-2025-55680 PoC: Windows 클라우드 파일 경쟁 조건을 실제 권한 상승으로 전환하기

익스플로잇 모델: 로우 프라이빗 셸에서 시스템으로

엑소더스와 여러 뉴스 매체에서 기술적으로는 사소하지 않지만 결심한 공격자나 레드팀에게는 매우 현실적인 익스플로잇 모델을 다음과 같이 설명합니다.엑소더스 인텔리전스)

  1. 환경 설정
    • 다음을 사용하여 동기화 루트 디렉터리를 등록합니다. CfRegisterSyncRoot.
    • 해당 루트 아래에 디렉터리를 만듭니다(예 저스트스트링)를 높은 가치의 대상 디렉터리(예 C:\\Windows\\System32).
  2. 레이스 오케스트레이션
    • 여러 스레드를 사용하려면
      • 플레이스홀더 생성 요청을 지속적으로 발행(CfCreatePlaceholders → IOCTL 0x903BC)를 "안전한" 상대 이름으로 변경합니다.
      • 매핑된 파일 이름 버퍼에서 1바이트를 지속적으로 뒤집어 \\ 적절한 순간을 포착합니다.
      • 대상 파일(예 System32\\newfile.dll)가 나타났습니다.
  3. DLL 하이재킹을 통한 권한 상승
    • 임의의 DLL 또는 실행 파일이 권한이 있는 디렉터리에 드롭되면, 알려진 DLL 사이드로딩 또는 서비스 하이재킹 벡터를 사용하여 시스템 권한으로 코드를 실행합니다.
  4. 정리
    • 정션 및 임시 파일과 같은 흔적을 제거하여 포렌식 아티팩트를 줄이세요.

방어자의 관점에서 보면 이는 하나의 "익스플로잇 이벤트"가 아니라 관찰 가능한 일련의 행동으로 해석됩니다. 다음 표에는 각 단계가 요약되어 있습니다:

스테이지공격자 목표관찰 가능한 신호(예시)
동기화 루트 등록제어되는 클라우드 파일 컨텍스트 준비CfRegisterSyncRoot 사용법, 새로운 동기화 루트 경로
정션 생성권한 있는 대상에 대한 양성 경로 연결사용자 디렉터리에서 C:\\Windows\\System32
레이스 실행시스템 디렉터리에 파일을 생성하려면 TOCTOU를 사용하세요.높은 비율의 IOCTL 0x903BC, 비정상적인 활동에서 cldflt
파일 드롭 및 하이재킹시스템 수준 코드 실행 가져오기System32의 새로운 DLL, 서비스/이미지 경로 이상 현상

이 중 어느 것도 최신 EDR 또는 DFIR 팀에게는 낯선 것은 아니지만 다음과 같은 사항이 필요합니다. 상관 관계 클라우드 동기화 구성, 정션, 플레이스홀더 이탈 등 겉보기에는 무해해 보이는 작업을 하나의 "이상한" DLL을 만들어서 수행합니다.

방어적 관점: 탐지, 강화 및 패치 전략

당연한 첫 번째 단계가 여전히 가장 효과적입니다: Microsoft의 2025년 10월 화요일 패치 화요일 업데이트 적용 CVE-2025-55680을 수정합니다.사이버 보안 뉴스)

그러나 패치만으로는 보안 엔지니어가 일반적으로 궁금해하는 운영상의 질문에 대한 답을 얻을 수 없습니다:

  • 패치 전에 이 버그가 악용될 수 있는 곳은 어디인가요?
  • 어떤 시스템이 여전히 업데이트가 지연되고 있나요?
  • 누군가 실제로 시도한다면 어떤 원격 측정이 실행될까요?

호스트 및 EDR 원격 분석

엔드포인트 관점에서 탐지 및 헌팅을 조정할 가치가 있습니다:

  • 비정상적인 클라우드 파일 동작
    • 서버 또는 고가의 워크스테이션에서 드물게 또는 일회성으로 동기화 루트 등록을 합니다.
    • 원드라이브 사용량이 많지 않은 시스템에서 예기치 않은 IOCTL 0x903BC 볼륨이 발생합니다.사이버 보안 뉴스)
  • 접합 및 심볼릭 링크 남용
    • 사용자가 쓸 수 있는 경로에서 권한이 있는 디렉터리(System32, 프로그램 파일 등)로 생성된 정션.
  • 권한이 있는 디렉터리에서 의심스러운 파일 생성
    • System32 또는 기타 OS 디렉터리에서 비표준 이름을 사용하거나 최근에 컴파일된 새 DLL 또는 실행 파일.
    • 이러한 창작물과 고빈도 활동 간의 상관 관계는 다음과 같습니다. cldflt.sys.

이를 다음과 같이 매핑합니다. MITRE ATT&CKCVE-2025-55680은 다음과 같은 기술을 달성하기 위한 수단입니다. T1068(권한 상승을 위한 익스플로잇) 로 피벗한 다음 지속성을 위해 서비스 또는 DLL 하이재킹으로 전환합니다.

아키텍처 및 정책 완화

패치와 탐지 외에도 고려해야 할 사항이 있습니다:

제어설명참고
케이던스 적용 업데이트화요일 패치 업데이트가 몇 주가 아닌 며칠 내에 배포되도록 합니다.특히 VDI/멀티 테넌트 호스트에 적합합니다.
OneDrive/클라우드 파일 강화고가 서버에서 주문형 파일 사용을 제한하세요.항상 실현 가능한 것은 아니지만 강력합니다.
최소 권한 워크스테이션 모델동기화 공급자를 설치하거나 동기화 루트를 등록할 수 있는 사용자를 제한합니다.로컬 공격 표면을 줄입니다.
정션 남용에 대한 EDR 규칙OS 디렉터리를 가리키는 정션에 대한 경고.이 CVE 이후에도 유용합니다.

H-ISAC 및 기타 업계 그룹은 이미 다음과 같은 위협 게시물을 발표했습니다. PoC 익스플로잇 사용 가능 신속한 패치 적용과 목표 모니터링을 장려합니다.미국 병원 협회)

CVE-2025-55680이 AI 기반 펜테스팅에 중요한 이유

CVE-2025-55680은 또한 보안 팀이 새로운 클라우드 파일 권한 에스컬레이션에 대해 듣게 될 때쯤이면 더 일반적인 문제점을 보여줍니다, 공개 PoC는 종종 사용할 수 없거나, 불완전하거나, 의도적으로 편집된 경우가 많습니다.. 그러나 어려운 질문은 "CVE가 존재하느냐"가 아니라:

"공격자가 우리 환경에서, 우리 엔드포인트에서, 우리 EDR과 강화가 적용된 상태에서 CVE-2025-55680을 의미 있게 사용할 수 있을까요?"

이에 대한 답변이 필요합니다:

  • 이해 정확한 전제 조건 (클라우드 파일 사용, OneDrive 사용, 정션 생성 기능).
  • 자문 언어를 구체적인 익스플로잇 시도 통제된 실험실에서
  • 캡처 증거 (로그, 생성된 파일, 프로세스 트리)를 사용하여 영향을 증명하거나 기존 제어가 이를 차단한다는 사실을 입증할 수 있습니다.

여기에서 AI 지원 펜테스트 툴링 는 과대 광고가 아니라 취약성 피드와 실제 위험 사이의 고리를 끊는 실용적인 방법으로 보이기 시작합니다.

펜리전트 CVE-2025-55680을 사용한 원클릭 PoC 분류

펜리전트를 통한 원클릭 PoC 분류

다음과 같은 플랫폼 펜리전트 는 이러한 종류의 추론을 자동화하도록 설계되었습니다. CVE-2025-55680과 같은 CVE의 경우 일반적인 AI 기반 워크플로는 다음과 같습니다:

  1. 구조화된 인텔리전스 수집
    • NVD / CVE.org 항목, MSRC 자문 및 기술 분석(Exodus, Wiz, CyberPress).NVD)
    • 추출 제약 조건: 로컬 인증 필요, 클라우드 파일 사용, 정션 기반 경로 조작, 경합 중 HsmpOpCreatePlaceholders 그리고 FltCreateFileEx2.
  2. 실제 대상 환경에 매핑
    • 실행되는 Windows 호스트 식별 cldflt.sys 클라우드 파일/원드라이브가 활성화된 상태입니다.
    • 해당 머신에 동기화 루트와 관련 정책이 있는지 확인합니다.
  3. 통제된 PoC 시나리오 합성
    • 테스트 동기화 루트를 등록하고, 양성 접합을 설정하고, 플레이스홀더 기반 파일 생성 경쟁을 시도하는 스켈레톤 익스플로잇 로직을 생성합니다. 격리된 실험실 환경에서만.
    • 방어자가 블랙박스 익스플로잇이 아닌 최대한의 관찰 가능성을 확보할 수 있도록 로깅을 통해 이를 강력하게 계측하세요.

다음은 그러한 무기화되지 않은 골격 는 개념적으로 어떻게 보일지 모릅니다:

# 의사 코드: 레이스 하네스(실험실 검증 전용, 전체 익스플로잇이 아님)
def run_lab_race(target_path):
    shared = create_mapped_buffer(initial_name="SAFEPLACEHOLDER")
    stop_flag = False

    def creator_thread():
        stop_flag가 아닌 동안
            issue_placeholder_ioctl(shared)

    def flipper_thread():
        while not stop_flag:
            flip_buffer_byte(shared)
            tiny_sleep()

    def monitor_thread():
        while not stop_flag:
            if privileged_file_exists(target_path):
                log("[+] 잠재적 레이스에서 승리, 파일 생성 위치", target_path)
                stop_flag = True

    start_threads([creator_thread, flipper_thread, monitor_thread])

요점은 또 다른 복사-붙여넣기 익스플로잇을 배포하는 것이 아니라 시스템이 자연어 조언에서 코드 구조까지 추론하기를 설정한 다음 운영자가 실행 방법과 위치를 결정하도록 합니다.

  1. 증거 캡처 및 보고서 생성
    • 레이스에 성공하면 펜리젠트는 자동으로 수집할 수 있습니다:
      • 파일 시스템 아티팩트(어떤 파일이 어디에 생성되었는지).
      • 관련 Windows 이벤트 및 ETW 추적.
      • 영향 및 권장 해결 방법을 설명하는 내러티브입니다.
    • 현실적인 조건에서 실패한다면 이는 패치와 강화가 제대로 작동하고 있다는 의미이기도 합니다.

CVE 피드에서 검증된 영향까지

이제 대부분의 조직은 취약성 피드와 패치 화요일 게시판을 자동으로 수집합니다. 그 차이는 다음과 같습니다. CVE 목록 그리고 사용자 환경에서 검증된 익스플로잇 가능성을 기준으로 순위를 매깁니다..

NVD 및 MSRC와 같은 구조화된 소스를 Exodus의 클라우드 파일 연구와 같은 심층적인 기술 문서와 결합한 다음 AI 기반 엔진이 코드와 실험을 오케스트레이션하도록 하면 됩니다:

  • CVE-2025-55680을 단순히 스프레드시트의 항목이 아니라 특정 컴퓨터에서 테스트된 특정 위험으로 취급하세요.
  • 다음을 중심으로 탐지 및 대시보드 구축 관찰된 익스플로잇 동작단순한 추측이 아닙니다.
  • 다음에 화요일 패치에서 클라우드 파일 미니 필터(또는 유사한 커널 인접 스택)가 나타날 때 동일한 파이프라인을 재사용하세요.

이 분야에서 펜리전트의 목표는 간단합니다: CVE-2025-55680과 같은 CVE를 구체적이고 증거가 뒷받침된 답변으로 전환 모든 엔지니어가 커널 드라이버를 리버스 엔지니어링하고 PoC를 처음부터 수작업으로 만들 것을 기대하지 않고 "실제로 위험에 처해 있는지, 어디가 위험한지?"에 집중할 수 있습니다.

게시물을 공유하세요:
관련 게시물