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.
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.
Sistema | Aggiornamento incriminato | Build dopo luglio |
---|---|---|
Windows Server 2016 | KB5040434 | 14393.7159 |
Windows Server 2019 | KB5040430 | 17763.6054 |
Windows Server 2022 | KB5040437 | 20348.2582 |
Windows 11 22H2/23H2 | KB5040427 | varie |
(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
oPrintIsolationHost.exe
con Exception code 0xc0000374 o 0xc0000005 inntdll.dll
. - Solo il primo job viene processato; quelli successivi falliscono finché il servizio non viene riavviato manualmente o automaticamente.
Dove guardare nei log
- Event Viewer → Windows Logs → System: filtra gli eventi 7031 e 7034 relativi a LPD Service.
- Event Viewer → Applications and Services Logs → Microsoft → Windows → PrintService → Admin/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
oPrintIsolationHost.exe
.
Mitigazioni immediate
Per ripristinare la continuità operativa nell’attesa della correzione permanente, ecco i principali workaround con pro e contro.
Approccio | Dettagli | Pro | Contro |
---|---|---|---|
Disinstallare il cumulativo di luglio | Rimuovere KB5040434/KB5040430/KB5040437 | Ripristino immediato del servizio | Riapre la vulnerabilità corretta dal patch; rischio di reinstallazione automatica |
Sostituire LPDsvc.dll | Prelevare la DLL da una macchina non aggiornata e copiarla sul server | Semplice e rapido | Operazione manuale, potenziali incompatibilità e ripristino da protezioni di sistema |
Impostare il ripristino del servizio | In Servizi → LPD Service → Ripristino: impostare Riavvia il servizio su tutti i tentativi | Continuità operativa con downtime minimo | Non elimina la causa; log rumorosi |
Script e utilità di pianificazione | Script che verifica e riavvia LPD ogni intervallo | Automazione semplice | Soluzione tampone |
Known Issue Rollback | MSI dedicati per 2016/2019/2022, più GPO per disattivare la modifica; riavvio richiesto | Non serve rimuovere il cumulativo; preserva altre correzioni di sicurezza | Applicazione 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.
Sistema | Cumulativo di agosto che corregge | Note |
---|---|---|
Windows Server 2016 | KB5041773 | Confermata la ripresa della stampa LPD |
Windows Server 2019 | KB5041578 (Preview) confluito nei cumulativi successivi | Alcuni casi isolati di crash di PrintIsolationHost.exe ancora in analisi |
Windows Server 2022 | KB5041160 | Nessun 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
- Aggiorna i server interessati ai cumulativi di agosto 2024 o successivi, partendo da un gruppo pilota.
- 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.
- 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.
- 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. - 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 aggiornamenti 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
- Installa i cumulativi di agosto o successivi.
- Riporta a Non configurato i GPO collegati al KIR e disinstalla gli MSI KIR.
- Ripristina l’eventuale
LPDsvc.dll
originale se era stato sostituito. - Reimposta le azioni di ripristino del servizio ai valori standard se erano state irrigidite.
- 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
oPrintIsolationHost.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.