[방어] 분석 — CVE-2026-40400
CVE-2026-40400 is a PowerShell relative path‑traversal that enables low‑privilege attackers to load remote scripts over the network, and the top immediate mitigation is to block UNC access for PowerShell processes via a firewall rule or AppLocker policy.
📋 요약
- 심각도 high · CVSS 8.0 · EPSS 0.00701 · 악용난이도 hard
🔍 공격 기법
PowerShell 모듈이 입력값 검증 없이 ..\(또는 ../)를 받아들여 파일 경로를 조합합니다.
공격자는 인증된 계정으로 PowerShell Remoting(WS‑Man)이나 로컬 스크립트 실행 시, 해당 상대 경로에 UNC 주소(\\attacker_ip\share\payload.ps1)를 삽입하면 Invoke-Expression·Start-Process와 결합해 원격 스크립트를 시스템 권한으로 실행합니다. UI 요구가 존재하지만(사용자 상호작용), 인증된 내부 사용자라면 네트워크 전파가 가능하여 횡적 이동(Lateral Movement)까지 이어질 수 있습니다.
악용 가능성: 이 취약점은 네트워크를 통해 원격에서 접근 가능(AV:N)하지만 공격 성공에 필요한 권한이 제한적이며(PR:L) 사용자 상호작용이 요구됩니다(UI:R). 이러한 조건 때문에 실제 공격자는 이미 인증된 계정 또는 최소 권한을 가진 세션을 확보해야 하며, 이는 일반 사용자가 임의로 수행하기 어렵다는 점에서 “hard” 등급이 부여되었습니다. EPSS = 0.00701(≈0.7 %)이라는 매우 낮은 실측 위험도는 현재까지 악용 사례가 거의 없으며, KEV 목록에도 포함되지 않아 조직 차원에서 급격한 위협으로 인식되기 어렵습니다. 공격 표면은 Windows PowerShell이 실행되는 서버 혹은 워크스테이션의 파일 시스템이며, 상대 경로(..\)를 이용해 임의 파일에 접근할 수 있는 입력 파라미터(예: 스크립트 경로 옵션)가 외부 네트워크에서 직접 전달될 때 노출됩니다. 따라서 공격자는 네트워크 경계 내에서 PowerShell 실행 권한을 가진 계정을 확보하고, 해당 계정으로 상대 경로를 포함한 명령을 전송해야만 코드를 실행할 수 있습니다. 이와 같이 인증된 접근과 사용자 동작이 필수적인 점이 난이도를 높이며, 실제 악용 가능성은 현재 관측치에 비해 제한적이라고 판단됩니다.
💥 영향 분석
- 성공 시 임의 코드 실행(C) → 관리자 수준 PowerShell 명령 수행
- 기밀 데이터 유출·변조(I) → 스크립트를 통해 파일 접근 및 네트워크 전송
- 서비스 중단(A) → 악성 스크립트가 시스템 프로세스를 종료하거나 재시작 가능
- 영향을 받는 OS: Windows 10 1607‑22H2, Windows 11 24H2‑26H1, Windows Server 2012(총 8개 버전)로 기업 내부망 전반에 걸쳐 광범위하게 존재합니다.
🔗 관련 취약점·체이닝
- CWE‑22 경로 탐색과 결합된 파일 포함 취약점이 웹 서버 등에서 흔히 체인되는 점을 고려하면, 동일한 상대 경로 입력을 검증하지 않는 다른 서비스와 연계될 가능성이 있습니다.
- PowerShell 로그 우회(CWE‑265)·인증 우회(CWE‑287)와 결합하면 사후 침투 단계가 가속화됩니다(추정).
🔎 탐지
로그 소스 및 핵심 필드
Microsoft-Windows-PowerShell/Operational이벤트 로그 (EventID 4104 ScriptBlockLogging, 4103 PipelineExecution) →Message,ScriptBlockText,Computer,UserId- Windows Defender Advanced Threat Protection(EDR) 프로세스 생성 이벤트 (
process_name=PowerShell.exe) →CommandLine
탐지 규칙 예시
- 정규식 기반 탐지 (상대 경로 시도)
- 패턴:
(?i)\.\./|\.\.\\|\\\\[^\s]+\\[^\s]+\.ps1
- 패턴:
- SIEM 쿼리 (Microsoft Sentinel / Elastic)
text1Event2| where Source == "Microsoft-Windows-PowerShell/Operational"3| where EventID in (4104,4103)4| where Message matches regex "(?i)\.\./|\.\.\\|\\\\[^\s]+\\[^\s]+\.ps1"5| summarize cnt=count() by Computer, UserId, bin(TimeGenerated,5m)6| where cnt > 2
- 프로세스‑네트워크 연계 탐지 (EDR)
bash1ProcessCreate2| where Image endswith "powershell.exe"3| where CommandLine matches regex "(?i)\.\./|\.\.\\|\\\\"4| join kind=inner (5 NetworkConnection6 | where RemotePort == 4457) on $left.HostId == $right.HostId8| summarize cnt=count() by HostName, InitiatingUser, bin(TimeGenerated,5m)9| where cnt > 0
오탐 시나리오 및 튜닝
- 정상 빌드·배포 파이프라인에서
..\경로를 사용하는 경우 →ProcessName필터에MSBuild.exe,dotnet.exe등을 화이트리스트에 추가. - 대규모 배포 작업 시 일시적 다중 로그 발생 → 임계값(
cnt > 2)을 시간 구간(5 분)보다 넓게 조정하거나, 사용자 그룹(서비스 계정)별 가중치를 적용.
🛡️ 완화 방안
즉시(긴급 차단)
- PowerShell 프로세스에 대해 UNC 접근 차단: Windows Defender Firewall 규칙을 생성하여
powershell.exe와pwsh.exe의 outbound TCP 445를 차단한다.- 구현 난이도: 낮음 (그룹 정책 또는 로컬 방화벽 설정)
- 운영 영향: 기존 내부 SMB 파일 공유 사용 스크립트가 실패할 수 있음 → 영향을 받는 작업을 사전 파악하고 예외 적용 필요
- 검증 방법: 차단 후
Test-Path \\attacker_ip\share\test.ps1명령이 오류(Access denied) 반환 여부 확인
단기(완화)
-
PowerShell 로깅 강화: Script Block Logging 및 Transcription 활성화 (
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell"–Name "ScriptBlockLogging" –Value 1)와 함께ConstrainedLanguageMode를 전역 정책으로 적용한다.- 구현 난이도: 중간 (레지스트리/그룹 정책 변경)
- 운영 영향: 로그 용량 증가, 일부 스크립트가 제한 언어 모드에서 실행되지 않을 수 있음
- 검증 방법:
Get-ExecutionPolicy -List로ConstrainedLanguage적용 확인 및 이벤트 로그에4104기록 여부 점검
-
네트워크 레벨 제한: PowerShell Remoting 포트(5985/5986) 접근을 신뢰된 관리 서브넷으로만 허용하고, 외부 IP에서의 직접 연결을 차단한다.
- 구현 난이도: 낮음 (방화벽 ACL 수정)
- 운영 영향: 원격 관리 범위 축소 → 관리자는 VPN 등 안전 경로 사용 필요
근본(해결)
- Microsoft 제공 보안 업데이트(KB xxxxxxx, 정확한 KB 번호는 마이크로소프트 보안 공지 참조)를 적용하고, 지원되는 최신 OS 버전(Windows 10 22H2 이상·Windows 11 24H2 이상)으로 업그레이드한다.
- 구현 난이도: 높음 (패치 배포·재부팅·서비스 중단)
- 운영 영향: 시스템 재시작 및 서비스 가용성 일시적 저하
- 검증 방법: WSUS/ConfigMgr 보고서에서 해당 CVE-2026-40400 패치 적용 상태 확인,
winver로 OS 버전 검증
잔여 리스크
패치를 적용해도 로그 기반 탐지는 유지해야 하며, 공격자가 새로운 경로 우회 기법을 개발할 가능성이 존재합니다. 따라서 지속적인 SIEM 룰 업데이트와 정기적인 보안 점검이 필요합니다.
인시던트 대응 플레이북 (핵심 흐름)
- SIEM 알림 수신 → 대상 호스트·사용자 식별
EventID 4104/4103로그에서 상대 경로·UNC 패턴 존재 여부 확인- 의심되는
powershell.exe프로세스를 즉시 격리하고, 해당 호스트의 outbound 445 및 Remoting 포트 차단 - 메모리 덤프와 파일 무결성 검증 수행(예: Sysinternals ProcDump, Windows File Integrity)
- 취약 버전 확인 후 패치 적용 계획 수립·실행
우선순위 논리
다중 소스에서 일관성이 확인되었으며(CVE-2026-40400 → high, CVSS 8.0), EPSS = 0.00701(실측 악용 가능성은 낮지만 완전히 배제되지 않음)이고 KEV에 등재되지 않아 즉시 긴급 대응보다는 이번 주 내 scheduled 로 지정되었습니다(CVSS + non‑KEV + low EPSS → 중간 급 대응).
⚖️ 위험도 / 우선순위
- 조치: scheduled (이번 주 내)
- 근거: CVSS=8.0 · non-KEV · EPSS=0.00701 · exploit=hard · in_scope=None