« Volver al listado

CVE-2026-90174

Estado: RecibidaAlta (7.1)—

In the Linux kernel, the following vulnerability has been resolved:

ksmbd: fix slab-out-of-bounds read in ksmbd_alloc_user()

ksmbd_alloc_user() copies resp->hash_sz bytes out of the mountd IPC login response with

resp->hash_sz is a __u16 supplied by the response, but resp->hash[] is only KSMBD_REQ_MAX_HASH_SZ bytes. A malformed or malicious login response can set hash_sz well beyond that (up to 65535), so the memcpy() reads past the end of the response object. ipc_validate_msg() does not bound hash_sz, so reject any response whose hash_sz exceeds the on-stack hash[] buffer before allocating and copying.

Detalles técnicos trazas, registros y código del informe original
	user->passkey_sz = resp->hash_sz;
	user->passkey = kmalloc(resp->hash_sz, KSMBD_DEFAULT_GFP);
	if (user->passkey)
		memcpy(user->passkey, resp->hash, resp->hash_sz);

[ 2030.238706] BUG: KASAN: slab-out-of-bounds in ksmbd_alloc_user+0x278/0x680
[ 2030.240549] Read of size 65535 at addr ffff888121bb6680 by task kworker/4:1/18611
[ 2030.242296]
[ 2030.242710] CPU: 4 UID: 0 PID: 18611 Comm: kworker/4:1 Not tainted 7.1.0-next-20260623-virtme #96 PREEMPT(lazy)
[ 2030.242732] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.17.0-debian-1.17.0-1 04/01/2014
[ 2030.242743] Workqueue: ksmbd-io handle_ksmbd_work
[ 2030.242763] Call Trace:
[ 2030.242769]  <TASK>
[ 2030.242776]  dump_stack_lvl+0xa2/0xd0
[ 2030.242794]  print_address_description+0x77/0x200
[ 2030.242815]  ? ksmbd_alloc_user+0x278/0x680
[ 2030.242831]  print_report+0x58/0x70
[ 2030.242848]  kasan_report+0x117/0x150
[ 2030.242869]  ? ksmbd_alloc_user+0x278/0x680
[ 2030.242888]  kasan_check_range+0x3c7/0x3f0
[ 2030.242908]  ? ksmbd_alloc_user+0x278/0x680
[ 2030.242925]  __asan_memcpy+0x29/0x70
[ 2030.242942]  ksmbd_alloc_user+0x278/0x680
[ 2030.242960]  ksmbd_login_user+0xc3/0x120
[ 2030.242978]  ntlm_authenticate+0x5e6/0x1b00
[ 2030.243017]  ? __pfx_ntlm_authenticate+0x10/0x10
[ 2030.243035]  ? ksmbd_session_lookup+0x188/0x1d0
[ 2030.243054]  ? __pfx_ksmbd_session_lookup+0x10/0x10
[ 2030.243090]  ? __sanitizer_cov_trace_switch+0x7b/0x140
[ 2030.243108]  smb2_sess_setup+0x1e4a/0x27b0
[ 2030.243126]  ? copy_from_kernel_nofault+0x199/0x300
[ 2030.243156]  ? __pfx_smb2_sess_setup+0x10/0x10
[ 2030.243173]  ? get_smb2_cmd_val+0xe3/0x1c0
[ 2030.243208]  handle_ksmbd_work+0x954/0x1280
[ 2030.243230]  ? __pfx_handle_ksmbd_work+0x10/0x10
[ 2030.243249]  ? process_scheduled_works+0xa07/0x1490
[ 2030.243270]  ? process_scheduled_works+0xa07/0x1490
[ 2030.243291]  process_scheduled_works+0xa70/0x1490
[ 2030.243320]  ? __pfx_process_scheduled_works+0x10/0x10
[ 2030.243340]  ? do_raw_spin_lock+0x130/0x300
[ 2030.243358]  ? lock_is_held_type+0x7b/0x110
[ 2030.243388]  worker_thread+0x932/0xe20
[ 2030.243415]  kthread+0x38a/0x470
[ 2030.243431]  ? __pfx_worker_thread+0x10/0x10
[ 2030.243451]  ? __pfx_kthread+0x10/0x10
[ 2030.243467]  ret_from_fork+0x484/0x910
[ 2030.243485]  ? __pfx_ret_from_fork+0x10/0x10
[ 2030.243501]  ? __switch_to+0xc77/0x12c0
[ 2030.243523]  ? __pfx_kthread+0x10/0x10
[ 2030.243540]  ret_from_fork_asm+0x1a/0x30
[ 2030.243564]  </TASK>
[ 2030.243570]
[ 2030.290164] Allocated by task 19279:
[ 2030.290911]  kasan_save_track+0x3e/0x80
[ 2030.292179]  __kasan_kmalloc+0x72/0x90
[ 2030.293217]  __kvmalloc_node_noprof+0x3ff/0x6b0
[ 2030.294467]  handle_generic_event+0x59b/0x750
[ 2030.295345]  genl_family_rcv_msg_doit+0x238/0x340
[ 2030.296553]  genl_rcv_msg+0x606/0x7b0
[ 2030.297129]  netlink_rcv_skb+0x22b/0x4a0
[ 2030.298500]  genl_rcv+0x2d/0x40
[ 2030.299273]  netlink_unicast+0x7ba/0x930
[ 2030.300019]  netlink_sendmsg+0x8c3/0xb00
[ 2030.301073]  __sock_sendmsg+0xec/0x140
[ 2030.301579]  __sys_sendto+0x357/0x470
[ 2030.302255]  __x64_sys_sendto+0xe3/0x100
[ 2030.303425]  do_syscall_64+0x135/0x460
[ 2030.304763]  entry_SYSCALL_64_after_hwframe+0x77/0x7f
[ 2030.305594]
[ 2030.305819] The buggy address belongs to the object at ffff888121bb6640
[ 2030.305819]  which belongs to the cache kmalloc-192 of size 192
[ 2030.309595] The buggy address 
---truncated---

CVSS

Probabilidad de explotación (EPSS)

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).

🎯 Técnicas ATT&CK

Cómo se explota esta vulnerabilidad y qué consigue el atacante, en el lenguaje de MITRE ATT&CK.

Vulnerabilidad de lectura fuera de límites (slab-out-of-bounds) en ksmbd_alloc_user() exploitable con acceso local y privilegios bajos (PR:L). Requiere manipulación de resp->hash_sz para leer memoria kernel, causando potencial DoS y exposición de datos sensibles.

Inferido por nuestro agente de análisis a partir de la descripción oficial, el vector CVSS y la CWE, y comprobado por un supervisor. Puede contener errores.

🛡️ Mitigaciones ATT&CK que cubren estas técnicas

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

JSON original (NVD)

Mostrar
{
  "id": "CVE-2026-90174",
  "cveTags": [],
  "metrics": {
    "cvssMetricV31": [
      {
        "type": "Secondary",
        "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "cvssData": {
          "scope": "UNCHANGED",
          "version": "3.1",
          "baseScore": 7.1,
          "attackVector": "LOCAL",
          "baseSeverity": "HIGH",
          "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H",
          "integrityImpact": "NONE",
          "userInteraction": "NONE",
          "attackComplexity": "LOW",
          "availabilityImpact": "HIGH",
          "privilegesRequired": "LOW",
          "confidentialityImpact": "HIGH"
        },
        "impactScore": 5.2,
        "exploitabilityScore": 1.8
      }
    ]
  },
  "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": "e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9",
              "lessThan": "497c221bf6b2f659511719a6acfae84cc1be1caf",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "e2f34481b24db2fd634b5edb0a5bd0e4d38cc6e9",
              "lessThan": "7405d0ba294306721843bc551611775e6edef516",
              "versionType": "git"
            }
          ],
          "programFiles": [
            "fs/smb/server/mgmt/user_config.c"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.15"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "5.15",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "7.2.6",
              "versionType": "semver",
              "lessThanOrEqual": "7.2.*"
            },
            {
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "programFiles": [
            "fs/smb/server/mgmt/user_config.c"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-09-17T17:17:11.083",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/497c221bf6b2f659511719a6acfae84cc1be1caf",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/7405d0ba294306721843bc551611775e6edef516",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: fix slab-out-of-bounds read in ksmbd_alloc_user()\n\nksmbd_alloc_user() copies resp->hash_sz bytes out of the mountd IPC\nlogin response with\n\n\tuser->passkey_sz = resp->hash_sz;\n\tuser->passkey = kmalloc(resp->hash_sz, KSMBD_DEFAULT_GFP);\n\tif (user->passkey)\n\t\tmemcpy(user->passkey, resp->hash, resp->hash_sz);\n\nresp->hash_sz is a __u16 supplied by the response, but resp->hash[] is\nonly KSMBD_REQ_MAX_HASH_SZ bytes.  A malformed or malicious login\nresponse can set hash_sz well beyond that (up to 65535), so the memcpy()\nreads past the end of the response object.  ipc_validate_msg() does not\nbound hash_sz, so reject any response whose hash_sz exceeds the on-stack\nhash[] buffer before allocating and copying.\n\n[ 2030.238706] BUG: KASAN: slab-out-of-bounds in ksmbd_alloc_user+0x278/0x680\n[ 2030.240549] Read of size 65535 at addr ffff888121bb6680 by task kworker/4:1/18611\n[ 2030.242296]\n[ 2030.242710] CPU: 4 UID: 0 PID: 18611 Comm: kworker/4:1 Not tainted 7.1.0-next-20260623-virtme #96 PREEMPT(lazy)\n[ 2030.242732] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.17.0-debian-1.17.0-1 04/01/2014\n[ 2030.242743] Workqueue: ksmbd-io handle_ksmbd_work\n[ 2030.242763] Call Trace:\n[ 2030.242769]  <TASK>\n[ 2030.242776]  dump_stack_lvl+0xa2/0xd0\n[ 2030.242794]  print_address_description+0x77/0x200\n[ 2030.242815]  ? ksmbd_alloc_user+0x278/0x680\n[ 2030.242831]  print_report+0x58/0x70\n[ 2030.242848]  kasan_report+0x117/0x150\n[ 2030.242869]  ? ksmbd_alloc_user+0x278/0x680\n[ 2030.242888]  kasan_check_range+0x3c7/0x3f0\n[ 2030.242908]  ? ksmbd_alloc_user+0x278/0x680\n[ 2030.242925]  __asan_memcpy+0x29/0x70\n[ 2030.242942]  ksmbd_alloc_user+0x278/0x680\n[ 2030.242960]  ksmbd_login_user+0xc3/0x120\n[ 2030.242978]  ntlm_authenticate+0x5e6/0x1b00\n[ 2030.243017]  ? __pfx_ntlm_authenticate+0x10/0x10\n[ 2030.243035]  ? ksmbd_session_lookup+0x188/0x1d0\n[ 2030.243054]  ? __pfx_ksmbd_session_lookup+0x10/0x10\n[ 2030.243090]  ? __sanitizer_cov_trace_switch+0x7b/0x140\n[ 2030.243108]  smb2_sess_setup+0x1e4a/0x27b0\n[ 2030.243126]  ? copy_from_kernel_nofault+0x199/0x300\n[ 2030.243156]  ? __pfx_smb2_sess_setup+0x10/0x10\n[ 2030.243173]  ? get_smb2_cmd_val+0xe3/0x1c0\n[ 2030.243208]  handle_ksmbd_work+0x954/0x1280\n[ 2030.243230]  ? __pfx_handle_ksmbd_work+0x10/0x10\n[ 2030.243249]  ? process_scheduled_works+0xa07/0x1490\n[ 2030.243270]  ? process_scheduled_works+0xa07/0x1490\n[ 2030.243291]  process_scheduled_works+0xa70/0x1490\n[ 2030.243320]  ? __pfx_process_scheduled_works+0x10/0x10\n[ 2030.243340]  ? do_raw_spin_lock+0x130/0x300\n[ 2030.243358]  ? lock_is_held_type+0x7b/0x110\n[ 2030.243388]  worker_thread+0x932/0xe20\n[ 2030.243415]  kthread+0x38a/0x470\n[ 2030.243431]  ? __pfx_worker_thread+0x10/0x10\n[ 2030.243451]  ? __pfx_kthread+0x10/0x10\n[ 2030.243467]  ret_from_fork+0x484/0x910\n[ 2030.243485]  ? __pfx_ret_from_fork+0x10/0x10\n[ 2030.243501]  ? __switch_to+0xc77/0x12c0\n[ 2030.243523]  ? __pfx_kthread+0x10/0x10\n[ 2030.243540]  ret_from_fork_asm+0x1a/0x30\n[ 2030.243564]  </TASK>\n[ 2030.243570]\n[ 2030.290164] Allocated by task 19279:\n[ 2030.290911]  kasan_save_track+0x3e/0x80\n[ 2030.292179]  __kasan_kmalloc+0x72/0x90\n[ 2030.293217]  __kvmalloc_node_noprof+0x3ff/0x6b0\n[ 2030.294467]  handle_generic_event+0x59b/0x750\n[ 2030.295345]  genl_family_rcv_msg_doit+0x238/0x340\n[ 2030.296553]  genl_rcv_msg+0x606/0x7b0\n[ 2030.297129]  netlink_rcv_skb+0x22b/0x4a0\n[ 2030.298500]  genl_rcv+0x2d/0x40\n[ 2030.299273]  netlink_unicast+0x7ba/0x930\n[ 2030.300019]  netlink_sendmsg+0x8c3/0xb00\n[ 2030.301073]  __sock_sendmsg+0xec/0x140\n[ 2030.301579]  __sys_sendto+0x357/0x470\n[ 2030.302255]  __x64_sys_sendto+0xe3/0x100\n[ 2030.303425]  do_syscall_64+0x135/0x460\n[ 2030.304763]  entry_SYSCALL_64_after_hwframe+0x77/0x7f\n[ 2030.305594]\n[ 2030.305819] The buggy address belongs to the object at ffff888121bb6640\n[ 2030.305819]  which belongs to the cache kmalloc-192 of size 192\n[ 2030.309595] The buggy address \n---truncated---"
    }
  ],
  "lastModified": "2026-09-18T18:17:45.370",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}