← Tornar als articles
Seguretat· 3 min de lectura

CVE-2026-23236: un error al driver smscufx corromp la memòria del kernel des d'un compte sense privilegis

El kernel Linux arrossegava des de feia anys un error ximple però perillós a smscufx, el driver de framebuffer per als adaptadors USB-a-vídeo basats en xips SMSC UFX. El gestor de l’ioctl UFX_IOCTL_REPORT_DAMAGE rebia una estructura des d’espai d’usuari i, en comptes de copiar-la amb copy_from_user() tal com mana el patró habitual del kernel, dereferenciava directament el punter que li passava el procés. Qui controla aquest punter controla quina adreça llegeix i escriu el kernel.

El resultat és el que es pot esperar d’un driver que confia a cegues en una adreça d’usuari: corrupció de memòria del kernel i caiguda del sistema. Va quedar registrat com a CVE-2026-23236, publicat el 4 de març de 2026.

A qui afecta

L’error és al codi del mateix driver, així que afecta qualsevol sistema Linux amb smscufx compilat i carregat. És un mòdul de framebuffer poc comú avui dia (s’usava amb adaptadors DisplayLink/SMSC antics), però moltes distribucions l’inclouen com a mòdul carregable. Si el mòdul no hi és ni es pot carregar, no ets vulnerable per aquesta via.

L’abast de versions és enorme perquè el problema hi és des del principi. NVD llista branques afectades des de la 3.2 fins a les sèries modernes: 5.10 fins a 5.10.250, 5.15 fins a 5.15.200, 6.1 fins a 6.1.163, 6.6 fins a 6.6.126, 6.12 fins a 6.12.73 i 6.19 fins a 6.19.2, entre d’altres. Si el teu kernel és anterior a la versió corregida de la seva branca, mira si portes el mòdul.

Gravetat

Les puntuacions difereixen segons qui les assigna. NIST el qualifica de 5.5 (mitjana) amb vector AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H, centrat en l’impacte sobre la disponibilitat. El CNA de kernel.org puja a 7.3 (alta) amb AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:H/A:H, tenint en compte també l’escriptura controlada a la memòria del kernel.

La diferència té sentit. Una denegació de servei que tomba la màquina ja és seriosa; però si un atacant aconsegueix escriure en zones concretes del kernel a través del punter que ell mateix subministra, el potencial va més enllà d’una simple penjada. En qualsevol cas l’atac és local: cal un compte a la màquina i accés al dispositiu de framebuffer. No s’explota per xarxa.

Mitigació i pegat

La correcció fa l’obvi que faltava: copiar les dades des d’espai d’usuari amb la rutina segura abans de tocar-les al kernel, en comptes de dereferenciar el punter de l’usuari. Es van publicar pegats a les branques estables (entre els commits, 061cfeb560aa3ddc174153dbe5be9d0b55eb7248).

Què fer:

  • Actualitza el kernel a la versió corregida de la teva branca. En una distribució amb suport, instal·la el paquet de kernel que reculli aquest pegat.
  • Si no necessites smscufx, descarrega’l i posa’l a la llista negra. Afegeix blacklist smscufx a /etc/modprobe.d/ i comprova amb lsmod | grep smscufx que no estigui carregat. És una mitigació neta mentre arriba l’actualització.
  • Restringeix qui pot accedir als dispositius /dev/fb* si el teu cas ho permet.

Com sempre amb els errors locals del kernel, el risc real depèn de quanta gent tingui shell a la màquina. En un servidor multiusuari o en hosts compartits convé prioritzar-ho; en un equip d’un sol usuari el marge és més gran, però pegar continua sent el correcte.

Pots consultar l’estat de suport de cada sèrie del kernel a la nostra fitxa del Linux kernel.

Font