[CVE] CVE 분석 · 작성: 2026-07-19 19:39:08 · 수정: 2026-07-21 23:17:42 · 조회 15
spoolsv.exe)RpcAddPrinterDriverEx()가 낮은 권한 사용자의 "드라이버 설치" 요청에서 관리자 권한 확인과 파일 출처 검증을 제대로 하지 않아, 임의 원격 경로의 DLL을 그대로 로드해 실행한다.패치는 (1) 드라이버 설치 요청에 대한 권한 상승 없는 우회 플래그 조합 차단, (2) SPLREG_COPY_FILES_POLICY 기본값을 신뢰된 경로로만 복사가 이뤄지도록 강화, 두 지점으로 요약된다.
RpcAddPrinterDriverEx() — 권한 검증 우회 플래그Before
DWORD RpcAddPrinterDriverEx(handle, DRIVER_CONTAINER *driver, DWORD flags) {
if (flags & APD_INSTALL_WARNED_DRIVER) {
// "이미 검증된 드라이버"로 간주 — 관리자 권한 재확인을 건너뜀
goto InstallDriver;
}
if (!IsAdmin(handle)) return ERROR_ACCESS_DENIED;
InstallDriver:
return CopyDriverFilesAndInstall(driver);
}
특정 플래그 조합(APD_INSTALL_WARNED_DRIVER 등)이 세팅되면 관리자 권한 확인 분기를 아예 건너뛰는 경로가 존재했다.
After
DWORD RpcAddPrinterDriverEx(handle, DRIVER_CONTAINER *driver, DWORD flags) {
// 우회 플래그 조합과 무관하게 항상 관리자 권한을 재검증
if (!IsAdmin(handle)) return ERROR_ACCESS_DENIED;
if (!IsTrustedDriverSource(driver->szDriverPath)) return ERROR_ACCESS_DENIED;
return CopyDriverFilesAndInstall(driver);
}
플래그 값과 무관하게 권한 검사를 강제하고, 드라이버 파일의 출처(경로)를 검증하는 로직이 추가됐다.
SPLREG_COPY_FILES_POLICY — 신뢰되지 않은 경로 복사 허용Before
if (policy == COPY_FILES_ALLOW_ANY) {
CopyFile(driver->szDriverPath, LOCAL_DRIVER_DIR); // UNC 경로 등 임의 출처 허용
}
After
if (policy == COPY_FILES_RESTRICTED && !IsLocalOrSignedSource(driver->szDriverPath)) {
return ERROR_ACCESS_DENIED; // 기본 정책을 제한 모드로 강화
}
RpcAddPrinterDriverEx()를 호출하며 공격자가 통제하는 SMB 공유 경로의 DLL과, 검증 우회 플래그 조합을 파라미터로 전달