{"api_version":"1","generated_at":"2026-09-12T15:30:07+00:00","cve":"CVE-2026-80951","urls":{"html":"https://cve.report/CVE-2026-80951","api":"https://cve.report/api/cve/CVE-2026-80951.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-80951","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-80951"},"summary":{"title":"i3c: master: svc: bound IBI payload to the requested max_payload_len","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ni3c: master: svc: bound IBI payload to the requested max_payload_len\n\nsvc_i3c_master_handle_ibi() reads the IBI payload from the RX FIFO into\nthe IBI slot. The loop is bounded by the hardware FIFO size\n(SVC_I3C_FIFO_SIZE), not by the slot size.\n\nslot->data points into the IBI pool, which i3c_generic_ibi_alloc_pool()\nsizes at max_payload_len per slot. svc_i3c_master_request_ibi() only\nrejects a max_payload_len larger than SVC_I3C_FIFO_SIZE, so a driver can\nrequest a smaller one. mctp-i3c requests 1. Each readsb() then copies the\ncontroller RXCOUNT bytes (up to 31) with no check against the slot size.\nA device that sends more bytes than the slot holds writes past\nslot->data, an out-of-bounds write into the IBI pool.\n\nBound the loop by dev->ibi->max_payload_len and clamp each read to the\nspace left in the slot, the same way dw-i3c does. A device can still send\nmore than the requested payload. Flush the leftover bytes from the RX FIFO\nso they do not leak into the next transfer.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-09-11 20:19:00","updated_at":"2026-09-11 20:19:00"},"problem_types":[],"metrics":[],"references":[{"url":"https://git.kernel.org/stable/c/aac3c5aababc7fb69d5bf5b0cc52d308574e3a8c","name":"https://git.kernel.org/stable/c/aac3c5aababc7fb69d5bf5b0cc52d308574e3a8c","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/f296a0d5907bf88314dfda67245f7f69d1552470","name":"https://git.kernel.org/stable/c/f296a0d5907bf88314dfda67245f7f69d1552470","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/5697d779577e2786ff3348ae9b77020ac0cf0aab","name":"https://git.kernel.org/stable/c/5697d779577e2786ff3348ae9b77020ac0cf0aab","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/e2bda39d7f9f285ec803e200b5c1f17143d0b483","name":"https://git.kernel.org/stable/c/e2bda39d7f9f285ec803e200b5c1f17143d0b483","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-80951","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-80951","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected dd3c52846d5954acd43f0e771689302f27dadc28 f296a0d5907bf88314dfda67245f7f69d1552470 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected dd3c52846d5954acd43f0e771689302f27dadc28 5697d779577e2786ff3348ae9b77020ac0cf0aab git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected dd3c52846d5954acd43f0e771689302f27dadc28 aac3c5aababc7fb69d5bf5b0cc52d308574e3a8c git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected dd3c52846d5954acd43f0e771689302f27dadc28 e2bda39d7f9f285ec803e200b5c1f17143d0b483 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5.12","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.12 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.109 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.50 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2.4 7.2.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.3-rc1 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":null,"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["drivers/i3c/master/svc-i3c-master.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"f296a0d5907bf88314dfda67245f7f69d1552470","status":"affected","version":"dd3c52846d5954acd43f0e771689302f27dadc28","versionType":"git"},{"lessThan":"5697d779577e2786ff3348ae9b77020ac0cf0aab","status":"affected","version":"dd3c52846d5954acd43f0e771689302f27dadc28","versionType":"git"},{"lessThan":"aac3c5aababc7fb69d5bf5b0cc52d308574e3a8c","status":"affected","version":"dd3c52846d5954acd43f0e771689302f27dadc28","versionType":"git"},{"lessThan":"e2bda39d7f9f285ec803e200b5c1f17143d0b483","status":"affected","version":"dd3c52846d5954acd43f0e771689302f27dadc28","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["drivers/i3c/master/svc-i3c-master.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"5.12"},{"lessThan":"5.12","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.109","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.50","versionType":"semver"},{"lessThanOrEqual":"7.2.*","status":"unaffected","version":"7.2.4","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.3-rc1","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.109","versionStartIncluding":"5.12","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.50","versionStartIncluding":"5.12","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2.4","versionStartIncluding":"5.12","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.3-rc1","versionStartIncluding":"5.12","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ni3c: master: svc: bound IBI payload to the requested max_payload_len\n\nsvc_i3c_master_handle_ibi() reads the IBI payload from the RX FIFO into\nthe IBI slot. The loop is bounded by the hardware FIFO size\n(SVC_I3C_FIFO_SIZE), not by the slot size.\n\nslot->data points into the IBI pool, which i3c_generic_ibi_alloc_pool()\nsizes at max_payload_len per slot. svc_i3c_master_request_ibi() only\nrejects a max_payload_len larger than SVC_I3C_FIFO_SIZE, so a driver can\nrequest a smaller one. mctp-i3c requests 1. Each readsb() then copies the\ncontroller RXCOUNT bytes (up to 31) with no check against the slot size.\nA device that sends more bytes than the slot holds writes past\nslot->data, an out-of-bounds write into the IBI pool.\n\nBound the loop by dev->ibi->max_payload_len and clamp each read to the\nspace left in the slot, the same way dw-i3c does. A device can still send\nmore than the requested payload. Flush the leftover bytes from the RX FIFO\nso they do not leak into the next transfer."}],"providerMetadata":{"dateUpdated":"2026-09-11T19:42:21.115Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/f296a0d5907bf88314dfda67245f7f69d1552470"},{"url":"https://git.kernel.org/stable/c/5697d779577e2786ff3348ae9b77020ac0cf0aab"},{"url":"https://git.kernel.org/stable/c/aac3c5aababc7fb69d5bf5b0cc52d308574e3a8c"},{"url":"https://git.kernel.org/stable/c/e2bda39d7f9f285ec803e200b5c1f17143d0b483"}],"title":"i3c: master: svc: bound IBI payload to the requested max_payload_len","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-80951","datePublished":"2026-09-11T19:42:21.115Z","dateReserved":"2026-08-26T14:34:25.804Z","dateUpdated":"2026-09-11T19:42:21.115Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-09-11 20:19:00","lastModifiedDate":"2026-09-11 20:19:00","problem_types":[],"metrics":[],"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"80951","Ordinal":"1","Title":"i3c: master: svc: bound IBI payload to the requested max_payload","CVE":"CVE-2026-80951","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"80951","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\ni3c: master: svc: bound IBI payload to the requested max_payload_len\n\nsvc_i3c_master_handle_ibi() reads the IBI payload from the RX FIFO into\nthe IBI slot. The loop is bounded by the hardware FIFO size\n(SVC_I3C_FIFO_SIZE), not by the slot size.\n\nslot->data points into the IBI pool, which i3c_generic_ibi_alloc_pool()\nsizes at max_payload_len per slot. svc_i3c_master_request_ibi() only\nrejects a max_payload_len larger than SVC_I3C_FIFO_SIZE, so a driver can\nrequest a smaller one. mctp-i3c requests 1. Each readsb() then copies the\ncontroller RXCOUNT bytes (up to 31) with no check against the slot size.\nA device that sends more bytes than the slot holds writes past\nslot->data, an out-of-bounds write into the IBI pool.\n\nBound the loop by dev->ibi->max_payload_len and clamp each read to the\nspace left in the slot, the same way dw-i3c does. A device can still send\nmore than the requested payload. Flush the leftover bytes from the RX FIFO\nso they do not leak into the next transfer.","Type":"Description","Title":"i3c: master: svc: bound IBI payload to the requested max_payload"}]}}}