콘텐츠로 이동

Windows 셸 보안 기능 우회 취약점 CVE-2026-96951

Windows 셸 보안 기능 우회 취약점 CVE-2026-96951 thumbnail
Microsoft는 2026-10-13 Windows 셸의 명령 삽입 취약점인 CVE-2026-96951을 공개하고 보안 업데이트를 배포했다. 공격자가 조작한 파일을 사용자가 열면 웹 출처 표시 기반 보호가 우회될 수 있다.

요약

Microsoft는 2026-10-13 Windows 셸의 명령 삽입 취약점인 CVE-2026-96951을 공개하고 보안 업데이트를 배포했다. 공격자가 조작한 파일을 사용자가 열면 웹 출처 표시 기반 보호가 우회될 수 있다.

Microsoft는 실제 악용을 확인했으며 CISA도 같은 날 이 취약점을 알려진 악용 취약점 목록에 추가했다. CVSS 3.1 점수는 8.8이다. 공격에는 사용자 동작이 필요하지만 사전 권한은 필요하지 않는다.

실제 악용 확인

웹 출처 표시가 없거나 정상 경고가 나타나지 않더라도 외부에서 받은 파일을 안전한 것으로 판단할 수 없다. 영향받는 Windows 시스템은 해당 버전의 2026년 10월 보안 업데이트가 적용됐는지 확인해야 한다.

기술 정보

취약점은 Windows 셸이 명령에 포함된 특수 요소를 적절히 처리하지 않는 문제로 분류된다. 공격자는 이메일, 메신저, 협업 도구 또는 웹 다운로드를 통해 조작한 파일을 전달할 수 있다. 사용자가 링크나 첨부 파일을 열어야 취약 경로가 실행된다.

성공한 공격은 웹 출처 표시를 사용하는 경고, 제한 실행, 보호된 보기 등의 동작을 우회할 수 있다. CVSS 벡터는 네트워크 공격 경로, 낮은 공격 복잡도, 권한 불필요, 사용자 동작 필요로 평가됐다.

항목 내용
공개일 2026-10-13
취약점 유형 명령 삽입
약점 분류 CWE-77
영향 Windows 셸 보안 기능 우회
CVSS 3.1 8.8 높음
공격 경로 네트워크
사전 권한 불필요
사용자 동작 필요
실제 악용 Microsoft 및 CISA 확인
공개 PoC 공개 자료에서 확인되지 않음

Cisco Talos가 공개한 Snort 규칙은 Windows 터미널을 참조하는 Windows 설정 파일이 웹 트래픽으로 전달되는 패턴을 탐지한다. 해당 파일과 사용자 동작이 결합되면 웹 출처가 정상적으로 표시되지 않은 상태에서 임의 명령 실행으로 이어질 수 있다는 설명도 포함돼 있다. 탐지 규칙은 터미널 참조가 포함된 정상 설정 파일에도 반응할 수 있으므로 경보 발생 시 파일 유입 경로와 후속 프로세스를 함께 확인해야 한다.

공개된 패치 차이나 재현 코드는 없다. 따라서 취약 함수나 내부 검증 로직은 특정할 수 없으며, 탐지 시에는 외부에서 받은 설정 파일과 Windows 터미널 또는 명령 실행 프로세스의 연결을 관측 지점으로 삼는다.

제품 수정 KB 수정 빌드
Windows 11 23H2 KB5126653 22631.7652
Windows 11 24H2 KB5127648 26100.9711
Windows 11 25H2 KB5127648 26200.9711
Windows 11 26H1 KB5127646 28000.3231
Windows 11 26H2 KB5127648 26300.9711
Windows 10 21H2 KB5126657 19044.7807
Windows 10 22H2 KB5126657 19045.7807
Windows 10 1809 및 Windows Server 2019 KB5126651 17763.9376
Windows 10 1607 및 Windows Server 2016 KB5126868 14393.9612
Windows Server 2022 KB5126655 20348.5761
Windows Server 2025 KB5126646 26100.33650
Windows Server 2012 R2 KB5126836 9600.23470

다음 명령은 시스템 빌드와 관련 보안 업데이트 설치 기록을 확인한다.

Get-CimInstance Win32_OperatingSystem |
    Select-Object Caption, Version, BuildNumber

$fixedKbs = @(
    'KB5126651',
    'KB5126653',
    'KB5126655',
    'KB5126657',
    'KB5126646',
    'KB5126836',
    'KB5126868',
    'KB5127646',
    'KB5127648'
)

Get-HotFix |
    Where-Object HotFixID -in $fixedKbs |
    Sort-Object InstalledOn -Descending |
    Select-Object HotFixID, InstalledOn

참고 자료