CVE-2026-46303

In the Linux kernel, the following vulnerability has been resolved: isofs: validate Rock Ridge CE continuation extent against volume size rock_continue() reads rs->cont_extent verbatim from the Rock Ridge CE record and passes it to sb_bread() without checking that the block number is within the mounted ISO 9660 volume. commit e595447e177b ("[PATCH] rock.c: handle corrupted directories") added cont_offset and cont_size rejection for the CE continuation but did not validate the extent block number itself. commit f54e18f1b831 ("isofs: Fix infinite looping over CE entries") later capped the CE chain length at RR_MAX_CE_ENTRIES = 32 but again left the block number unchecked. With a crafted ISO mounted via udisks2 (desktop optical auto-mount) or via CAP_SYS_ADMIN mount, rs->cont_extent can therefore point at an out-of-range block or at blocks belonging to an adjacent filesystem on the same block device. sb_bread() on an out-of-range block returns NULL cleanly via the block layer EIO path, so there is no memory-safety violation. For in-range reads of adjacent- filesystem data, the CE buffer is parsed as Rock Ridge records and only the text of SL sub-records reaches userspace through readlink(), which makes the info-leak channel narrow and difficult to exploit; still, rejecting the malformed CE outright matches the rejection shape already present in the same function for cont_offset and cont_size. Add an ISOFS_SB(sb)->s_nzones bounds check to rock_continue() next to the existing offset/size rejection, printing the same corrupted-directory-entry notice.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:*

History

23 Jul 2026, 08:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: isofs: validar la extensión de continuación Rock Ridge CE contra el tamaño del volumen rock_continue() lee rs->cont_extent textualmente del registro Rock Ridge CE y lo pasa a sb_bread() sin verificar que el número de bloque esté dentro del volumen ISO 9660 montado. El commit e595447e177b ('[PATCH] rock.c: handle corrupted directories') añadió el rechazo de cont_offset y cont_size para la continuación CE pero no validó el número de bloque de la extensión en sí. El commit f54e18f1b831 ('isofs: Fix infinite looping over CE entries') más tarde limitó la longitud de la cadena CE a RR_MAX_CE_ENTRIES = 32 pero de nuevo dejó el número de bloque sin verificar. Con un ISO manipulado montado vía udisks2 (montaje automático óptico de escritorio) o vía montaje CAP_SYS_ADMIN, rs->cont_extent puede, por lo tanto, apuntar a un bloque fuera de rango o a bloques pertenecientes a un sistema de archivos adyacente en el mismo dispositivo de bloques. sb_bread() en un bloque fuera de rango devuelve NULL limpiamente vía la ruta EIO de la capa de bloques, por lo que no hay violación de seguridad de memoria. Para lecturas dentro de rango de datos de sistemas de archivos adyacentes, el búfer CE se analiza como registros Rock Ridge y solo el texto de los subregistros SL llega al espacio de usuario a través de readlink(), lo que hace que el canal de fuga de información sea estrecho y difícil de exploit; aún así, rechazar el CE malformado directamente coincide con la forma de rechazo ya presente en la misma función para cont_offset y cont_size. Añadir una verificación de límites ISOFS_SB(sb)->s_nzones a rock_continue() junto al rechazo existente de offset/size, imprimiendo el mismo aviso de entrada de directorio corrupta.

08 Jul 2026, 14:48

Type Values Removed Values Added
CPE cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:7.1:rc1:*:*:*:*:*:*
First Time Linux linux Kernel
Linux
CWE CWE-401
References () https://git.kernel.org/stable/c/22b36fa081f38ab397c7697f9d539211b51a0cfc - () https://git.kernel.org/stable/c/22b36fa081f38ab397c7697f9d539211b51a0cfc - Patch
References () https://git.kernel.org/stable/c/8356fb821016797f5677cbeee5ddc0d32a95b4be - () https://git.kernel.org/stable/c/8356fb821016797f5677cbeee5ddc0d32a95b4be - Patch
References () https://git.kernel.org/stable/c/a36d990f591320e9dd379ab30063ebfe91d47e1f - () https://git.kernel.org/stable/c/a36d990f591320e9dd379ab30063ebfe91d47e1f - Patch
References () https://git.kernel.org/stable/c/bf1bc673c587f5ef7e9c09b94aea7c5a7847d4d9 - () https://git.kernel.org/stable/c/bf1bc673c587f5ef7e9c09b94aea7c5a7847d4d9 - Patch
References () https://git.kernel.org/stable/c/c9b37c8b73f6368e4750e5ccb0632c380b43c6e5 - () https://git.kernel.org/stable/c/c9b37c8b73f6368e4750e5ccb0632c380b43c6e5 - Patch
References () https://git.kernel.org/stable/c/d582e12378bc1637f337622feef762f53c43fd57 - () https://git.kernel.org/stable/c/d582e12378bc1637f337622feef762f53c43fd57 - Patch
References () https://git.kernel.org/stable/c/e69da8eeab74b4f4505024c38a17bce060fe7df8 - () https://git.kernel.org/stable/c/e69da8eeab74b4f4505024c38a17bce060fe7df8 - Patch
References () https://git.kernel.org/stable/c/ef048470c90bc8c1b8318bb2ce329da9ef64b9fe - () https://git.kernel.org/stable/c/ef048470c90bc8c1b8318bb2ce329da9ef64b9fe - Patch

14 Jun 2026, 06:16

Type Values Removed Values Added
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 8.2

08 Jun 2026, 17:16

Type Values Removed Values Added
New CVE

Information

Published : 2026-06-08 17:16

Updated : 2026-07-23 08:10


NVD link : CVE-2026-46303

Mitre link : CVE-2026-46303

CVE.ORG link : CVE-2026-46303


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-401

Missing Release of Memory after Effective Lifetime