20. mai 2026 kuulutas FreeBSD arendajatest seitsme uue haavatavuse parandamise. Mitte kõik neist ei ole võrdselt ohtlikud, kuid on ka äärmiselt ebameeldivaid.
CVE-2026-45251 — use-after-free select-tüüpi süsteemi kõnedes, kui nende ootejärjekorras on protsessi deskriptorid (FreeBSD 15-s ka uued jail-deskriptorid), ja need deskriptorid on suletud teises threadis, samas kui ootav süsteemi kõne on endiselt ootel. Judging by see commit, on samuti mõjutatud deskriptorid, mis on seotud netmapiga (kiire otsene juurdepääs võrgu adapterile), kuid selle kohta pole ametlikku teavet. Protsessi deskriptorid ilmusid FreeBSD 9-s, nii et haavatavus on tõenäoliselt olemas olnud sellest ajast. Ametlikus avalduses öeldakse, et see haavatavus võimaldab saada superkasutaja õigusi. Selle neutraliseerimise võimalusi ilma patch'i/värskendusteta pole.
CVE-2026-45250 — vale mälumahtu arvutamine ja sellele järgnev mälupiirist möödasõit setcred süsteemi kõnes, kuigi setcred ise nõuab root-õigusi, toimub mälupiiri kahjustamine enne, kui õigused on kontrollitud, ning seega on see kõigile kergesti kättesaadav. See süsteemi kõne ilmus FreeBSD 14.3-s (st varasemad versioonid ei ole mõjutatud) ja võimaldab kehtestada kõik kasutaja ja rühma identifikaatorid jooksva protsessi jaoks ühe kõnega, mitte setuid + setgid + setgroups jne kombinatsiooniga. Haavatavus võimaldab teostada pahatahtlikku koodi tuuma kontekstis. Selle neutraliseerimise võimalusi ilma patch'i/värskendusteta pole.
CVE-2026-45252 — lõppnulli olemasolu kontrollimise puudumine stringi kopeerimisel, mis saadakse fuse-deemonilt, uude puhverisse. Siiski on seal kontroll maksimaalse kopeerimise suuruse osas, ja rohkem kui 253 üleliigset baiti kernelimälust lugeda ei õnnestu. Samuti on võimalik kirjutada kuni 250 baiti "unallocated kernel heap space". Vaikimisi on FreeBSD-s mitte-root kasutajatel failisüsteemide mountimine keelatud, seega halva fuse-deemoni tuuma sisestamiseks peab olema root. Kui aga sysctl vfs.usermount=1 — siis süsteem muutub haavatavaks ka tavalistele kasutajatele. Samuti tasub arvesse võtta fuse-deemoni ohtlikkust jail-is, kus ta võib olla ka root (kuid vaikimisi on see samuti keelatud).
CVE-2026-45253 — ptrace'i kasutamisel oli võimalik käivitada silumisel protsessis vale numbriga süsteemikõne, mis viis kerneli koodi täitmiseni, mida ei olnud ette nähtud süsteemikõne käivitamise käigus, millel võisid olla potentsiaalselt halvad tagajärjed. Kui on seadistatud security.bsd.unprivileged_proc_debug=0 (mis on igal juhul hea praktika serverite jaoks ja süsteemi instalaator pakub seda valikuliselt), ei saa kasutaja- ja jailed protsessid kasutada ptrace'i ning seega jääb haavatavus kätte ainult root'i.
CVE-2026-45255 — shell-käskude süstimine root-õigustega bsdinstall/bsdconfig kaudu pahatahtlike traadita võrkude nimedega, mida seal ei olnud eest ära varjatud, nende nimekirja vaatamise hetkedel. Selle haavatavuse vältimiseks piisab, kui mitte vaadata traadita võrkude nimekirja bsdinstall/bsdconfig kaudu.
CVE-2026-39461, CVE-2026-45254 — haavatavused libcasper'i teekides (mitte kernelis). Teek on mõeldud teenuste ohutuks ja kohandatavaks pakkumiseks karpi asetatud protsessidele. Üks haavatavustest on seotud virna piirete ületamisega ja virna kahjustamisega, korraldades selle teegi, mis sisaldab suurte numbrite failide deskriptoritega (see oli arvestatud numbritega kuni 1024 — süsteemikõnede struktuuride vaike piirang select'i jaoks). Teine haavatavus on võimalus eemaldada rakendatud piirangute loendid (teegi ideoloogia on, et kord rakendatud piirangud protsessile võivad vaid tugevneda) cap_net.
Parandatud süsteemi versioonid on numbrites: 14.3-RELEASE-p14, 14.4-RELEASE-p5 ja 15.0-RELEASE-p9. Ka tasub tähele panna mõnd olulist asja: FreeBSD 13.5 versioon tõmmati hiljuti toe alt välja - 30. aprill 2026, ja selle kohta (ja kõigi 13.x harude kohta) ametlikke parandusi enam pole. Kuid kui mingil põhjusel ei soovi te veel 14.x versioonile liikumist kiirustada, sobivad 14.3 versioonile mõeldud plaastrid üldiselt ka 13.5 lähtekoodidele, ning CVE-2026-45250 ei ole 13. haru jaoks aktuaalne seoses setcred() puudumisega.
Allikas: linux.org.ru
