El subsistema de TV digital del kernel Linux arrossegava un error d’índex que ara té CVE propi: CVE-2026-31405. Està valorat amb CVSS 9.8, la franja crítica, i el motiu és seriós: sota certes condicions es pot llegir un punter de funció fora d’una taula i acabar cridant-lo.
El problema viu a la funció handle_one_ule_extension(), dins del codi que processa ULE (Ultra Lightweight Encapsulation), el format que transporta paquets IP sobre fluxos MPEG a DVB. Aquesta funció decideix què fer amb cada extensió consultant dues taules de punters a funció: ule_mandatory_ext_handlers[] i ule_optional_ext_handlers[]. Totes dues es declaren amb 255 elements, és a dir índexs del 0 al 254. El detall és que l’índex htype, que es deriva de dades de xarxa, pot arribar al valor 255. En fer servir 255 sobre una taula que només arriba fins a 254, el kernel llegeix una posició de memòria que no li correspon i tracta aquell contingut com un punter de funció vàlid.
A partir d’aquí hi ha dos desenllaços. El més benigne és una caiguda del kernel, una denegació de servei que tomba la màquina. El més greu és l’execució de codi: si un atacant aconsegueix controlar què hi ha en aquella posició de memòria contigua, la crida al punter salta a codi escollit per ell.
A qui afecta
A qualsevol sistema Linux que tingui compilat i en ús el subsistema DVB amb processament ULE. Parlem de receptors de TV digital, targetes sintonitzadores i, en general, maquinari que rep fluxos DVB. El rang de versions és ampli: l’error hi és present des de la 2.6.12, així que arrossega pràcticament tota la història moderna del kernel, i inclou branques amb suport com 5.10, 5.15, 6.1, 6.6, 6.12 i les sèries 6.19 i 7.0.
El vector CVSS (AV:N/AC:L/PR:N/UI:N) indica accés per xarxa, baixa complexitat i sense necessitat de privilegis ni interacció de l’usuari. Això explica la puntuació tan alta. La condició pràctica és que l’equip estigui processant dades ULE controlables, propi d’un escenari on el flux DVB rebut no és de confiança.
Mitigació
El pedaç és directe: afegeix una comprovació de límits sobre htype abans de tocar qualsevol de les dues taules. Si el valor queda fora de rang, la SNDU (la unitat de dades) es descarta en lloc de continuar. No hi ha cap configuració a tocar; la solució és actualitzar el kernel a una versió amb l’arranjament aplicat.
Si la teva distribució manté kernels propis, instal·la les actualitzacions de seguretat tan bon punt estiguin disponibles i reinicia, o fes servir livepatch si el teu proveïdor l’ofereix. En sistemes que no fan servir DVB en absolut, descarregar el mòdul corresponent redueix la superfície exposada mentre arriba el pedaç, però el recomanable continua sent actualitzar.
Pots consultar el llistat de versions del kernel Linux per comprovar en quina branca ets i si ja inclou la correcció.
Font
- NVD — CVE-2026-31405 Detail: https://nvd.nist.gov/vuln/detail/CVE-2026-31405