Printing is one of the least governed services in most estates, yet the Windows Print Spooler runs as SYSTEM on almost every Windows host and network printers hold credentials, stored documents and a web management console. PrintNightmare in 2021 showed that a default-on service nobody thought about could hand any authenticated user SYSTEM on a domain controller, and later spooler flaws were used by ransomware crews and by a state actor. This guide covers both halves of the problem: the Windows print stack (spooler, Point and Print, print servers, coercion) and the devices themselves (multifunction printers, their management plane and the service accounts behind scan-to-email and scan-to-folder). It is written for Windows and infrastructure engineers, endpoint teams and security architects who own, or have just discovered they own, the print estate.
Key takeaways
- Disable the spooler wherever nobody prints. Domain controllers and most servers do not need it; CISA ordered it stopped and disabled on federal domain controllers in 2021 and Microsoft still recommends the same.
- Point and Print is the driver trust decision. Restrict driver installation to administrators and never leave the "no warning, no elevation" settings in place, or the PrintNightmare fix does not protect you.
- The spooler is also a coercion primitive. Any authenticated user can make a host with the spooler running authenticate to another machine, which exposes its computer account credential to relay and delegation abuse.
- Multifunction printers are networked computers. They run firmware, store images on disk and expose web, SNMP, FTP and SMB services; harden and patch them like servers, not peripherals.
- Scan-to-email and scan-to-folder accounts are non-human identities. They are often shared, never rotated and over-privileged; inventory, scope and rotate them like any other service account.
Why print is an attack surface
Print risk sits in two planes that are usually owned by different teams.
- The Windows print stack: the Print Spooler service (spoolsv.exe) runs as SYSTEM, loads printer drivers and print processors, and listens for remote procedure calls. It is enabled by default on Windows clients and servers, including domain controllers, unless someone disables it.
- Print servers: central Windows servers that share queues and distribute drivers to clients through Point and Print. They need the spooler, so they must be hardened rather than switched off, and they are a natural driver distribution point for an attacker.
- The devices: multifunction printers (MFPs) and network printers with their own operating system, web console, address book, LDAP or SMTP credentials and often a hard disk holding scanned and printed images. The Common Criteria collaborative Protection Profile for Hardcopy Devices lists the threats as unauthorised access to document and job data, unauthorised access to configuration data, unauthorised firmware installation, network attacks such as eavesdropping and replay, and weak cryptography.
- The identities: service accounts for scan-to-folder (SMB), scan-to-email (SMTP), address book lookup (LDAP) and print management software, plus local administrator accounts on each device.
The Windows Print Spooler: what the exploited flaws teach
CISA's Known Exploited Vulnerabilities (KEV) catalog lists several Print Spooler flaws. They share one root cause: a SYSTEM service that loads code or files on behalf of ordinary users.
| CVE | Type (KEV name) | Added to KEV | Lesson |
|---|---|---|---|
| CVE-2021-1675 | Print Spooler remote code execution | 3 November 2021 | The June 2021 fix did not stop the public PrintNightmare exploits; patch level alone was not a reliable signal. |
| CVE-2021-34527 (PrintNightmare) | Print Spooler remote code execution | 3 November 2021 | Any authenticated user could add a driver and get SYSTEM code execution; KEV records known ransomware use. |
| CVE-2022-21999 | Print Spooler privilege escalation | 25 March 2022 | Local escalation to SYSTEM; KEV records known ransomware use. |
| CVE-2022-22718 | Print Spooler privilege escalation | 19 April 2022 | The spooler kept producing escalation bugs after PrintNightmare. |
| CVE-2022-41073 | Print Spooler privilege escalation | 8 November 2022 | Exploited in the wild at the time of patching. |
| CVE-2022-38028 | Print Spooler privilege escalation | 23 April 2024 | Used by Forest Blizzard's GooseEgg tool, according to Microsoft, which saw the tool in use since at least June 2020. |
CERT/CC's note on PrintNightmare (VU#383432) explains the mechanism at a defensive level: the spooler did not restrict who could add printers and drivers, so an authenticated user calling RpcAddPrinterDriverEx() with a driver on a remote share caused spoolsv.exe to load an arbitrary DLL as SYSTEM, remotely or locally. CERT/CC also notes that the CVE-2021-34527 update does not prevent exploitation where the Point and Print value NoWarningNoElevationOnInstall is set to a non-zero value, which Microsoft treats as vulnerable by design. Microsoft's GooseEgg analysis describes a different route: a modified JavaScript constraints file that the spooler loads and runs with SYSTEM permissions.
The practical lessons: treat every spooler CVE as a priority on servers and privileged hosts, verify configuration as well as patch status, and remove the service where there is no business need. See the Zero-Day and Exploited Vulnerabilities Guide and the Patch Management Guide.
Hardening the spooler and Point and Print
Where the spooler should run
| Host role | Recommended state | Notes |
|---|---|---|
| Domain controllers and AD admin systems | Stopped and disabled | CISA Emergency Directive 21-04 required this on federal DCs; Microsoft Defender for Identity flags DCs with the spooler running. Compensate for print pruning (below). |
| Tier 0 and other privileged servers (PKI, identity sync, backup, hypervisor management) | Stopped and disabled | No legitimate print need; the spooler adds escalation and coercion risk. See the Tiered Administration and Enterprise Access Model Guide. |
| General member servers | Disabled unless a named application prints | Microsoft advises disabling it on all servers that do not require it, after checking dependencies. |
| Print servers | Running, hardened, patched first | Dedicated hosts only; no other roles; restricted administration; drivers from a controlled package set. |
| Workstations | Running, inbound remote printing blocked | Disable the policy "Allow Print Spooler to accept client connections" so the client spooler does not accept remote connections; local and outbound printing still work. |
| Privileged access workstations | Disabled, or printing only to a defined queue | Admins rarely need to print from a PAW. |
Stopping the service is not enough: CISA notes it restarts at reboot unless the startup type is set to Disabled. Use Group Policy (System Services, Print Spooler, Disabled), Intune or configuration management so the state is enforced and reported, not a one-off command.
Point and Print and driver installation settings
The settings below live under Computer Configuration, Administrative Templates, Printers, and the policy registry key HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint.
| Setting | Secure value | Why |
|---|---|---|
| RestrictDriverInstallationToAdministrators (DWORD) | 1 | Only administrators can install or update printer drivers; CISA ED 21-04 Option 3. This overrides the other Point and Print Restrictions settings. |
| Point and Print Restrictions (policy) | Enabled | Enables the warning and elevation behaviour below. |
| When installing drivers for a new connection | Show warning and elevation prompt | Corresponds to NoWarningNoElevationOnInstall = 0. |
| When updating drivers for an existing connection | Show warning and elevation prompt | Corresponds to UpdatePromptSettings = 0. |
| Allow Print Spooler to accept client connections | Disabled on non print servers | Blocks inbound remote use of the client spooler; needs a spooler restart to apply. |
| Host firewall (non print servers) | Block inbound TCP 135, 139 and 445 where the role allows | CERT/CC's limited testing suggested this blocks remote exploitation; it can break server functions, so test. |
Restricting driver installation moves driver deployment to administrators. Plan for it: package approved drivers, publish queues through the print server or a print management tool, and deploy drivers with software distribution rather than letting users pull them from shares.
Windows protected print mode
On current Windows 11 builds, Windows protected print mode (WPP) prints only through the inbox Windows Ready Print stack, which Microsoft describes as designed for Mopria certified printers. Enabling it uninstalls printers that use third-party drivers, removes XPS and fax, and blocks installation of non-compatible printers. Where the fleet is Mopria certified, WPP removes the third-party driver loading that most spooler attacks depend on. Pilot it per site: some scanners lose function and specialist printers may have no compatible path. When WPP is enforced by Group Policy, users cannot turn it off.
Authentication coercion and print pruning
Separately from code execution bugs, the spooler's remote notification interface can be abused for forced authentication (MITRE ATT&CK T1187). Microsoft's Defender for Identity assessment "Disable Print spooler service on domain controllers" explains that any authenticated user can connect to a domain controller's spooler, ask for notifications on print jobs and direct the notification to a system of their choice, including one with unconstrained delegation, which exposes the domain controller's computer account credential. The technique is widely known as PrinterBug. Combined with NTLM relay (T1557.001) or unconstrained delegation, it can lead to domain compromise without any spooler CVE.
- Remove the trigger: disable the spooler on DCs and Tier 0 servers; Microsoft notes any server is potentially at risk.
- Remove the payoff: eliminate unconstrained delegation, enforce SMB signing and LDAP signing and channel binding, and reduce NTLM. See the Kerberos Delegation Security Guide and the Active Directory and Entra ID Hardening Guide.
- Handle print pruning: the DC role adds a spooler thread that prunes stale printer objects published in Active Directory. Microsoft describes disabling the spooler on DCs as a trade-off and suggests pruning stale print queue objects periodically instead, for example with a scheduled, reviewed script run from a management server.
Print processors are also a persistence location: ATT&CK T1547.012 (Print Processors) describes adversaries registering a malicious print processor DLL that the spooler loads at start. Monitor the print processor registry locations and the spool drivers directory.
Hardening network printers and multifunction devices
Treat each device as a small server with a management plane. The table lists common services; disable what the site does not use and restrict the rest to print servers and management hosts.
| Service | Typical port | Recommendation |
|---|---|---|
| Raw print (JetDirect / AppSocket) | TCP 9100 | Allow only from print servers; unauthenticated, so never expose to user VLANs if print goes through a server. |
| IPP / IPPS | TCP 631 | Prefer IPP over TLS; disable plain IPP where clients support IPPS. |
| LPD | TCP 515 | Disable unless a legacy system needs it. |
| Web console | TCP 80 / 443 | HTTPS only, administrator password changed, reachable only from management hosts. |
| SNMP | UDP 161 | SNMPv3 with authentication and privacy; change default community strings; disable v1 and v2c write. |
| Telnet, FTP | TCP 23, 21 | Disable. |
| SMB (scan to folder) | TCP 445 outbound | SMB signing on; SMBv1 off; dedicated scan account (see below). |
| SMTP (scan to email) | TCP 587 or 25 outbound | TLS required; use certificate-based relay or OAuth where the device supports it. |
- Change default credentials: device administrator passwords and SNMP community strings, unique per device and stored in a vault. See the Local Administrator Password Solution (LAPS) Guide for the same principle on Windows.
- Patch firmware: subscribe to vendor advisories, apply firmware through change control, and enable verified (signed) firmware update where available; the HCD protection profile treats unauthorised firmware installation as a core threat.
- Protect stored data: turn on storage encryption and image overwrite so spooled, scanned and temporary data is wiped between jobs; require authentication for stored mailboxes and secure release.
- Segment: place printers on a printer VLAN, allow inbound only from print servers and management hosts, and block printer-initiated traffic to the internet except named vendor or cloud print endpoints. See the IoT Security Guide.
- Dispose of disks: sanitise or destroy device storage at end of lease or life (NIST SP 800-53 MP-6), and write this into lease return contracts.
- Buy assured devices: where procurement allows, prefer devices evaluated against the collaborative Protection Profile for Hardcopy Devices, which covers identification and authentication, audit, trusted communications, storage encryption, image overwrite and trusted update.
Where identity fits: printer-bound service accounts and scan credentials
Every MFP integration uses a credential that nobody logs in with, which makes it a non-human identity. These are among the most neglected NHIs in an estate because they are typed into a device web console once and forgotten.
| Credential | Common failure | Better pattern |
|---|---|---|
| Scan to folder (SMB) account | One domain account used by all devices, with write access to many shares or even Domain Admin rights for convenience | One account per site or device group, write only to a dedicated scan share, interactive logon denied, password vaulted and rotated |
| Scan to email (SMTP) credential | Shared mailbox password with SMTP AUTH and basic authentication | Certificate-based connector relay or OAuth; a send-only identity scoped to approved senders |
| LDAP address book bind account | Privileged bind account over cleartext LDAP on TCP 389 | Read-only account limited to the attributes needed, LDAPS on TCP 636 |
| Print management or secure release service account | Local admin on all print servers and broad directory rights | Least privilege, gMSA where supported, monitored logons |
| Device administrator account | Factory default or one password across the fleet | Unique per device, vaulted, changed on staff departure |
For scan to email in Microsoft 365, Microsoft documents three options: client SMTP submission (smtp.office365.com, port 587, TLS 1.2 or 1.3, a licensed mailbox, with basic authentication scheduled for deprecation and OAuth recommended), SMTP relay through an inbound connector (authenticated by a certificate matching an accepted domain, or a static public IP), and Direct Send (anonymous, to internal recipients only, which Microsoft says most customers do not need). A device credential that can send as any user is a phishing asset; scope it. See the Service Account Security Guide, the Group Managed Service Accounts (gMSA) Guide and the NHI Authentication Guide.
Detection and measurement
| Signal | Source | What it can indicate |
|---|---|---|
| Event ID 316 (printer driver added or updated) | Microsoft-Windows-PrintService/Operational | Driver installation on a host where users should not install drivers; Trend Micro observed it for both successful and failed PrintNightmare attempts |
| Event ID 808 (spooler failed to load a plug-in module) | PrintService log (Operational or Admin) | A malformed or unexpected DLL load, described by Trend Micro as a high-confidence PrintNightmare indicator |
| New DLLs under %windir%\System32\spool\drivers\x64\3 | EDR or file integrity monitoring | Driver drop outside change windows |
| spoolsv.exe spawning rundll32.exe, cmd.exe or powershell.exe | EDR process telemetry, Sysmon, Event ID 4688 | Code execution through the spooler |
| Spooler service state change (System log, Event ID 7040 / 7036) | Windows System log | Someone re-enabled the spooler on a DC or Tier 0 server |
| Interactive or unusual logons by scan accounts | Domain controller security log, identity threat detection | A device credential being reused by a person or attacker |
| Printer outbound connections to unexpected destinations | Firewall and DNS logs | Compromised firmware or misconfigured cloud features |
The PrintService Operational log is disabled by default on many builds; enable it centrally. See the Windows Event Log Guide.
Metrics that show the programme is working:
- Percentage of domain controllers and Tier 0 servers with the spooler disabled (target 100 per cent, verified by configuration reporting, not policy assignment).
- Percentage of Windows hosts with RestrictDriverInstallationToAdministrators = 1 and no non-zero NoWarningNoElevationOnInstall.
- Median days to deploy spooler security updates to print servers, and to apply MFP firmware updates.
- Percentage of printers with default credentials changed, Telnet and FTP disabled and SNMPv1/v2c write disabled.
- Number of printer service accounts with an owner, an inventory entry and a rotation date inside policy.
- Count of driver installation events (316) outside approved change windows.
Rolling it out
- Inventory: list hosts with the spooler running by role, print servers, queues, drivers, devices (model, firmware, services enabled) and every credential configured on a device. See the Asset Inventory and CMDB Security Guide.
- Quick wins first: disable the spooler on domain controllers and Tier 0 servers, with a periodic print pruning task to compensate; patch print servers.
- Point and Print in a pilot ring: apply RestrictDriverInstallationToAdministrators and inbound client connection blocking to IT, then a business pilot, while pre-deploying approved drivers. Watch help desk tickets and Event ID 316.
- Servers: disable the spooler on member servers without a named print dependency; record exceptions with an owner.
- Devices: move printers to a printer VLAN, restrict management to admin hosts, change defaults, turn off unused services and update firmware, one site at a time.
- Credentials: replace shared scan accounts with scoped ones, move scan to email off basic authentication, vault and rotate.
- Rollback: every change is a policy or service setting; keep the previous GPO version, re-enable the spooler on a single host through an exception group if a workflow breaks, and log the exception rather than reverting the baseline.
Small versus large organisations: a small office with direct IP printing and no print server can disable inbound spooler connections everywhere, use vendor driverless printing and focus on device defaults and scan credentials. A large enterprise usually needs dedicated print servers or a print management platform, which concentrates risk: those servers then deserve server-tier hardening, fast patching and restricted administration.
Framework mapping
| Framework | Reference | How it applies to print |
|---|---|---|
| NIST SP 800-53 Rev. 5 | CM-7 Least Functionality | Disable the spooler and printer services that are not required |
| NIST SP 800-53 Rev. 5 | CM-6 Configuration Settings; SI-2 Flaw Remediation | Point and Print baselines; spooler and firmware patching |
| NIST SP 800-53 Rev. 5 | PE-5 Access Control for Output Devices | Secure release, console locks, device placement |
| NIST SP 800-53 Rev. 5 | IA-5 Authenticator Management | Scan, LDAP, SMTP and device admin credentials |
| NIST SP 800-53 Rev. 5 | SC-8 Transmission Confidentiality and Integrity; SC-28 Protection of Information at Rest; MP-6 Media Sanitization | IPPS, LDAPS, SMTP TLS; disk encryption; disposal |
| NIST CSF 2.0 | PR.PS-01, PR.PS-02, PR.AA-01 | Configuration management, software maintenance, credential management for services and hardware |
| MITRE ATT&CK v20 | T1068, T1210, T1187, T1557.001, T1547.012 | Spooler escalation, remote exploitation, coercion, relay, print processor persistence |
Common failure patterns
- Patched but still vulnerable: the PrintNightmare update installed while NoWarningNoElevationOnInstall stays at 1 from an old convenience GPO, which CERT/CC says leaves the host exploitable.
- Spooler re-enabled by an image or a vendor installer: DCs rebuilt from a template, or an application install that turns the service back on, with nobody alerting on the service state change.
- Disabling the spooler on DCs without pruning: stale printer objects accumulate in AD and someone re-enables the spooler to fix it.
- The all-powerful scan account: a scan-to-folder account in Domain Admins or with write access to every share, its password visible to anyone with device admin access, unchanged for years.
- Printers on the user VLAN with factory settings: default admin password, Telnet, FTP and SNMP write enabled, firmware years old.
- Leased devices returned with disks intact: scanned contracts, HR forms and address books leave with the hardware.
Practitioner checklist
- Stop and disable the Print Spooler on all domain controllers and Tier 0 servers, and schedule print pruning instead.
- Disable the spooler on every server without a documented print requirement, enforced by policy and reported.
- Set RestrictDriverInstallationToAdministrators to 1 and remove any non-zero NoWarningNoElevationOnInstall or UpdatePromptSettings values.
- Disable "Allow Print Spooler to accept client connections" on everything that is not a print server.
- Treat print servers as hardened infrastructure: single role, restricted admins, patched first.
- Remove unconstrained delegation and enforce SMB and LDAP signing to blunt spooler coercion.
- Put printers on a dedicated VLAN; HTTPS, IPPS and SNMPv3 only; Telnet, FTP and LPD off; defaults changed; firmware current.
- Inventory every printer credential, give each an owner, scope it to least privilege, vault it and rotate it.
- Enable the PrintService Operational log and alert on Event IDs 316 and 808 and on spooler child processes.
- Write disk sanitisation into printer lease and disposal processes.
Standards and references
- CISA: Emergency Directive 21-04, Mitigate Windows Print Spooler Service Vulnerability
- CERT/CC: VU#383432 Microsoft Windows Print Spooler allows for RCE via AddPrinterDriverEx()
- Microsoft Learn: Security assessment, Disable Print spooler service on domain controllers
- Microsoft Security: Analyzing Forest Blizzard's custom post-compromise tool for exploiting CVE-2022-38028
- Microsoft Learn: Windows protected print mode
- Microsoft Learn: How to set up a multifunction device or application to send email using Microsoft 365
- Common Criteria: collaborative Protection Profile for Hardcopy Devices
- NIST: SP 800-53 Rev. 5
Related NHI Mgmt Group resources: Windows Endpoint Hardening Guide · Lateral Movement Guide · Service Account Security Guide · Endpoint Security Guide