enic: Validate length of nl attributes in enic_set_vf_port
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 4.19.316, 5.4.278, 5.10.219, 5.15.161, 6.1.93, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: enic: Validate length of nl attributes in enic_set_vf_port enic_set_vf_port assumes that the nl attribute IFLA_PORT_PROFILE is of length PORT_PROFILE_MAX and that the nl attributes IFLA_PORT_INSTANCE_UUID, IFLA_PORT_HOST_UUID are of length PORT_UUID_MAX. These attributes are validated (in the function do_setlink in rtnetlink.c) using the nla_policy ifla_port_policy. The policy defines IFLA_PORT_PROFILE as NLA_STRING, IFLA_PORT_INSTANCE_UUID as NLA_BINARY and IFLA_PORT_HOST_UUID as NLA_STRING. That means that the length validation using the policy is for the max size of the attributes and not on exact size so the length of these attributes might be less than the sizes that enic_set_vf_port expects. This might cause an out of bands read access in the memcpys of the data of these attributes in enic_set_vf_port.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From f8bd909183acffad68780b10c1cdf36161cfd5d1 · fixed in 2b649d7e0cb42a660f0260ef25fd55fdc9c6c600; From f8bd909183acffad68780b10c1cdf36161cfd5d1 · fixed in ca63fb7af9d3e531aa25f7ae187bfc6c7166ec2d; From f8bd909183acffad68780b10c1cdf36161cfd5d1 · fixed in 3c0d36972edbe56fcf98899622d9b90ac9965227; From f8bd909183acffad68780b10c1cdf36161cfd5d1 · fixed in 25571a12fbc8a1283bd8380d461267956fd426f7; From f8bd909183acffad68780b10c1cdf36161cfd5d1 · fixed in 7077c22f84f41974a711604a42fd0e0684232ee5; From f8bd909183acffad68780b10c1cdf36161cfd5d1 · fixed in f6638e955ca00c489894789492776842e102af9c; From f8bd909183acffad68780b10c1cdf36161cfd5d1 · fixed in aee1955a1509a921c05c70dad5d6fc8563dfcb31; From f8bd909183acffad68780b10c1cdf36161cfd5d1 · fixed in e8021b94b0412c37bcc79027c2e382086b6ce449
- Linux Linux
2.6.35
- KernelLinux
From 2.6.35 · fixed in 4.19.316; From 4.20.0 · fixed in 5.4.278; From 5.5.0 · fixed in 5.10.219; From 5.11.0 · fixed in 5.15.161; From 5.16.0 · fixed in 6.1.93; From 6.2.0 · fixed in 6.6.33; From 6.7.0 · fixed in 6.9.4
References 8
git.kernel.org
- stable/c/2b649d7e0cb42a660f0260ef25fd55fdc9c6c600
- stable/c/ca63fb7af9d3e531aa25f7ae187bfc6c7166ec2d
- stable/c/3c0d36972edbe56fcf98899622d9b90ac9965227
- stable/c/25571a12fbc8a1283bd8380d461267956fd426f7
- stable/c/7077c22f84f41974a711604a42fd0e0684232ee5
- stable/c/f6638e955ca00c489894789492776842e102af9c
- stable/c/aee1955a1509a921c05c70dad5d6fc8563dfcb31
- stable/c/e8021b94b0412c37bcc79027c2e382086b6ce449