
CVE-2026-50343 InstallService StaticPluginMap EoP - 표준 사용자에서 SYSTEM으로
저는 독립적으로 발견하여 CVE-2026-50343으로 추적되는 취약점을 보고했습니다. MSRC는 제 제출물을 다른 연구자의 이전 보고서와 중복된 것으로 확인했습니다. 표준 대화형 사용자는 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\InstallService\State 아래에 공격자 제어 플러그인 상태를 쓸 수 있습니다. Microsoft Store Install Service는 NT AUTHORITY\SYSTEM으로 실행되며, PlugInList와 StaticPluginMap을 읽고 공용 AppInstallManager.SearchForAllUpdatesAsync() 트리거 후 매핑된 DLL을 로드합니다. 결과는 로컬 표준 사용자에서 SYSTEM 코드 실행으로 이어집니다.
| CVE | CVE-2026-50343 |
| MSRC 사례 | 120271 / VULN-192719 |
| MSRC 상태 | 이전 연구원 보고서의 중복으로 확인됨 |
| Microsoft 심각도 | Important |
| Microsoft CVSS | 7.8 High - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| 버그 클래스 | 잘못된 레지스트리 ACL / 권한 있는 DLL 로드 |
| 근본 원인 | 표준 사용자가 SYSTEM 서비스에서 사용하는 InstallService 플러그인 맵 상태를 생성하거나 쓸 수 있음 |
| 구성 요소 | Windows InstallService / Microsoft Store 설치 및 업데이트 브로커 |
| 트리거 | Windows.ApplicationModel.Store.Preview.InstallControl.AppInstallManager.SearchForAllUpdatesAsync() |
| 영향을 받은 테스트 빌드 | Windows 11 25H2 빌드 26200.8037 |
| 이전 테스트 빌드 | Windows 11 Pro 25H2 빌드 26200.8524 |
| 영향 | 표준 사용자 -> NT AUTHORITY\SYSTEM 코드 실행 |
| 필요 조건 | 로컬 표준 사용자, 대화형 로그온 |
| Microsoft CWE | CWE-269: 부적절한 권한 관리 |
| 연구원 근본 원인 분류 | CWE-732: 중요 리소스에 대한 잘못된 권한 할당 |
InstallService는 표준 대화형 사용자가 쓸 수 있는 HKLM 상태의 플러그인 이름과 DLL 경로를 신뢰합니다. 낮은 권한의 사용자가 새 플러그인 이름을 만들고 공격자 제어 DLL을 가리킨 후 Store 설치 제어 WinRT API를 호출합니다. 그러면 InstallService가 해당 DLL을 C:\Windows\System32\svchost.exe 내에서 NT AUTHORITY\SYSTEM으로 로드합니다.
이 리포지토리의 더 강력한 신규 VM 재현은 활성 데스크톱 세션에서 보이는 SYSTEM cmd.exe를 엽니다. 첨부된 비디오에서 desktop-ud6iv88\user1은 표준 사용자로 시작하며 생성된 셸은 다음과 같이 보고합니다:
nt authority\system S-1-5-18
취약한 상태는 다음 아래에 있습니다:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\InstallService\State\PlugInList
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\InstallService\State\StaticPluginMap
테스트된 빌드에서 표준 대화형 사용자는 누락된 하위 키를 생성하거나 그 아래에 값을 설정할 수 있습니다. InstallService는 나중에 SYSTEM으로 실행되는 동안 해당 값을 플러그인 구성으로 사용합니다.
핵심 익스플로잇 체인:
PlugInList\<새 플러그인 이름> = 1을 씁니다.StaticPluginMap\<새 플러그인 이름> = <공격자 DLL>을 씁니다.AppInstallManager.SearchForAllUpdatesAsync()를 호출합니다.InstallService가 공격자 DLL을 SYSTEM으로 로드합니다.NT AUTHORITY\SYSTEM으로 실행됩니다.더 강력한 재현 사용:
interactive-system-shell-repro/
표준 사용자 PowerShell에서:
cd interactive-system-shell-repro
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\Cleanup-InstallServiceInteractiveShell.ps1
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\Run-InstallServiceInteractiveShell.ps1
SYSTEM 셸이 열리면:
whoami /user
whoami /priv
각 실행은 다음 아래에 증거를 기록합니다:
C:\Users\Public\InstallServiceEopProof\<timestamp>
원본 MSRC 제출 파일은 참고용으로 여전히 존재합니다:
| 파일 | 설명 |
|---|---|
exploit.ps1 | 레지스트리 상태를 쓰고, InstallService를 트리거하며, SYSTEM 마커 파일을 확인하는 독립형 PoC |
canary.c | 원본 마커 쓰기 DLL 소스 |
isp_exploit.dll | 원본 사전 빌드된 마커 쓰기 DLL |
사용법:
powershell.exe -ExecutionPolicy Bypass -File .\exploit.ps1 -PayloadDll "C:\Users\Public\isp_exploit.dll"
powershell.exe -ExecutionPolicy Bypass -File .\exploit.ps1 -Cleanup
interactive-system-shell-repro/interactive-system-shell-repro/evidence/installservice-staticplugin.mp4exploit.ps1canary.c면책 조항: 이 익스플로잇 코드는 보안 연구 및 교육 목적으로 제공됩니다. 소유하지 않거나 명시적 테스트 권한이 없는 시스템에 대해 사용하지 마십시오. 작성자는 오용에 대해 책임지지 않습니다.
CVE-2026-50343 - MSRC에 사례 120271 / VULN-192719로 독립적으로 보고되었으며, 이전 연구원 제출물과 중복된 것으로 확인되었습니다.
Daniel Wade - GitHub · Twitter/X · Bluesky · Mastodon · Medium · nadsec.online
| 날짜 | 이벤트 |
|---|
| 2026-06-03 | 원본 InstallService 보고서가 VULN-192719로 MSRC에 제출됨 |
| 2026-06-04 | MSRC 사례 120271이 열림 |
| 2026-06-13 | 신규 Windows 11 25H2 빌드 26200.8037 표준 사용자 대화형 SYSTEM 셸 재현이 기록되어 제출된 MSRC 사례에 추가됨 |
| 2026-06-27 | MSRC가 보고서가 이전 연구원 제출물과 중복됨을 확인 |
| 2026-07-14 | Microsoft가 CVE-2026-50343을 게시하고 보안 업데이트를 출시함 |