// 3 ZERO-DAY · 9 CVE · 6 EXPLOIT · 1 ADVISORY NELLE ULTIME 24H
ZDI-26-656 svela un heap buffer overflow in PAPPL che consente esecuzione remota di codice senza autenticazione quando allow_remote=true. Il bug risiede nel parsing

Il 10 settembre 2026 TrendAI Zero Day Initiative ha reso pubblica l'advisory ZDI-26-656, coordinata con il rilascio di una patch da parte del progetto PAPPL. La vulnerabilità consente esecuzione remota di codice non autenticata su server di stampa che eseguono il framework con l'opzione allow_remote attiva. Il bug risiede nella funzione _papplJobProcessRaster(), nel cuore del parsing dei documenti raster PWG/Apple, ed è causato da una discrepanza elementare tra la dimensione di input controllata dall'attaccante e quella del buffer heap di destinazione.

Punti chiave
  • La vulnerabilità ZDI-26-656 permette RCE remoto non autenticato su installazioni PAPPL con allow_remote=true, secondo l'advisory ZDI.
  • Il bug è un heap-based buffer overflow nella funzione _papplJobProcessRaster(), causato dalla mancata validazione del bounds tra header.cupsWidth e options->header.cupsBytesPerLine.
  • L'indirizzo di memoria 0x7909d5df7d86 ha rilevato l'overflow con AddressSanitizer: scrittura a 0 byte dopo una regione heap di 102 byte.
  • Il percorso di attacco completo attraversa ipp_print_job → _papplJobCopyDocumentData → _papplJobProcessRaster, con conseguenze sia RCE (remoto) che LPE (locale via unix domain socket).

Il meccanismo del bug: quando l'input supera il buffer di output

La funzione _papplJobProcessRaster() legge direttamente dalla connessione client documenti raster in formato PWG/Apple. Quando l'output della stampante è configurato a 1 bit, il loop di dithering itera su header.cupsWidth — valore controllato dall'attaccante e non vincolato — scrivendo il risultato in 'line', un buffer heap allocato con dimensione options->header.cupsBytesPerLine.

La condizione di trigger è lineare: quando cupsWidth supera cupsBytesPerLine, il ciclo for continua a scrivere oltre il confine del buffer. Non esiste bound check intermedio. L'advisory di GitHub Security, riferimento GHSA-p9wg-4p56-7xp6, documenta il percorso esatto: ipp_print_job → _papplJobCopyDocumentData → _papplJobProcessRaster, con _papplClientProcessHTTP e _papplClientRun nel percorso di esecuzione.

"The dithering loop iterates over the input image width (header.cupsWidth, attacker-controlled and unbounded) while writing the packed result into line, a heap buffer sized for the output line (options->header.cupsBytesPerLine)."

L'analisi tecnica include l'output completo di AddressSanitizer: errore di heap-buffer-overflow all'indirizzo 0x7909d5df7d86, corrispondente a 0 byte dopo la regione allocata di 102 byte [0x7909d5df7d20,0x7909d5df7d86). La versione testata dal ricercatore è identificata dal commit 69758fba7ebad98eb9e6113bdcd3fbcc4580fca3.

Da LPE locale a RCE remoto: due superfici di attacco

La stessa falla presenta due facce. In configurazione locale, l'impatto è LPE — Local Privilege Escalation — verso processi PAPPL-based che tipicamente girano come root, raggiungibili via unix domain socket. In configurazione remota, con allow_remote=true, la stessa catena di esecuzione diventa vettore di RCE non autenticato.

La distinzione è rilevante per il rischio effettivo: molte distribuzioni Linux e sistemi embedded configurano PAPPL con accesso remoto per gestione centralizzata delle stampanti. Il protocollo IPP sottostante non richiede autenticazione in questa modalità per il processing dei job di stampa, lasciando aperta la superficie di attacco.

L'advisory ZDI-26-656 specifica esplicitamente: "Authentication is not required to exploit this vulnerability". Il riferimento alla tipica esecuzione come root amplifica le conseguenze di una compromissione riuscita, sebbene il dossier non documenti configurazioni specifiche di deployment.

La disclosure coordinata e la patch

La vulnerabilità è stata segnalata al vendor il 4 agosto 2026. La pubblicazione coordinata è avvenuta il 10 settembre 2026, con il rilascio concomitante di un aggiornamento da parte di PAPPL. Il ricercatore ha operato in forma anonima, con credit attribuito a "Anonymous working with TrendAI Zero Day Initiative".

ZDI applica una deadline standard di circa 120 giorni per la remediation vendor dalla data di report. Nel caso specifico, l'intervallo effettivo è stato di circa 37 giorni, indicando risposta rapida da parte del progetto. Non emergono dettagli sul contenuto specifico della patch nelle fonti disponibili.

Resta non documentato se il CVE sia stato assegnato in via separata o se la pubblicazione avvenga esclusivamente tramite identificatore ZDI. Nessuna fonte nel dossier riporta punteggio CVSS o versioni specifiche di PAPPL interessate oltre al commit testato.

Perche è importante

PAPPL rappresenta la linea evolutiva che sostituisce CUPS in molte distribuzioni Linux moderne e in sistemi embedded per stampanti e MFP. Essendo framework di riferimento per OEM e provider di servizi di stampa cloud, la sua esposizione tipicamente avviene in strati di infrastruttura considerati a basso rischio — "solo stampa" — con conseguente sottodimensionamento dei controlli di segmentazione.

Il dossier non specifica la natura dei dati esposti sui sistemi vulnerabili, né documenta la presenza di exploit in-the-wild. Il brief non elenca misure correttive specifiche al di là dell'aggiornamento rilasciato dal vendor. La distribuzione effettiva della patch nelle diverse distribuzioni Linux non è verificata nelle fonti.

Resta da verificare se le distribuzioni abbiano già integrato l'aggiornamento nei rispettivi repository, e in quali versioni. Non emergono sovrapposizioni infrastrutturali che colleghino questa vulnerabilità ad altri bug del medesimo framework allo stato attuale.

La stampante come superficie d'attacco è un tema ricorrente ma sistematicamente trascurato. La capacità di trasformare un job di stampa in esecuzione di codice tramite un file raster apparentemente banale dimostra che la complessità del parsing rimane un terreno fertile per vulnerabilità di elevata gravità, anche in componenti software moderni e attivamente mantenuti.

Fonti

Le informazioni sono state verificate sulle fonti citate e aggiornate al momento della pubblicazione.

Fonti


Fonti e riferimenti
  1. zerodayinitiative.com
  2. github.com
  3. trendmicro.com