In FreeBSD è stata rimossa una vulnerabilità (CVE-2026-4747) che consente, mediante l'invio di pacchetti di rete a un server NFS, di ottenere l'esecuzione di codice a livello di kernel. Il problema si manifesta nell'uso del modulo kgssapi.ko, che implementa l'API RPCSEC_GSS a livello di kernel. Oltre al kernel, la vulnerabilità colpisce le applicazioni nello spazio utente che utilizzano la libreria librpcgss_sec e svolgono funzioni di server RPC. Applicazioni simili, che non fanno parte del sistema di base FreeBSD, possono anch'esse essere attaccate tramite l'invio di pacchetti di rete.
Il problema è presente nell'implementazione dell'API GSS (Generic Security Services), che consente di stabilire canali di comunicazione autenticati e sicuri con server. L'RPCSEC_GSS è utilizzato nei server NFS per proteggere l'accesso a Sun RPC utilizzando l'autenticazione basata su Kerberos e la crittografia del traffico tra server e client. Il problema è causato dal fatto che durante la verifica della firma, i dati del pacchetto vengono copiati in un buffer fisso senza adeguati controlli di corrispondenza delle dimensioni. L'errore si manifesta prima della fase di autenticazione, ma richiede la capacità di inviare pacchetti di rete al server NFS. È disponibile un exploit che consente di eseguire remotamente /bin/sh con privilegi di root.
La vulnerabilità è stata scoperta da un dipendente dell'azienda Anthropic utilizzando l'assistente AI Claude. È notevole che i ricercatori esterni del team Calif abbiano utilizzato Claude per scrivere un exploit funzionante, fornendo come informazione solo il rapporto generale sulla vulnerabilità pubblicato dal progetto FreeBSD. Oltre all'utilizzo diretto della vulnerabilità, il modello AI ha avviato una macchina virtuale con una configurazione vulnerabile, impostato il debug remoto e la lettura dei dump di crash del kernel, e organizzato nell'exploit l'esecuzione di /bin/sh, dopo aver ottenuto l'esecuzione di codice a livello di kernel. La creazione dell'exploit ha richiesto 4 ore di lavoro del modello Claude.
I ricercatori che hanno creato l'exploit non si sono fermati qui e hanno continuato gli esperimenti, utilizzando Claude per identificare le vulnerabilità in Vim ed Emacs che consentono di eseguire il proprio codice aprendo nei editor file appositamente formattati. È interessante notare che i prompt per il modello si riducevano a una semplice formulazione del problema, come "trova una vulnerabilità zero-day in Vim che si verifica aprendo un file". Alla fine, il modello Claude ha trovato con successo vulnerabilità precedentemente sconosciute.
La vulnerabilità in Vim (CVE-2026-34714) è causata da un errore nell'elaborazione dell'opzione tabpanel nella modalità modeline attivata di default (":set modeline"), che offre la possibilità di definire le opzioni di modifica nel file elaborato. Secondo i progettisti di Vim, attraverso la modeline è consentita l'impostazione solo di un numero limitato di opzioni, le cui espressioni vengono eseguite in modalità sandbox, ammettendo solo operazioni sicure basilari.
Per l'opzione tabpanel non era stato impostato il flag P_MLE, permettendo di utilizzare l'espressione %{expr}, eseguita senza attivare la modalità modelineexpr. Per eludere l'isolamento della sandbox è stata utilizzata una mancanza nella funzione autocmd_add(), in cui mancavano adeguate verifiche di sicurezza durante il collegamento dell'azione all'evento SafeStateAgain, il che ha permesso l'esecuzione del comando dopo l'uscita dall'isolamento della sandbox. La vulnerabilità è stata corretta nella versione Vim v9.2.0272. Un esempio di stringa che porta all'esecuzione dell'utilità "id" e alla redirezione dell'output nel file "\/tmp\/calif-vim-rce-poc": /* vim: set showtabpanel=2 tabpanel=%{%autocmd_add([{‘event’\:’SafeStateAgain’,’pattern’\:’*’,’cmd’\:’!id>\/tmp\/calif-vim-rce-poc’,’once’\:1}])%}: *\/
La vulnerabilità in Emacs è causata dall'elaborazione automatica del contenuto della cartella .git\/, quando è collocata nella stessa directory del file aperto. In questo caso, Emacs durante l'apertura del file esegue i comandi "git ls-files" e "git status", eseguiti nel contesto del contenuto di ".git\/". Per organizzare l'esecuzione del codice è sufficiente aprire in Emacs un file da una directory che contiene una sottocartella .git\/ con un file di configurazione "config", che include l'opzione "core.fsmonitor" con il comando specificato dall'attaccante per l'esecuzione. I maintainer di GNU Emacs hanno rifiutato di eliminare la vulnerabilità, sostenendo che il problema risiede in Git.
È possibile notare anche altre due vulnerabilità:
- CVE-2026-33150 — accesso alla memoria dopo che è stata liberata nel gestore io_uring della libreria libfuse, potenzialmente consentendo l'esecuzione di codice in caso di esaurimento delle risorse disponibili durante l'interazione con i file system implementati tramite FUSE (Filesystem in Userspace).
- CVE-2026-34743 — overflow del buffer nell'implementazione della funzione lzma_index_append() della libreria liblzma. Il problema si manifesta durante l'uso della funzione lzma_index_decoder() per decodificare un indice che non contiene record, portando all'allocazione di un buffer più piccolo di quanto necessario. Si osserva che l'API di basso livello lzma_index* è utilizzata raramente nelle applicazioni e è poco probabile che vi siano applicazioni in cui vengono soddisfatti i requisiti per sfruttare la vulnerabilità. La vulnerabilità è stata corretta nell'aggiornamento XZ Utils 5.8.3.
Fonte: opennet.ru
