← 목록으로

CVE-2021-34527 (PrintNightmare): 프린터 드라이버 관리 기능이 만든 권한 상승

[CVE] CVE 분석 · 작성: 2026-07-19 19:39:08 · 조회 2

PrintNightmare는 Windows Print Spooler 서비스에서 발견된 취약점으로, 원격 코드 실행과 권한 상승(로컬 사용자가 SYSTEM 권한을 획득) 두 가지 형태로 모두 악용 가능했다. Print Spooler는 거의 모든 Windows 시스템에서 기본적으로 실행 중인 서비스라는 점에서, 영향 범위가 사실상 Windows 생태계 전체에 해당했다.

Print Spooler와 프린터 드라이버 설치 기능

Windows의 Print Spooler는 인쇄 작업을 관리하는 서비스인데, 편의 기능으로 **네트워크 프린터에 연결할 때 필요한 드라이버를 원격 서버에서 자동으로 다운로드해서 설치하는 기능(Point and Print)**을 갖고 있다. 이 기능 자체가 "임의의 코드(드라이버 형태로 위장한)를 시스템에 설치하고 실행하는 통로"가 될 수 있다는 게 문제의 본질이다.

근본 원인: 권한 검증 누락

Print Spooler가 드라이버 설치 요청을 처리할 때, 그 요청을 보낸 주체가 실제로 드라이버를 설치할 권한이 있는지를 제대로 검증하지 않는 경로가 있었다. 구체적으로는 RpcAddPrinterDriver 같은 RPC(원격 프로시저 호출) 인터페이스를 통해, 권한이 낮은 사용자도 서명되지 않은(신뢰할 수 없는) 드라이버 DLL을 시스템 디렉터리에 설치하고 Print Spooler 프로세스(SYSTEM 권한으로 실행됨) 안에서 그 코드를 실행시킬 수 있었다.

Print Spooler 서비스 자체가 SYSTEM 권한으로 동작하기 때문에, 이 경로로 심어진 코드는 곧바로 시스템 최고 권한으로 실행된다 — 낮은 권한의 로컬 사용자가 관리자 권한으로 뛰어오르거나(권한 상승), 네트워크를 통해 원격의 다른 시스템에서 같은 방식으로 원격 코드 실행을 일으킬 수 있었다.

두 가지 공격 시나리오

  1. 로컬 권한 상승(LPE): 이미 시스템에 낮은 권한으로 접속해 있는 공격자(또는 악성코드)가 이 취약점으로 SYSTEM 권한까지 상승 — 침투 이후 단계에서 자주 활용되는 유형
  2. 원격 코드 실행(RCE): 공격자가 통제하는 프린트 서버에 피해자가 연결하도록 유도하면(피싱, 사회공학), 악성 드라이버가 자동 설치되며 원격에서 코드가 실행됨

패치 과정이 유난히 혼란스러웠던 이유

이 CVE는 대응 과정 자체가 이례적으로 복잡했던 사례로도 자주 언급된다.

방어자 관점에서 배울 점

CVE 분석 카테고리의 글 (5/8)

  1. CVE-2024-3400: Palo Alto PAN-OS GlobalProtect 원격 코드 실행
  2. CVE-2021-44228 (Log4Shell): 로그 한 줄로 서버를 장악당한 사건
  3. CVE-2014-0160 (Heartbleed): OpenSSL 하트비트가 새어나간 메모리
  4. CVE-2017-0144 (EternalBlue): WannaCry를 전 세계로 퍼뜨린 SMB 취약점
  5. CVE-2021-34527 (PrintNightmare): 프린터 드라이버 관리 기능이 만든 권한 상승
  6. CVE-2022-0847 (Dirty Pipe): 파이프로 읽기전용 파일을 덮어쓴 취약점
  7. CVE-2021-3156 (Sudo Baron Samedit): 힙 오버플로우로 root 획득
  8. CVE-2022-22965 (Spring4Shell): 클래스 로더 조작으로 이어지는 RCE
← CVE-2017-0144 (EternalBlue): WannaCry를 전 세계로 퍼뜨린 SMB 취약점 CVE-2022-0847 (Dirty Pipe): 파이프로 읽기전용 파일을 덮어쓴 취약점 →