LPD crash dopo gli update di luglio 2024 su Windows Server: cause, workaround, KIR e patch definitiva di agosto

LPD che va in crash dopo gli aggiornamenti cumulativi di luglio 2024? Ecco come riconoscere il problema, mettere in sicurezza l’ambiente, applicare i workaround corretti e arrivare alla correzione permanente rilasciata ad agosto.

Indice

Panoramica del problema

Con i cumulativi di luglio 2024 che includono la mitigazione di sicurezza per CVE‑2024‑38027, diversi amministratori hanno riscontrato l’arresto del Line Printer Daemon su Windows. Il servizio LPDSVC smette di funzionare o va in crash all’avvio, bloccando i flussi di stampa LPD tipici in ambienti SAP e su print‑server legacy. In alcuni casi stampa solo il primo job, poi la coda si ferma finché il servizio non viene riavviato.

Sistemi interessati

Gli incidenti confermati si concentrano sulle piattaforme seguenti, in relazione al cumulativo di luglio.

SistemaAggiornamento incriminatoBuild dopo luglio
Windows Server 2016KB504043414393.7159
Windows Server 2019KB504043017763.6054
Windows Server 2022KB504043720348.2582
Windows 11 22H2/23H2KB5040427varie
(Nessun caso confermato su Windows Server 2012/2012 R2 o 2008 R2)

Sintomi e segnali da monitorare

  • Arresto del servizio LPDSVC gestito da Service Control Manager con Event ID 7031/7034.
  • Crash di svchost.exe_LPDSVC o PrintIsolationHost.exe con Exception code 0xc0000374 o 0xc0000005 in ntdll.dll.
  • Solo il primo job viene processato; quelli successivi falliscono finché il servizio non viene riavviato manualmente o automaticamente.

Dove guardare nei log

  • Event ViewerWindows LogsSystem: filtra gli eventi 7031 e 7034 relativi a LPD Service.
  • Event ViewerApplications and Services LogsMicrosoftWindowsPrintServiceAdmin/Operational per eventuali errori di pipeline o sandbox di stampa (PrintIsolationHost.exe).
  • WER per i dump applicativi: verifica la presenza di AppCrash su svchost.exe o PrintIsolationHost.exe.

Mitigazioni immediate

Per ripristinare la continuità operativa nell’attesa della correzione permanente, ecco i principali workaround con pro e contro.

ApproccioDettagliProContro
Disinstallare il cumulativo di luglioRimuovere KB5040434/KB5040430/KB5040437Ripristino immediato del servizioRiapre la vulnerabilità corretta dal patch; rischio di reinstallazione automatica
Sostituire LPDsvc.dllPrelevare la DLL da una macchina non aggiornata e copiarla sul serverSemplice e rapidoOperazione manuale, potenziali incompatibilità e ripristino da protezioni di sistema
Impostare il ripristino del servizioIn ServiziLPD ServiceRipristino: impostare Riavvia il servizio su tutti i tentativiContinuità operativa con downtime minimoNon elimina la causa; log rumorosi
Script e utilità di pianificazioneScript che verifica e riavvia LPD ogni intervalloAutomazione sempliceSoluzione tampone
Known Issue RollbackMSI dedicati per 2016/2019/2022, più GPO per disattivare la modifica; riavvio richiestoNon serve rimuovere il cumulativo; preserva altre correzioni di sicurezzaApplicazione mirata su ogni host o via dominio; inizialmente in anteprima

Comandi utili per la disinstallazione

Se non puoi applicare subito la correzione definitiva, puoi rimuovere il cumulativo specifico. Ricorda di gestire l’eventuale reinstallazione automatica tramite WSUS o criteri di aggiornamento.

# Verifica rapido delle hotfix presenti
Get-HotFix | Where-Object {$_.HotFixID -in 'KB5040434','KB5040430','KB5040437','KB5040427'} | Format-Table -Auto

Disinstallazione guidata
wusa /uninstall /kb:5040434 /quiet /norestart
wusa /uninstall /kb:5040430 /quiet /norestart
wusa /uninstall /kb:5040437 /quiet /norestart
wusa /uninstall /kb:5040427 /quiet /norestart

Per scenari avanzati è possibile usare DISM per rimuovere il pacchetto specifico:

# Elenco dei pacchetti installati, utile per ottenere il nome esatto del pacchetto Rollup
dism /online /get-packages /format:table

Rimozione del pacchetto per nome (esempio, sostituire con il nome reale)

dism /online /remove-package /packagename\:Package\for\RollupFix~31bf3856ad364e35~amd64~~17763.6054.1.9 /quiet /norestart 

Impostazione del ripristino automatico del servizio

Configurando azioni di ripristino, il servizio si rialza automaticamente in pochi secondi, consentendo di processare i job in coda mentre si prepara la correzione permanente.

sc.exe failure "LPDSVC" actions= restart/60000/restart/60000/restart/60000 reset= 60
sc.exe failureflag "LPDSVC" 1

Puoi anche impostare il ritardo di avvio per lo spooler se noti dipendenze critiche:

sc.exe config "Spooler" start= delayed-auto

Script di verifica e riavvio

Uno script best effort per mantenere operativo LPD:

$svc = 'LPDSVC'
while ($true) {
  try {
    $s = Get-Service -Name $svc -ErrorAction Stop
    if ($s.Status -ne 'Running') {
      Restart-Service -Name $svc -Force -ErrorAction Stop
      Start-Sleep -Seconds 5
    }
  } catch {
    # logging minimale su Application
    Write-EventLog -LogName Application -Source 'LPDMonitor' -EventId 1000 -EntryType Warning -Message $_.Exception.Message -ErrorAction SilentlyContinue
  }
  Start-Sleep -Seconds 15
}

Programma lo script come Attività pianificata in esecuzione con privilegi elevati, All’avvio, con riavvio su errore.

Uso del known issue rollback

I pacchetti KIR dedicati sono disponibili per le edizioni server recenti. Dopo l’installazione del relativo MSI, compare un criterio di gruppo che consente di disattivare la modifica responsabile del problema in LPD. Imposta il nuovo criterio su Disabled, aggiorna i criteri (gpupdate /force) e riavvia il server. Questo approccio è preferibile alla disinstallazione poiché mantiene tutte le altre correzioni di sicurezza del cumulativo di luglio.

Correzione permanente

Microsoft ha pubblicato una correzione generale nel cumulativo di agosto 2024. Dopo averla applicata, il servizio LPD torna stabile nella maggior parte degli ambienti e i workaround possono essere rimossi.

SistemaCumulativo di agosto che correggeNote
Windows Server 2016KB5041773Confermata la ripresa della stampa LPD
Windows Server 2019KB5041578 (Preview) confluito nei cumulativi successiviAlcuni casi isolati di crash di PrintIsolationHost.exe ancora in analisi
Windows Server 2022KB5041160Nessun nuovo crash segnalato

Dopo l’installazione della patch di agosto, rimuovi eventuali KIR e riporta i GPO allo stato Non configurato, poi verifica la piena stabilità del servizio.

Piano operativo consigliato

  1. Aggiorna i server interessati ai cumulativi di agosto 2024 o successivi, partendo da un gruppo pilota.
  2. Se l’update non è immediatamente distribuibile, applica il KIR corrispondente oppure, in alternativa, valuta la disinstallazione mirata del cumulativo di luglio mantenendo la componente di stampa sotto controllo.
  3. Evita la reinstallazione automatica del cumulativo di luglio: gestisci l’approvazione WSUS, crea gruppi dedicati, valuta una pausa temporanea degli update per i print‑server.
  4. Monitora i log per eventuali nuovi crash di PrintIsolationHost.exe su Server 2019. Se persistono, apri un ticket citando l’incidente LPD legato a CVE‑2024‑38027 e allega i dump.
  5. Definisci un percorso di migrazione dal protocollo LPD verso IPP/SMB o altre soluzioni moderne e supportate, con progetto dedicato.

Verifica tecnica e test end‑to‑end

Prima di considerare chiuso l’incidente, esegui una batteria di verifiche.

Connettività e servizio

# Stato servizio
Get-Service LPDSVC

Reachability TCP della porta 515 dal server locale

Test-NetConnection -ComputerName localhost -Port 515

Reachability TCP dal client

Test-NetConnection -ComputerName \ -Port 515 

Test funzionale con client LPR

Abilita il client LPR sul sistema di test e invia un file di prova:

lpr -S <printserver> -P <queue> C:\temp\prova.txt

Conferma che il primo, il secondo e i job successivi vengano processati senza interruzioni. Verifica latency e tempi di spool.

Controllo versione della libreria

(Get-Item "C:\Windows\System32\lpdsvc.dll").VersionInfo | 
  Format-List FileVersion, ProductVersion, OriginalFilename

Gestione via wsus e criterio di ripristino

Per evitare reinstallazioni involontarie del cumulativo di luglio:

  • Separa i print‑server in un target group WSUS dedicato e sospendi l’approvazione del pacchetto specifico.
  • Applica un criterio di pausa aggior­namenti solo per i server coinvolti, con data di scadenza esplicita.
  • Usa la service window per distribuire il cumulativo di agosto in modo controllato.

Considerazioni di sicurezza

La rimozione del cumulativo di luglio ripristina la superficie di attacco legata a CVE‑2024‑38027. Il KIR è preferibile perché disattiva selettivamente la modifica regressiva in LPD mantenendo le altre mitigazioni. In ogni caso, riduci al minimo la finestra d’esposizione e pianifica l’aggiornamento ad agosto o successivi quanto prima.

Approfondimento su sap e ambienti legacy

Molti scenari SAP usano ancora code LPD su porta 515 con device type personalizzati. In questi ambienti:

  • Conferma i parametri di coda, nomi e mapping dei formati; verifica la presenza di soft font o macro PCL.
  • Valuta l’uso di SAPSprint o l’esposizione via SMB/IPP come percorso di transizione.
  • Pianifica test multipli su job di grandi dimensioni e con allegati grafici complessi.

Checklist di risoluzione

  • Identifica i server con il cumulativo di luglio installato e LPD abilitato.
  • Applica KIR o disinstalla il cumulativo solo dove strettamente necessario.
  • Imposta il ripristino automatico su LPDSVC per evitare downtime prolungati.
  • Aggiorna con il cumulativo di agosto e verifica la stabilità con test funzionali ripetuti.
  • Rimuovi KIR e ripristina i criteri a Non configurato dopo l’aggiornamento.
  • Documenta la post‑mortem e avvia il percorso di migrazione da LPD.

Raccolta dati e automazione

Script di inventario per individuare rapidamente host esposti e stato del servizio:

$servers = Get-Content .\printservers.txt
$report = foreach ($s in $servers) {
  try {
    $hotfix = Invoke-Command -ComputerName $s -ScriptBlock {
      Get-HotFix | Where-Object {$_.HotFixID -match 'KB504043[0-9]'}
    }
    $svc = Invoke-Command -ComputerName $s -ScriptBlock {
      Get-Service -Name LPDSVC -ErrorAction SilentlyContinue
    }
    [PSCustomObject]@{
      Server = $s
      KbLuglio = ($hotfix | Select-Object -ExpandProperty HotFixID) -join ','
      LpdStatus = $svc.Status
      LastBoot = (Get-CimInstance Win32_OperatingSystem).LastBootUpTime
    }
  } catch {
    [PSCustomObject]@{ Server=$s; KbLuglio='N/D'; LpdStatus='N/D'; LastBoot='N/D' }
  }
}
$report | Export-Csv .\LPD_Audit.csv -NoTypeInformation -Encoding UTF8

Diagnostica avanzata

  • Abilita il canale Operational di PrintService per log estesi: wevtutil sl Microsoft-Windows-PrintService/Operational /e:true.
  • Se i crash persistono su Server 2019, raccogli Memory Dump su crash del processo e allega a una richiesta di supporto.
  • Verifica le dipendenze con sc qc LPDSVC e la configurazione di isolamento driver di stampa.

Gestione del cambio e comunicazione

Quando ripristini servizi di stampa condivisi, comunica le finestre di manutenzione e le limitazioni temporanee. Modello sintetico di comunicazione:

Oggetto: Manutenzione straordinaria stampa LPD
Quando: data e ora locale
Impatto: brevi interruzioni su code LPD SAP e legacy
Dettagli: applicazione correzione cumulativo di agosto e rimozione workaround temporanei
Azione utente: re‑inviare i job falliti dopo la finestra

Percorso di migrazione

Il protocollo LPD è storico e minimale: nessuna negoziazione avanzata, poca osservabilità, integrazione limitata con gli stack moderni. Per ridurre il rischio operativo e migliorare la sicurezza:

  • Prediligi IPP/IPPS con autenticazione e crittografia end‑to‑end.
  • Standardizza su condivisioni SMB con driver Type 4 o modelli driverless laddove possibile.
  • Introdurre monitoraggio di coda, metriche e alert in tempo reale, abbandonando polling manuali.

Domande frequenti

Perché alcuni host stampano il primo job e poi si fermano?
La regressione introdotta con la mitigazione di luglio può inizializzare correttamente la pipeline solo al primo invio; la successiva allocazione di risorse causa errori in ntdll.dll e termina il servizio.

Conviene sostituire la DLL come soluzione stabile?
No. È un ripiego utile per ripristinare in emergenza ma può entrare in conflitto con file protetti e futuri aggiornamenti. Preferisci KIR o direttamente la patch di agosto.

Il KIR riduce la postura di sicurezza?
Il KIR disattiva la specifica modifica regressiva in LPD lasciando attive le altre correzioni del cumulativo di luglio. Resta comunque consigliato aggiornare ad agosto o successivi quanto prima.

Cosa fare se i crash di PrintIsolationHost.exe persistono su Server 2019?
Monitora i log PrintService, raccogli dump, verifica driver non conformi e apri una richiesta di supporto allegando l’evidenza.

Timeline dell’incidente

  • Patch Tuesday di luglio 2024: introduzione della mitigazione per CVE‑2024‑38027 e comparsa di crash su LPD in vari ambienti.
  • Rilascio dei KIR MSI per le edizioni server supportate, con GPO per disattivare la modifica regressiva.
  • Patch Tuesday di agosto 2024: cumulativi che rimuovono la regressione e stabilizzano il servizio LPD nella maggior parte dei casi.

Come rimuovere i workaround dopo l’aggiornamento

  1. Installa i cumulativi di agosto o successivi.
  2. Riporta a Non configurato i GPO collegati al KIR e disinstalla gli MSI KIR.
  3. Ripristina l’eventuale LPDsvc.dll originale se era stato sostituito.
  4. Reimposta le azioni di ripristino del servizio ai valori standard se erano state irrigidite.
  5. Esegui test funzionali ripetuti e chiudi formalmente l’incidente.

Riepilogo esecutivo

La regressione introdotta dai cumulativi di luglio 2024 ha impattato il servizio LPD su diverse versioni di Windows Server e su alcuni client. I workaround disponibili consentono di limitare il disservizio, ma la correzione definitiva è inclusa nei cumulativi di agosto 2024. Dopo l’aggiornamento, rimuovi i workaround, monitora eventuali anomalie residue su Server 2019 e pianifica una migrazione da LPD verso protocolli moderni come IPP o SMB.


Dati tecnici riassuntivi

Indicatori principali

  • Eventi Service Control Manager 7031/7034 su LPDSVC
  • Crash svchost.exe_LPDSVC o PrintIsolationHost.exe con eccezioni 0xc0000374/0xc0000005
  • Impatto con cumulativi KB5040434, KB5040430, KB5040437 e KB5040427
  • Correzioni nei cumulativi KB5041773, KB5041578 (poi confluita) e KB5041160

Comandi di controllo rapido

# Elenco aggiornamenti legati all'incidente
Get-HotFix | Where-Object {$_.HotFixID -match 'KB50404(27|30|34|37)|KB5041(160|773|578)'} |
  Select-Object HotFixID, InstalledOn | Sort-Object InstalledOn

Stato del servizio e dipendenze

sc.exe queryex LPDSVC
sc.exe qc LPDSVC 

Conclusione

Con la patch di agosto la maggior parte degli ambienti ha ripreso a stampare senza interventi manuali; i workaround introdotti in emergenza possono ora essere rimossi in sicurezza. Mantieni però un monitoraggio attivo, soprattutto su Windows Server 2019, e approfitta dell’occasione per pianificare l’uscita definitiva dal protocollo LPD in favore di tecnologie più sicure e osservabili.

Azioni rapide consigliate:

  • Aggiorna a un cumulativo di agosto 2024 o successivo.
  • Se necessario, applica il KIR idoneo e imposta il ripristino su LPDSVC.
  • Blocca la reinstallazione del cumulativo di luglio sugli host di stampa finché non hai completato la validazione.
  • Rimuovi KIR e ripristina le policy dopo la correzione.
  • Inizia la migrazione da LPD verso IPP/SMB.

Nota di responsabilità: le procedure indicate sono pensate per ambienti enterprise e presuppongono change management, finestre di manutenzione e test pilota. Adatta i passaggi alla tua infrastruttura e conserva sempre un piano di rollback.

Indice