{"id":"CVE-2026-64351","summary":"net: usb: kalmia: bound RX frame length in kalmia_rx_fixup()","details":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: usb: kalmia: bound RX frame length in kalmia_rx_fixup()\n\nkalmia_rx_fixup() computes usb_packet_length = skb-\u003elen - (2 *\nKALMIA_HEADER_LENGTH) as a u16, guarded only by a pre-loop check that\nskb-\u003elen is at least KALMIA_HEADER_LENGTH, which is 6. A device can\ndeliver a short bulk-IN frame with skb-\u003elen in the 6 to 11 range, or\nleave a short trailing remainder on a later loop iteration. Either case\nunderflows usb_packet_length to about 65530.\n\nThat bypasses the usb_packet_length \u003c ether_packet_length truncation path.\nThe device-supplied ether_packet_length, a le16 up to 65535 read from\nheader_start[2], then drives a memcmp() and the following skb_trim() and\nskb_pull() past the end of the rx buffer. The rx buffer is hard_mtu * 10,\nwhich is 14000 bytes. That is an out of bounds read.\n\nRequire both the start and end framing headers to be present before\nsubtracting them, on every loop iteration.","modified":"2026-09-05T03:30:27.109353014Z","published":"2026-07-25T08:50:10.882Z","related":["openSUSE-SU-2026:11476-1"],"database_specific":{"cna_assigner":"Linux","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64351.json"},"references":[{"type":"WEB","url":"https://git.kernel.org/stable/c/2d04c37ed4e1d0f733ad39ec35b5a5d8818b4f4a"},{"type":"WEB","url":"https://git.kernel.org/stable/c/391706889a5112feafdc0c68db3ecc7ed325d09c"},{"type":"WEB","url":"https://git.kernel.org/stable/c/46ab32870d010e9a057bc5659cea22b7e728ca88"},{"type":"WEB","url":"https://git.kernel.org/stable/c/47b6bcef6e679593d2e86e04ee72c46a4e2f7139"},{"type":"WEB","url":"https://git.kernel.org/stable/c/51e65f1d78457ea4f9513d90ab22c9dccbb35110"},{"type":"WEB","url":"https://git.kernel.org/stable/c/aa4eef2cbb66ea3dfcfc24bdce798dd78a81b54b"},{"type":"WEB","url":"https://git.kernel.org/stable/c/c466097d85d52f3aa200736cb4759e66d4bbf6e3"},{"type":"WEB","url":"https://git.kernel.org/stable/c/e24eb271061db384a3c3ef6f107fe515e68ef222"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64351.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-64351"},{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"d40261236e8e278cb1936cb5e934262971692b10"},{"fixed":"391706889a5112feafdc0c68db3ecc7ed325d09c"},{"fixed":"aa4eef2cbb66ea3dfcfc24bdce798dd78a81b54b"},{"fixed":"2d04c37ed4e1d0f733ad39ec35b5a5d8818b4f4a"},{"fixed":"46ab32870d010e9a057bc5659cea22b7e728ca88"},{"fixed":"c466097d85d52f3aa200736cb4759e66d4bbf6e3"},{"fixed":"e24eb271061db384a3c3ef6f107fe515e68ef222"},{"fixed":"51e65f1d78457ea4f9513d90ab22c9dccbb35110"},{"fixed":"47b6bcef6e679593d2e86e04ee72c46a4e2f7139"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64351.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"3.0.0"},{"fixed":"5.10.261"}]},{"type":"ECOSYSTEM","events":[{"introduced":"5.11.0"},{"fixed":"5.15.212"}]},{"type":"ECOSYSTEM","events":[{"introduced":"5.16.0"},{"fixed":"6.1.178"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.2.0"},{"fixed":"6.6.145"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.7.0"},{"fixed":"6.12.96"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.13.0"},{"fixed":"6.18.39"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.19.0"},{"fixed":"7.1.4"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64351.json"}}],"schema_version":"1.9.0"}