
PoC di laboratorio riproducibili per automountd su macOS e analisi guidata dal codice sorgente per CVE-2026-84568 (path traversal nel fstype che porta a esecuzione di codice come root) e CVE-2026-84570 (bypass di Gatekeeper).
Un'analisi pubblica e guidata dal codice sorgente di CVE-2026-84568 e CVE-2026-84570, con prove reversibili per l'input LDAP/OD, la distribuzione NFS, il dispatch dell'helper, il comportamento di Gatekeeper e il confine del device-node.
Stato di pubblicazione — ottobre 2026. Apple ha corretto entrambe le vulnerabilità il 14 settembre 2026 in macOS Sequoia 15.8, macOS Tahoe 26.7 e macOS Golden Gate 27. Il reproducer in questo repository è destinato esclusivamente a un laboratorio isolato e autorizzato contenente un Mac intenzionalmente non aggiornato.
Stato di validazione. I validator on-host inclusi sono stati eseguiti con successo su un host di laboratorio macOS 26.4 (build 25E246, arm64) affetto. Il test di dispatch dell'helper, la catena completa di distribuzione NFS su loopback, la sonda pathname/credenziali, il differenziale Gatekeeper e il test del confine nodev/device hanno tutti restituito PASS. Nel test Gatekeeper, le valutazioni erano abilitate; l'app era strutturalmente valida ma firmata ad-hoc senza Team ID; la valutazione esplicita tramite spctl l'ha rifiutata; il mount NFS non aveva né noexec né quarantena; e LaunchServices l'ha eseguita senza alcuna fase di approvazione. Ogni validator ha inoltre restituito cleanup_result=PASS, e un controllo indipendente post-esecuzione ha confermato che i record della directory temporanea, i mount, i file e le modifiche a /etc/exports erano stati rimossi o ripristinati. L'harness Python è stato testato separatamente contro un server OpenLDAP temporaneo con il reale schema di attributi automount/Apple: sia la rotta automountKey sia quella apple-user-homeurl hanno superato i controlli di creazione/rilettura/timeout/ripristino. Queste osservazioni caratterizzano quella build affetta e l'harness incluso; non sono affermazioni sulle versioni corrette.
Riconoscimento della ricerca: Mr.Gedik (@h4ck2s3c); CVE-2026-84568 è attribuita pubblicamente a Mr.Gedik, e CVE-2026-84570 a Mr.Gedik, negli avvisi di Apple.
Questa è la versione pubblica della ricerca. Contiene solo informazioni supportate dagli avvisi pubblicati da Apple, dal codice open-source di Apple e dal materiale di laboratorio riproducibile incluso. Identificatori di casi privati, comunicazioni private, artefatti non pubblici e ricerche non correlate sono intenzionalmente esclusi.
Le due CVE condividono una superficie di attacco ma rappresentano cause profonde indipendenti:
| CVE | Impatto pubblicato da Apple | Confine lato client |
|---|---|---|
| CVE-2026-84568 | Un attaccante di una directory di rete può eseguire codice arbitrario con privilegi di root | Un fstype controllato dalla directory ha influenzato il percorso dell'eseguibile selezionato da automountd |
| CVE-2026-84570 | Un'app può aggirare i controlli di Gatekeeper | Un automount NFS controllato dalla directory ha superato sia il confine della provenienza dell'applicazione sia quello della policy del device-node |
Apple elenca entrambi i problemi sotto autofs nel contenuto di sicurezza per macOS Golden Gate 27, macOS Tahoe 26.7 e macOS Sequoia 15.8.
Le mappe automount di macOS sono dati di controllo eseguibili. Una riga di mappa seleziona un tipo di filesystem, fornisce opzioni di mount, identifica una risorsa e infine influenza il dispatch privilegiato del mount. Prima degli aggiornamenti di settembre 2026, due fallimenti di validazione hanno permesso a dati forniti dalla directory di superare i confini di sicurezza sul client:
fstype appositamente costruito poteva sfuggire al namespace previsto degli helper /sbin/mount_<type> e risolversi in un eseguibile distribuito tramite NFS.nodev attesa. Il mount di rete risultante era inoltre privo di policy noexec o di quarantena, così un'app che aveva fallito una valutazione esplicita di Gatekeeper poteva comunque essere avviata da esso.Queste sono osservazioni correlate, non meccanismi intercambiabili. nodev controlla se i vnode dei dispositivi speciali vengono interpretati; non implementa Gatekeeper. noexec controlla l'esecuzione al confine del VFS. Gatekeeper valuta separatamente la fiducia e la provenienza dell'applicazione. Il validator di CVE-2026-84570 riporta ciascun confine in modo indipendente, così che un flag nodev mancante non venga mai presentato da solo come prova di un bypass di Gatekeeper.
L'accesso in scrittura alla directory è un prerequisito d'ingresso, non l'autorità risultante. Modificare un attributo di automount o della home utente non equivale a scegliere un percorso eseguibile su ogni Mac che lo utilizza né a indebolire la policy del kernel di un mount NFS. Tali trasformazioni avvengono sul client.
stat() diretta da parte di un account non privilegiato ha restituito ENOTDIR; un risultato di realpath() o stat() non privilegiato non è quindi un proxy valido per automountd in questo caso.nodev dimostrato per CVE-2026-84570. La catena completa di 84568 è riuscita mentre il suo mount di consegna manteneva nodev e nosuid.La configurazione predefinita di automount espone input basati su directory sotto /home:
/etc/auto_master: /home auto_home -nobrowse,hidefromfinder
/etc/auto_home: +auto_home
/etc/auto_home: +/usr/libexec/od_user_homes
La prima inclusione risolve i record di automount. L'inclusione della mappa eseguibile invoca od_user_homes, che risolve le informazioni sulla home dell'utente ed emette una riga di mappa. Entrambe le rotte convergono sul parser di automount.
Il harness pubblico mantiene entrambe le forme di directory esplicite: