CVE-2026-63996 in Linuxinfo

Summary

by MITRE • 07/19/2026

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.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

Analysis

by VulDB Data Team • 07/19/2026

The vulnerability described represents a critical out-of-bounds write condition within the Linux kernel's ethtool implementation specifically affecting CMIS (Common Management Interface Specification) SFP module handling. This issue arises from insufficient validation of CDB (Command Data Block) reply lengths during communication with SFP modules, creating potential for arbitrary code execution or system instability when malicious or faulty hardware attempts to exploit this weakness. The vulnerability falls under the category of buffer overflow conditions that can lead to kernel memory corruption and system compromise.

The technical flaw occurs in the cmis_cdb_process_reply() function where the kernel does not adequately validate that reply lengths match expected values during communication with SFP modules. When a malicious or defective SFP module responds with a reply length greater than what the cmis_cdb_process_reply() function anticipates, it leads to out-of-bounds memory writes that can overwrite adjacent kernel memory regions. This vulnerability is particularly concerning because it operates at kernel level where such memory corruption can result in complete system compromise. The flaw specifically impacts three key functions: cmis_cdb_validate_password(), cmis_cdb_module_features_get(), and cmis_fw_update_fw_mng_features_get(), all of which process fixed-layout structures with predetermined field offsets without version negotiation or graceful short-reply handling mechanisms.

The operational impact of this vulnerability extends beyond simple memory corruption to potentially enable privilege escalation attacks and system instability. Attackers could exploit this condition through malicious SFP modules that deliberately respond with oversized data packets, or through faulty hardware that occasionally produces corrupted reads. The vulnerability is particularly dangerous because it operates within the kernel's memory management subsystem where arbitrary code execution can occur, potentially allowing attackers to gain root privileges or cause denial of service conditions. The issue demonstrates a classic security weakness in input validation where the system assumes reply lengths will always conform to expected parameters without implementing proper bounds checking.

This vulnerability aligns with CWE-129 and CWE-787 categories, representing improper input validation and out-of-bounds write conditions respectively. From an ATT&CK framework perspective, this maps to techniques involving privilege escalation through kernel exploits and system resource exploitation. The mitigation strategy implemented involves adding explicit length validation to prevent oversized replies from causing memory corruption while maintaining the existing protection against short replies. The fix includes adding warning messages to aid in debugging if unexpected behavior occurs, ensuring that the kernel's memory allocation functions properly validate that page_data->length values derived from ethtool_cmis_page_init() parameters remain within acceptable bounds. Additionally, defensive programming practices are applied to protect against oversized request payloads within the fixed-size 120-byte stack buffer, preventing potential integer overflows in argument processing and maintaining overall system stability.

The fix demonstrates proper kernel security practices by implementing comprehensive input validation while maintaining backward compatibility with legitimate hardware operations. The solution ensures that all callers of the affected functions properly validate reply lengths before casting response payloads to fixed-layout structures, preventing the arbitrary memory access patterns that could lead to exploitation. This approach aligns with modern secure coding standards that emphasize defensive programming and robust error handling in kernel-level code where security implications are most severe.

Disclosure

07/19/2026

Moderation

accepted

CPE

ready

EPSS

0.00000

KEV

no

Activities

low

Sources

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!