El projecte FreeBSD va publicar l’avís FreeBSD-SA-26:24.cap_net el 20 de maig de 2026 per corregir CVE-2026-45254, un error a libcap_net que trencava una de les garanties bàsiques de Capsicum: que un procés només pot retallar els seus permisos, mai ampliar-los.
Què és Capsicum i on encaixa libcap_net
Capsicum és el sistema d’aïllament per capacitats de FreeBSD. Una aplicació entra en “mode capacitat” i perd l’accés global al sistema: només pot operar amb els descriptors i capacitats que ja tenia. Com que dins d’aquest mode no es poden fer crides com ara connect() ni resoldre noms directament, FreeBSD ofereix serveis de Casper (libcasper). Un d’ells és libcap_net, que fa d’intermediari per a les operacions de xarxa: l’aplicació en sandbox demana al procés Casper que resolgui un host o obri una connexió, i aquest aplica els límits que s’hagin configurat.
La idea és que aquests límits es poden estrènyer sobre la marxa. Si una app comença podent resoldre noms i connectar, pot demanar un nou límit que només permeti resoldre, i a partir d’aquí ja no hauria de poder connectar. Aquesta restricció progressiva és el que sosté el model.
L’error
Quan l’aplicació demanava un nou conjunt de límits, libcap_net comparava la petició amb el límit anterior. El problema era com tractava les claus absents. Si una clau present al límit antic no apareixia al nou, el codi la interpretava com a “permet qualsevol” en lloc de rebutjar-la.
L’efecte és el contrari del que s’espera. Ometre una restricció no la deixava intacta ni la denegava, sinó que l’obria del tot. Una aplicació que ja havia limitat un subconjunt d’operacions de xarxa podia sol·licitar un nou límit que, lluny d’estrènyer, ampliava els seus permisos. A la pràctica això permet que codi dins del sandbox se salti les restriccions de xarxa que el desenvolupador creia tenir aplicades.
A qui afecta i gravetat
Afecta totes les versions suportades de FreeBSD, però només el programari que faci servir libcap_net/libcasper per mediar l’accés a la xarxa dins d’un sandbox Capsicum. El sistema base no inclou programes afectats, així que el risc recau en aplicacions de tercers que hagin adoptat aquest patró d’aïllament. FreeBSD classifica la gravetat com a mitjana: no és una escalada a root ni un RCE remot, sinó una elevació de permisos de xarxa dins del mateix procés sandbox, condicionada al fet que l’aplicació depengui de libcap_net per confinar-se.
És a la mateixa tanda d’avisos de maig que altres errors de kernel més seriosos a FreeBSD, com ara l’escalada de privilegis via Linuxulator i LD_PRELOAD. Si gestiones servidors FreeBSD, val la pena revisar el conjunt sencer.
Mitigació
No hi ha solució alternativa: l’única via és aplicar el pegat. Les correccions van sortir el 20 de maig de 2026 a stable/15 i 15.0-RELEASE-p9, i a stable/14, 14.4-RELEASE-p5 i 14.3-RELEASE-p14.
Als sistemes amb freebsd-update, n’hi ha prou amb actualitzar i reiniciar els dimonis afectats:
freebsd-update fetch
freebsd-update install
Si compiles des de codi font, aplica el pegat oficial (SA-26:24/cap_net.patch), recompila amb buildworld/installworld i reinicia els processos que facin servir libcap_net. Més detalls del sistema base a la fitxa de FreeBSD.
Font
- Avís oficial: FreeBSD-SA-26:24.cap_net
- NVD: CVE-2026-45254