Jenkins dispone di un’interfaccia a riga di comando (CLI) incorporata, per accedere al sistema da uno script o da un ambiente shell. Jenkins utilizza la libreria args4j per analizzare gli argomenti e le opzioni dei comandi sul controller Jenkins durante l’elaborazione dei comandi CLI.
Questo parser di comandi ha una funzionalità che sostituisce un carattere seguito da un percorso di file in un argomento chiamato expandAtFiles. Questa funzionalità è abilitata per impostazione predefinita in Jenkins 2.441 e nelle versioni LTS 2.426.2 e versioni precedenti.
Questo consente agli aggressori di leggere file arbitrari sul file system del controller Jenkins utilizzando la codifica dei caratteri predefinita del processo del controller.
Al momento della pubblicazione di questo avviso, il team di sicurezza di Jenkins ha trovato il modo di leggere le prime tre righe di file nelle recenti versioni di Jenkins senza che fosse installato alcun plug-in e non ha identificato alcun plug-in che potrebbe aumentare il numero di righe.
È anche possibile leggere file binari contenenti chiavi crittografiche utilizzate per varie funzionalità Jenkins, con alcune limitazioni.
Il team di sicurezza Jenkins ha confermato una serie di possibili attacchi oltre alla lettura del contenuto di tutti i file con un percorso noto.