
Proof-of-concept per CVE-2026-4480, una vulnerabilità di command injection nel nome del lavoro di stampa di Samba. Dimostra lo sfruttamento tramite nomi di lavori di stampa dannosi e include indicazioni di rilevamento e mitigazione.
CVE-2026-4480 è una vulnerabilità di iniezione di comandi che colpisce alcune configurazioni di stampa di Samba che utilizzano comandi di stampa esterni.
La vulnerabilità esiste perché Samba inserisce metadati del lavoro di stampa controllati dall'utente in un comando shell senza eseguire correttamente l'escape dei metacaratteri della shell.
In configurazioni specifiche, un attaccante può fornire un nome di lavoro di stampa malevolo che causa l'esecuzione di comandi arbitrari sul server.
Il problema è particolarmente pericoloso perché alcune condivisioni di stampa consentono l'accesso come ospite, permettendo lo sfruttamento senza autenticazione.
Samba supporta diversi back-end di stampa. Un'opzione legacy, comunemente chiamata stampa in stile sysv, esegue un comando esterno al completamento di un lavoro di stampa.
Gli amministratori possono configurare comandi usando macro di sostituzione come:
print command = /usr/local/bin/print-helper %s %J
Dove:
%s → Percorso del file di spool%J → Nome del lavoro di stampa fornito dal clientPrima della correzione, il valore %J subiva una sanificazione minima prima di essere inserito in un comando eseguito attraverso la shell di sistema.
Poiché i metacaratteri della shell rimanevano intatti, nomi di lavoro appositamente creati potevano alterare il flusso di comandi previsto ed eseguire istruzioni controllate dall'attaccante.
Un attacco tipico consiste in quattro fasi:
Se il comando di stampa fa riferimento a %J, il payload dell'attaccante diventa parte del comando shell e viene eseguito con i permessi del processo di stampa di Samba.
Non tutte le installazioni di Samba sono vulnerabili.
Le seguenti condizioni devono generalmente essere vere:
%J.Le distribuzioni moderne che utilizzano la stampa basata su CUPS non espongono questo percorso di attacco perché i lavori vengono passati attraverso l'API di CUPS invece di un comando shell.
Uno sfruttamento riuscito può permettere a un attaccante di:
La gravità dipende fortemente dai permessi del processo di stampa e dalla configurazione del sistema circostante.
Le versioni interessate includono versioni precedenti a:
I sistemi che utilizzano versioni successive non sono interessati da questo problema.
Le mitigazioni raccomandate includono:
%J dai comandi di stampa se non è necessario.printing = cups dove possibile.I difensori dovrebbero indagare su:
smbd che genera interpreti di shell inaspettatamentesh
bash
python
perl
nc
curl
wget
Il monitoraggio della creazione di processi dal servizio Samba può aiutare a identificare tentativi di sfruttamento.
Questo repository è destinato esclusivamente alla ricerca educativa e autorizzata sulla sicurezza.
Non utilizzare questo codice contro sistemi, reti o servizi senza esplicita autorizzazione del proprietario. L'accesso non autorizzato ai sistemi informatici è illegale e non etico.
Eseguire sempre test in ambienti di laboratorio isolati o piattaforme specificamente progettate per la formazione sulla sicurezza.