Vulnerabilități exploatabile de la distanță în nucleul FreeBSD, Vim și Emacs

În FreeBSD a fost remediată o vulnerabilitate (CVE-2026-4747), care permite executarea de cod la nivel de kernel prin trimiterea de pachete de rețea către un server NFS. Problema apare la utilizarea modulului kgssapi.ko, care implementează API-ul RPCSEC_GSS pe partea de kernel. Pe lângă kernel, vulnerabilitatea afectează aplicațiile din spațiul utilizatorului, care folosesc biblioteca librpcgss_sec și îndeplinesc funcții de server RPC. Aplicații de acest tip, care nu fac parte din sistemul de bază FreeBSD, pot fi, de asemenea, atacate prin trimiterea de pachete de rețea.

Problema este prezentă în implementarea API-ului GSS (Generic Security Services), care permite stabilirea de canale de comunicație autentificate și securizate cu serverul. RPCSEC_GSS este utilizat în serverele NFS pentru protejarea accesului la Sun RPC prin utilizarea autentificării bazate pe Kerberos și criptarea traficului între server și client. Problema este cauzată de faptul că, la verificarea semnăturii, datele din pachet sunt copiate într-un buffer fix fără o verificare adecvată a dimensiunii. Eroarea apare înainte de trecerea autentificării, dar necesită capacitatea de a trimite pachete de rețea către serverul NFS. Un exploit este disponibil, care permite rularea de /bin/sh cu drepturi de root de la distanță.

Vulnerabilitatea a fost descoperită de un angajat al companiei Anthropic cu ajutorul asistentului AI Claude. Este demn de menționat că cercetătorii externi din echipa Calif au folosit Claude pentru a scrie un exploit funcțional, furnizând ca informație doar raportul general publicat de proiectul FreeBSD despre vulnerabilitate. Pe lângă exploatarea directă a vulnerabilității, modelul AI a desfășurat o mașină virtuală cu o configurație vulnerabilă, a configurat depanarea la distanță și citirea dump-urilor nucleului, precum și a organizat în exploit rularea /bin/sh, după ce a obținut executarea codului la nivel de kernel. Crearea exploit-ului a durat 4 ore de muncă a modelului Claude.

Cercetătorii care au creat exploitul nu s-au limitat la aceasta și au continuat experimentele, folosind Claude pentru a identifica vulnerabilități în Vim și Emacs, care permit executarea codului propriu la deschiderea unor fișiere special formate în editor. Este demn de menționat că prompturile către model au fost formulate în termeni primari, cum ar fi „găsește o vulnerabilitate 0-day în Vim, care apare la deschiderea unui fișier”. Ca urmare, modelul Claude a descoperit cu succes vulnerabilități care nu erau cunoscute anterior.

Vulnerabilitatea din Vim (CVE-2026-34714) este cauzată de o eroare în procesarea opțiunii tabpanel în modul modeline activat implicit (":set modeline"), care permite definirea opțiunilor de editare în fișierul procesat. Conform intenției dezvoltatorilor Vim, prin modeline se permite setarea doar unui număr limitat de opțiuni, expresiile care sunt executate în modul sandbox, permițând doar cele mai simple operațiuni sigure.

Opțiunea tabpanel nu a avut activat flag-ul P_MLE, ceea ce permitea utilizarea expresiei %{expr}, care este executată fără activarea modului modelineexpr. Pentru a ocoli izolarea sandbox, a fost folosită o eroare în funcția autocmd_add(), care nu avea verificările de securitate necesare atunci când lega o acțiune de evenimentul SafeStateAgain, permițând astfel executarea unei comenzi după ieșirea din izolarea sandbox. Vulnerabilitatea a fost remediată în versiunea Vim v9.2.0272. Iată un exemplu de linie care determină rularea utilitarului „id” și direcționarea ieșirii într-un fișier „/tmp/calif-vim-rce-poc”: /* vim: set showtabpanel=2 tabpanel=%{%autocmd_add([{‘event’\:’SafeStateAgain’,’pattern’\:’*’,’cmd’\:’!id> /tmp/calif-vim-rce-poc’,’once’\:1}])%}: */

Vulnerabilitatea din Emacs este cauzată de procesarea automată a conținutului directorului .git/, când acesta este plasat în același director cu fișierul deschis. În acest caz, Emacs, la deschiderea fișierului, rulează comenzile „git ls-files” și „git status”, ce sunt executate în contextul conținutului „.git/”. Pentru a organiza execuția codului, este suficient să deschizi în Emacs un fișier dintr-un director în care există un subdirector .git/ cu un fișier de configurare „config”, care include opțiunea „core.fsmonitor” cu comanda specificată de atacator pentru execuție. Cei de la GNU Emacs au refuzat să remedieze vulnerabilitatea, indicând că problema ține de Git.

De asemenea, se pot menționa încă două vulnerabilități:

  • CVE-2026-33150 — accesul la memoria după eliberarea acesteia în handlerul io_uring din biblioteca libfuse, permițând în mod potențial executarea codului în timpul epuizării resurselor disponibile în cazul lucrului cu sistemele de fișiere implementate prin FUSE (Filesystem in Userspace).
  • CVE-2026-34743 — suprascrierea buffer-ului în implementarea funcției lzma_index_append() din biblioteca liblzma. Problema apare atunci când se folosește funcția lzma_index_decoder() pentru a decoda un index care nu conține înregistrări și duce la alocarea unui buffer mai mic decât necesar. Se observă că API-ul de nivel scăzut lzma_index* este utilizat foarte rar în aplicații, iar este puțin probabil să existe aplicații care să îndeplinească condițiile necesare exploatării lucrului cu indexul. Vulnerabilitatea a fost corectată în actualizarea XZ Utils 5.8.3.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster