CVE-2026-80584
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Summary
In the Linux kernel, the following vulnerability has been resolved:
s390/qeth: validate user buffer length in SNMP and ARP query ioctls
qeth_snmp_command() and qeth_l3_arp_query() allocate a buffer sized by a user-supplied length (udata_len) without checking a lower bound, then set udata_offset to a fixed non-zero value and pass both to a reply callback. The callback bounds-checks the copy with
if ((udata_len - udata_offset) < len)
Both fields are u32, so a udata_len smaller than udata_offset makes the subtraction wrap and the check pass, and the following memcpy() writes past the allocation. A udata_len of 0 also yields ZERO_SIZE_PTR from kzalloc(), which the existing NULL check does not catch.
Reject buffers smaller than udata_offset before allocating, so the callback subtraction can no longer underflow.
Affected Software
| Vendor | Product | Version Range | Status |
|---|---|---|---|
| Linux | Linux | 4a71df50047f0db65ea09b1be155852e81a45eba < 9d00eeb2d27f4cc817c5e408760226d43f811ec6 | affected |
| Linux | Linux | 4a71df50047f0db65ea09b1be155852e81a45eba < 46443eaddebd84c51940857b11787229be169dec | affected |
| Linux | Linux | 4a71df50047f0db65ea09b1be155852e81a45eba < 91935843f9396a9e45253e2c0d4337ca1371754b | affected |
| Linux | Linux | 4a71df50047f0db65ea09b1be155852e81a45eba < cc423f4105fe145b33e1d7cad34245a798358f73 | affected |
| Linux | Linux | 4a71df50047f0db65ea09b1be155852e81a45eba < 3083818e67bcd656965797fbac9a3d6c1d44f78a | affected |
| Linux | Linux | 4a71df50047f0db65ea09b1be155852e81a45eba < a3083647747942ea32faf14560d6397ff3068046 | affected |
| Linux | Linux | 4a71df50047f0db65ea09b1be155852e81a45eba < 75fb3151513d7d9f77a8f9545418279b119c06b8 | affected |
| Linux | Linux | 4a71df50047f0db65ea09b1be155852e81a45eba < d141f087b1af656f055d7c5793a3e87817ba0bbe | affected |
| Linux | Linux | 2.6.26 | affected |
| Linux | Linux | 0 < 2.6.26 | unaffected |
| Linux | Linux | 5.10.266 <= 5.10.* | unaffected |
| Linux | Linux | 5.15.217 <= 5.15.* | unaffected |
| Linux | Linux | 6.1.184 <= 6.1.* | unaffected |
| Linux | Linux | 6.6.153 <= 6.6.* | unaffected |
| Linux | Linux | 6.12.105 <= 6.12.* | unaffected |
| Linux | Linux | 6.18.46 <= 6.18.* | unaffected |
| Linux | Linux | 7.1.10 <= 7.1.* | unaffected |
| Linux | Linux | 7.2 <= * | unaffected |
Weaknesses
References
- https://git.kernel.org/stable/c/9d00eeb2d27f4cc817c5e408760226d43f811ec6
- https://git.kernel.org/stable/c/46443eaddebd84c51940857b11787229be169dec
- https://git.kernel.org/stable/c/91935843f9396a9e45253e2c0d4337ca1371754b
- https://git.kernel.org/stable/c/cc423f4105fe145b33e1d7cad34245a798358f73
- https://git.kernel.org/stable/c/3083818e67bcd656965797fbac9a3d6c1d44f78a
- https://git.kernel.org/stable/c/a3083647747942ea32faf14560d6397ff3068046
- https://git.kernel.org/stable/c/75fb3151513d7d9f77a8f9545418279b119c06b8
- https://git.kernel.org/stable/c/d141f087b1af656f055d7c5793a3e87817ba0bbe
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.