CVE-2026-98407
En el kernel de Linux se ha resuelto la siguiente vulnerabilidad:
wifi: rsi: corrige escritura fuera de límites en el montículo (heap) al eliminar una clave
Cuando se elimina una clave (data == NULL), rsi_hal_load_key() ejecuta:
set_key es un struct rsi_set_key *, por lo que el subíndice se escala por sizeof(struct rsi_set_key) (160 bytes): &set_key[FRAME_DESC_SZ] equivale a skb->data + 2560, y el memset escribe 144 bytes a cero comenzando 2,4 KB más allá del final del búfer de datos de skb de 160 bytes, corrompiendo objetos no relacionados del montículo. El desplazamiento en bytes previsto habría sido (u8 *)set_key + FRAME_DESC_SZ.
Leer descripción completaMostrar menos
La escritura se produce en cada callback DISABLE_KEY, por lo que las desconexiones normales, los roams y las desactivaciones de interfaz la desencadenan en redes reales.
El memset es redundante: todo el búfer se pone a cero justo después de la asignación, por lo que la trama enviada al dispositivo es idéntica byte a byte sin él. Se elimina la rama else; el funcionamiento normal no se ve afectado.
Descubierto por Atuin - Automated Vulnerability Discovery Engine.
Detalles técnicos trazas, registros y código del informe original
memset(&set_key[FRAME_DESC_SZ], 0, frame_len - FRAME_DESC_SZ);
Traducción automática del texto original de NVD (en inglés).
CVSS
NVD no ha asignado puntuación CVSS a esta CVE (habitual desde el cambio de política de abril de 2026).
Probabilidad de explotación (EPSS)
- Probabilidad de explotación en los próximos 30 días
- 0.22 %
- Percentil entre todas las CVEs puntuadas
- 12
- Fecha de la puntuación
- 21/10/2026
EPSS (Exploit Prediction Scoring System, de FIRST) estima la probabilidad de que una vulnerabilidad sea explotada en 30 días. Complementa a CVSS (impacto) y a CISA KEV (explotación confirmada).
Tecnologías afectadas (1)
⚠ Inferidas por IA a partir de la descripción — NVD aún no ha analizado esta CVE; no son CPE verificados.
Referencias
Mostrar las 8 referencias
- https://git.kernel.org/stable/c/00bea3589255603c38766cac4a4d6d36493b2556
- https://git.kernel.org/stable/c/62d40db89180cfab7a917395f9ffc1dac62b0019
- https://git.kernel.org/stable/c/8dab6ee020b2cd951b670626ba44a95cd4deac3d
- https://git.kernel.org/stable/c/ac599cf8edf8aa2dae546f04d3f1849e32c2e738
- https://git.kernel.org/stable/c/b79e2f6585c014c42384f4caa7a37b3e5d26179c
- https://git.kernel.org/stable/c/c67fb3b875a83f9ba92afea4036c7b541f77512a
- https://git.kernel.org/stable/c/e6c5ed7a98d7bc8b0f7918246f1c90ddb3f79dfa
- https://git.kernel.org/stable/c/f4f2852b664c3ff1436785cd11258a0ce25b74b3
JSON original (NVD)
Mostrar
{
"id": "CVE-2026-98407",
"cveTags": [],
"metrics": {},
"affected": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"affectedData": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "dad0d04fa7ba41ce603a01e8e64967650303e9a2",
"lessThan": "b79e2f6585c014c42384f4caa7a37b3e5d26179c",
"versionType": "git"
},
{
"status": "affected",
"version": "dad0d04fa7ba41ce603a01e8e64967650303e9a2",
"lessThan": "c67fb3b875a83f9ba92afea4036c7b541f77512a",
"versionType": "git"
},
{
"status": "affected",
"version": "dad0d04fa7ba41ce603a01e8e64967650303e9a2",
"lessThan": "62d40db89180cfab7a917395f9ffc1dac62b0019",
"versionType": "git"
},
{
"status": "affected",
"version": "dad0d04fa7ba41ce603a01e8e64967650303e9a2",
"lessThan": "00bea3589255603c38766cac4a4d6d36493b2556",
"versionType": "git"
},
{
"status": "affected",
"version": "dad0d04fa7ba41ce603a01e8e64967650303e9a2",
"lessThan": "ac599cf8edf8aa2dae546f04d3f1849e32c2e738",
"versionType": "git"
},
{
"status": "affected",
"version": "dad0d04fa7ba41ce603a01e8e64967650303e9a2",
"lessThan": "f4f2852b664c3ff1436785cd11258a0ce25b74b3",
"versionType": "git"
},
{
"status": "affected",
"version": "dad0d04fa7ba41ce603a01e8e64967650303e9a2",
"lessThan": "8dab6ee020b2cd951b670626ba44a95cd4deac3d",
"versionType": "git"
},
{
"status": "affected",
"version": "dad0d04fa7ba41ce603a01e8e64967650303e9a2",
"lessThan": "e6c5ed7a98d7bc8b0f7918246f1c90ddb3f79dfa",
"versionType": "git"
}
],
"programFiles": [
"drivers/net/wireless/rsi/rsi_91x_mgmt.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "3.15"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "3.15",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "5.10.271",
"versionType": "semver",
"lessThanOrEqual": "5.10.*"
},
{
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver",
"lessThanOrEqual": "5.15.*"
},
{
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver",
"lessThanOrEqual": "6.1.*"
},
{
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver",
"lessThanOrEqual": "6.6.*"
},
{
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver",
"lessThanOrEqual": "6.12.*"
},
{
"status": "unaffected",
"version": "6.18.54",
"versionType": "semver",
"lessThanOrEqual": "6.18.*"
},
{
"status": "unaffected",
"version": "7.2.8",
"versionType": "semver",
"lessThanOrEqual": "7.2.*"
},
{
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"drivers/net/wireless/rsi/rsi_91x_mgmt.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-10-14T14:17:51.853",
"references": [
{
"url": "https://git.kernel.org/stable/c/00bea3589255603c38766cac4a4d6d36493b2556",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/62d40db89180cfab7a917395f9ffc1dac62b0019",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/8dab6ee020b2cd951b670626ba44a95cd4deac3d",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/ac599cf8edf8aa2dae546f04d3f1849e32c2e738",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/b79e2f6585c014c42384f4caa7a37b3e5d26179c",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/c67fb3b875a83f9ba92afea4036c7b541f77512a",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/e6c5ed7a98d7bc8b0f7918246f1c90ddb3f79dfa",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/f4f2852b664c3ff1436785cd11258a0ce25b74b3",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: rsi: fix heap OOB write on key removal\n\nWhen a key is removed (data == NULL), rsi_hal_load_key() runs:\n\n\tmemset(&set_key[FRAME_DESC_SZ], 0, frame_len - FRAME_DESC_SZ);\n\nset_key is a struct rsi_set_key *, so the subscript is scaled by\nsizeof(struct rsi_set_key) (160 bytes): &set_key[FRAME_DESC_SZ] is\nskb->data + 2560, and the memset writes 144 zero bytes starting\n2.4KB past the end of the 160-byte skb data buffer, corrupting\nunrelated heap objects. The intended byte offset would have been\n(u8 *)set_key + FRAME_DESC_SZ.\n\nThe write fires on every DISABLE_KEY callback, so plain disconnects,\nroams and interface teardowns trigger it on real networks.\n\nThe memset is redundant: the whole buffer is zeroed right after\nallocation, so the frame sent to the device is byte-identical\nwithout it. Drop the else branch; normal operation is unaffected.\n\nDiscovered by Atuin - Automated Vulnerability Discovery Engine."
}
],
"lastModified": "2026-10-19T10:18:45.827",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}