hwmon: (pmbus/adm1266) include PEC byte in pmbus_block_xfer read buffer
In the Linux kernel, the following vulnerability has been resolved: hwmon: (pmbus/adm1266) include PEC byte in pmbus_block_xfer read buffer adm1266_pmbus_block_xfer() sets up the read transaction with .buf = data->read_buf, .len = ADM1266_PMBUS_BLOCK_MAX + 2, but read_buf in struct adm1266_data is declared as u8 read_buf[ADM1266_PMBUS_BLOCK_MAX + 1]; For a max-length block response (length byte = 255 + up to 1 PEC byte), the i2c controller is told to write 257 bytes into a 256-byte buffer, putting one byte past the end of read_buf. The same response also makes the subsequent PEC compare if (crc != msgs[1].buf[msgs[1].buf[0] + 1]) read a byte beyond the array. Bump the read_buf declaration to ADM1266_PMBUS_BLOCK_MAX + 2 so the buffer can hold the length byte, up to 255 payload bytes, and the PEC byte the i2c_msg length already accounts for.
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 5.10.258, 5.15.209, 6.1.175, 6.12.92, 6.18.34, 6.6.142, 7.0.11
- CVEs
- CVE-2026-64086
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 7 Nov 2026, 04:43 UTC · Revision 1
Source evidence
hwmon: (pmbus/adm1266) include PEC byte in pmbus_block_xfer read buffer
core-osv · Original sourcePublished 19 Jul 2026, 15:39 UTC
In the Linux kernel, the following vulnerability has been resolved: hwmon: (pmbus/adm1266) include PEC byte in pmbus_block_xfer read buffer adm1266_pmbus_block_xfer() sets up the read transaction with .buf = data->read_buf, .len = ADM1266_PMBUS_BLOCK_MAX + 2, but read_buf in struct adm1266_data is declared as u8 read_buf[ADM1266_PMBUS_BLOCK_MAX + 1]; For a max-length block response (length byte = 255 + up to 1 PEC byte), the i2c controller is told to write 257 bytes into a 256-byte buffer, putting one byte past the end of read_buf. The same response also makes the subsequent PEC compare if (crc != msgs[1].buf[msgs[1].buf[0] + 1]) read a byte beyond the array. Bump the read_buf declaration to ADM1266_PMBUS_BLOCK_MAX + 2 so the buffer can hold the length byte, up to 255 payload bytes, and the PEC byte the i2c_msg length already accounts for.
osv:CVE-2026-64086
Kernel
Fixed versions: 5.10.258, 5.15.209, 6.1.175, 6.6.142, 6.12.92, 6.18.34, 7.0.11
Complete source record
{
"id": "780958b1be585035bfb99c01047d782bfd65011fde0e778aee8f1b3ccf95624f",
"url": "https://osv.dev/vulnerability/CVE-2026-64086",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "hwmon: (pmbus/adm1266) include PEC byte in pmbus_block_xfer read buffer",
"summary": "In the Linux kernel, the following vulnerability has been resolved: hwmon: (pmbus/adm1266) include PEC byte in pmbus_block_xfer read buffer adm1266_pmbus_block_xfer() sets up the read transaction with .buf = data->read_buf, .len = ADM1266_PMBUS_BLOCK_MAX + 2, but read_buf in struct adm1266_data is declared as u8 read_buf[ADM1266_PMBUS_BLOCK_MAX + 1]; For a max-length block response (length byte = 255 + up to 1 PEC byte), the i2c controller is told to write 257 bytes into a 256-byte buffer, putting one byte past the end of read_buf. The same response also makes the subsequent PEC compare if (crc != msgs[1].buf[msgs[1].buf[0] + 1]) read a byte beyond the array. Bump the read_buf declaration to ADM1266_PMBUS_BLOCK_MAX + 2 so the buffer can hold the length byte, up to 255 payload bytes, and the PEC byte the i2c_msg length already accounts for.",
"evidence": "osv:CVE-2026-64086",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "5.10.258",
"evidence": "/affected/1/ranges"
},
{
"value": "5.15.209",
"evidence": "/affected/1/ranges"
},
{
"value": "6.1.175",
"evidence": "/affected/1/ranges"
},
{
"value": "6.6.142",
"evidence": "/affected/1/ranges"
},
{
"value": "6.12.92",
"evidence": "/affected/1/ranges"
},
{
"value": "6.18.34",
"evidence": "/affected/1/ranges"
},
{
"value": "7.0.11",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "high",
"structured": {
"id": "CVE-2026-64086",
"aliases": [
"CVE-2026-64086"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "407dc802a9c0809ca6a48de4b4c63305eb84ef56"
},
{
"fixed": "397d3f523bfff2f4e3dacf9b1339bd76dc207f78"
},
{
"fixed": "472744f69d25a2d5111ad62f1d62579dce2c13c8"
},
{
"fixed": "528a9f88e88502d0c2f2052a279415074cd83715"
},
{
"fixed": "d94ceb16e55b6d8019ab069e357c76ac42f0ffbc"
},
{
"fixed": "bd5be3fa5de6dbf61f1b3cec6b79c2c2f8065694"
},
{
"fixed": "2279c342d94eca225bf9f301c8806a05a1c81619"
},
{
"fixed": "a6c802145a8de0830bca803c6d415f7e9e683624"
},
{
"fixed": "487566cb1ccdf3756fdd7bf8d875e612ff3169bb"
}
]
}
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64086.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.10.0"
},
{
"fixed": "5.10.258"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.11.0"
},
{
"fixed": "5.15.209"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.16.0"
},
{
"fixed": "6.1.175"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.2.0"
},
{
"fixed": "6.6.142"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.7.0"
},
{
"fixed": "6.12.92"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.13.0"
},
{
"fixed": "6.18.34"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.19.0"
},
{
"fixed": "7.0.11"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-64086.json"
}
}
],
"modified": "2026-10-28T02:30:49.885439188Z",
"provider": "osv",
"references": [
"https://git.kernel.org/stable/c/2279c342d94eca225bf9f301c8806a05a1c81619",
"https://git.kernel.org/stable/c/397d3f523bfff2f4e3dacf9b1339bd76dc207f78",
"https://git.kernel.org/stable/c/472744f69d25a2d5111ad62f1d62579dce2c13c8",
"https://git.kernel.org/stable/c/487566cb1ccdf3756fdd7bf8d875e612ff3169bb",
"https://git.kernel.org/stable/c/528a9f88e88502d0c2f2052a279415074cd83715",
"https://git.kernel.org/stable/c/a6c802145a8de0830bca803c6d415f7e9e683624",
"https://git.kernel.org/stable/c/bd5be3fa5de6dbf61f1b3cec6b79c2c2f8065694",
"https://git.kernel.org/stable/c/d94ceb16e55b6d8019ab069e357c76ac42f0ffbc",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64086.json",
"https://nvd.nist.gov/vuln/detail/CVE-2026-64086",
"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
],
"provider_metadata": {
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/64xxx/CVE-2026-64086.json"
}
},
"related_cves": [
{
"value": "CVE-2026-64086",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 518222,
"published_at": "2026-07-19T15:39:56.749+00:00"
}