CVE-2026-64351 (GCVE-0-2026-64351)
Vulnerability from cvelistv5 – Published: 2026-07-25 08:50 – Updated: 2026-07-25 08:50
VLAI
EPSS
VEX
Title
net: usb: kalmia: bound RX frame length in kalmia_rx_fixup()
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: usb: kalmia: bound RX frame length in kalmia_rx_fixup()
kalmia_rx_fixup() computes usb_packet_length = skb->len - (2 *
KALMIA_HEADER_LENGTH) as a u16, guarded only by a pre-loop check that
skb->len is at least KALMIA_HEADER_LENGTH, which is 6. A device can
deliver a short bulk-IN frame with skb->len in the 6 to 11 range, or
leave a short trailing remainder on a later loop iteration. Either case
underflows usb_packet_length to about 65530.
That bypasses the usb_packet_length < ether_packet_length truncation path.
The device-supplied ether_packet_length, a le16 up to 65535 read from
header_start[2], then drives a memcmp() and the following skb_trim() and
skb_pull() past the end of the rx buffer. The rx buffer is hard_mtu * 10,
which is 14000 bytes. That is an out of bounds read.
Require both the start and end framing headers to be present before
subtracting them, on every loop iteration.
Severity
No CVSS data available.
Assigner
References
8 references
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
d40261236e8e278cb1936cb5e934262971692b10 , < 391706889a5112feafdc0c68db3ecc7ed325d09c
(git)
Affected: d40261236e8e278cb1936cb5e934262971692b10 , < aa4eef2cbb66ea3dfcfc24bdce798dd78a81b54b (git) Affected: d40261236e8e278cb1936cb5e934262971692b10 , < 2d04c37ed4e1d0f733ad39ec35b5a5d8818b4f4a (git) Affected: d40261236e8e278cb1936cb5e934262971692b10 , < 46ab32870d010e9a057bc5659cea22b7e728ca88 (git) Affected: d40261236e8e278cb1936cb5e934262971692b10 , < c466097d85d52f3aa200736cb4759e66d4bbf6e3 (git) Affected: d40261236e8e278cb1936cb5e934262971692b10 , < e24eb271061db384a3c3ef6f107fe515e68ef222 (git) Affected: d40261236e8e278cb1936cb5e934262971692b10 , < 51e65f1d78457ea4f9513d90ab22c9dccbb35110 (git) Affected: d40261236e8e278cb1936cb5e934262971692b10 , < 47b6bcef6e679593d2e86e04ee72c46a4e2f7139 (git) |
|
| Linux | Linux |
Affected:
3.0
Unaffected: 0 , < 3.0 (semver) Unaffected: 5.10.261 , ≤ 5.10.* (semver) Unaffected: 5.15.212 , ≤ 5.15.* (semver) Unaffected: 6.1.178 , ≤ 6.1.* (semver) Unaffected: 6.6.145 , ≤ 6.6.* (semver) Unaffected: 6.12.96 , ≤ 6.12.* (semver) Unaffected: 6.18.39 , ≤ 6.18.* (semver) Unaffected: 7.1.4 , ≤ 7.1.* (semver) Unaffected: 7.2-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/usb/kalmia.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "391706889a5112feafdc0c68db3ecc7ed325d09c",
"status": "affected",
"version": "d40261236e8e278cb1936cb5e934262971692b10",
"versionType": "git"
},
{
"lessThan": "aa4eef2cbb66ea3dfcfc24bdce798dd78a81b54b",
"status": "affected",
"version": "d40261236e8e278cb1936cb5e934262971692b10",
"versionType": "git"
},
{
"lessThan": "2d04c37ed4e1d0f733ad39ec35b5a5d8818b4f4a",
"status": "affected",
"version": "d40261236e8e278cb1936cb5e934262971692b10",
"versionType": "git"
},
{
"lessThan": "46ab32870d010e9a057bc5659cea22b7e728ca88",
"status": "affected",
"version": "d40261236e8e278cb1936cb5e934262971692b10",
"versionType": "git"
},
{
"lessThan": "c466097d85d52f3aa200736cb4759e66d4bbf6e3",
"status": "affected",
"version": "d40261236e8e278cb1936cb5e934262971692b10",
"versionType": "git"
},
{
"lessThan": "e24eb271061db384a3c3ef6f107fe515e68ef222",
"status": "affected",
"version": "d40261236e8e278cb1936cb5e934262971692b10",
"versionType": "git"
},
{
"lessThan": "51e65f1d78457ea4f9513d90ab22c9dccbb35110",
"status": "affected",
"version": "d40261236e8e278cb1936cb5e934262971692b10",
"versionType": "git"
},
{
"lessThan": "47b6bcef6e679593d2e86e04ee72c46a4e2f7139",
"status": "affected",
"version": "d40261236e8e278cb1936cb5e934262971692b10",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/usb/kalmia.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.0"
},
{
"lessThan": "3.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.261",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.212",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.178",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.145",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.96",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.39",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.4",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.261",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.212",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.178",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.145",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.96",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.39",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.4",
"versionStartIncluding": "3.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2-rc1",
"versionStartIncluding": "3.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "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."
}
],
"providerMetadata": {
"dateUpdated": "2026-07-25T08:50:10.882Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/391706889a5112feafdc0c68db3ecc7ed325d09c"
},
{
"url": "https://git.kernel.org/stable/c/aa4eef2cbb66ea3dfcfc24bdce798dd78a81b54b"
},
{
"url": "https://git.kernel.org/stable/c/2d04c37ed4e1d0f733ad39ec35b5a5d8818b4f4a"
},
{
"url": "https://git.kernel.org/stable/c/46ab32870d010e9a057bc5659cea22b7e728ca88"
},
{
"url": "https://git.kernel.org/stable/c/c466097d85d52f3aa200736cb4759e66d4bbf6e3"
},
{
"url": "https://git.kernel.org/stable/c/e24eb271061db384a3c3ef6f107fe515e68ef222"
},
{
"url": "https://git.kernel.org/stable/c/51e65f1d78457ea4f9513d90ab22c9dccbb35110"
},
{
"url": "https://git.kernel.org/stable/c/47b6bcef6e679593d2e86e04ee72c46a4e2f7139"
}
],
"title": "net: usb: kalmia: bound RX frame length in kalmia_rx_fixup()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-64351",
"datePublished": "2026-07-25T08:50:10.882Z",
"dateReserved": "2026-07-19T15:36:31.782Z",
"dateUpdated": "2026-07-25T08:50:10.882Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-64351",
"date": "2026-07-26",
"epss": "0.00185",
"percentile": "0.0841"
},
"microsoft_vex": {
"current_release_date": "2026-07-26T01:03:15.000Z",
"cve": "CVE-2026-64351",
"id": "msrc_CVE-2026-64351",
"initial_release_date": "2026-07-26T01:03:15.000Z",
"product_status:under_investigation": "1",
"source": "Microsoft CSAF VEX",
"status": "final",
"title": "net: usb: kalmia: bound RX frame length in kalmia_rx_fixup()",
"url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-64351.json",
"version": "1"
},
"nvd": "{\"cve\":{\"id\":\"CVE-2026-64351\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-07-25T10:17:17.407\",\"lastModified\":\"2026-07-25T10:17:17.407\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"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.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/net/usb/kalmia.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"d40261236e8e278cb1936cb5e934262971692b10\",\"lessThan\":\"391706889a5112feafdc0c68db3ecc7ed325d09c\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"d40261236e8e278cb1936cb5e934262971692b10\",\"lessThan\":\"aa4eef2cbb66ea3dfcfc24bdce798dd78a81b54b\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"d40261236e8e278cb1936cb5e934262971692b10\",\"lessThan\":\"2d04c37ed4e1d0f733ad39ec35b5a5d8818b4f4a\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"d40261236e8e278cb1936cb5e934262971692b10\",\"lessThan\":\"46ab32870d010e9a057bc5659cea22b7e728ca88\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"d40261236e8e278cb1936cb5e934262971692b10\",\"lessThan\":\"c466097d85d52f3aa200736cb4759e66d4bbf6e3\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"d40261236e8e278cb1936cb5e934262971692b10\",\"lessThan\":\"e24eb271061db384a3c3ef6f107fe515e68ef222\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"d40261236e8e278cb1936cb5e934262971692b10\",\"lessThan\":\"51e65f1d78457ea4f9513d90ab22c9dccbb35110\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"d40261236e8e278cb1936cb5e934262971692b10\",\"lessThan\":\"47b6bcef6e679593d2e86e04ee72c46a4e2f7139\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/net/usb/kalmia.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"3.0\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"3.0\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.10.261\",\"lessThanOrEqual\":\"5.10.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"5.15.212\",\"lessThanOrEqual\":\"5.15.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.178\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.145\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.96\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.39\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1.4\",\"lessThanOrEqual\":\"7.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2-rc1\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/2d04c37ed4e1d0f733ad39ec35b5a5d8818b4f4a\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/391706889a5112feafdc0c68db3ecc7ed325d09c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/46ab32870d010e9a057bc5659cea22b7e728ca88\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/47b6bcef6e679593d2e86e04ee72c46a4e2f7139\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/51e65f1d78457ea4f9513d90ab22c9dccbb35110\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/aa4eef2cbb66ea3dfcfc24bdce798dd78a81b54b\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/c466097d85d52f3aa200736cb4759e66d4bbf6e3\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/e24eb271061db384a3c3ef6f107fe515e68ef222\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
"redhat_vex": {
"aggregate_severity": "Moderate",
"current_release_date": "2026-07-27T06:02:43+00:00",
"cve": "CVE-2026-64351",
"id": "CVE-2026-64351",
"initial_release_date": "2026-07-25T00:00:00+00:00",
"product_status:known_affected": "260",
"product_status:known_not_affected": "15",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "kernel: net: usb: kalmia: bound RX frame length in kalmia_rx_fixup()",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-64351.json",
"version": "3"
},
"suse_vex": {
"aggregate_severity": "not set",
"current_release_date": "2026-07-25T16:01:12Z",
"cve": "CVE-2026-64351",
"id": "CVE-2026-64351",
"initial_release_date": "2026-07-25T16:01:12Z",
"source": "SUSE CSAF VEX",
"status": "interim",
"title": "SUSE CVE CVE-2026-64351",
"url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-64351.json",
"version": "2"
}
}
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
The MITRE ATT&CK techniques below are AI-generated suggestions, inferred from the description of the
vulnerability by the CIRCL/vulnerability-attack-technique-classification-roberta-base
model, served locally by ML-Gateway.
They have not been verified by an analyst and are provided for guidance only.
Loading…
Loading…