CVE-2026-72141 (GCVE-0-2026-72141)

Vulnerability from cvelistv5 – Published: 2026-08-15 05:53 – Updated: 2026-08-17 05:40
VLAI
Title
i2c: imx: fix locked bus on SMBus block-read of 0 (IRQ)
Summary
In the Linux kernel, the following vulnerability has been resolved: i2c: imx: fix locked bus on SMBus block-read of 0 (IRQ) SMBus 3.1 6.5.7 allows a Block Read byte count of 0, but the interrupt-driven block-read state machine rejects it as -EPROTO. Worse, it returns without a NACK+STOP: the next receive cycle has already started, so the target keeps holding SDA and the bus stays stuck until a power cycle of this i2c controller. Accept count=0: NACK the in-flight dummy byte (TXAK) and set msg->len to 2 so i2c_imx_isr_read_continue() emits STOP via its normal last-byte path. The dummy byte is discarded; block-read callers only consume buf[0..count-1]. Reading I2DR has likewise already armed the next byte on the count > I2C_SMBUS_BLOCK_MAX error path, so NACK it (TXAK) before aborting with -EPROTO; otherwise the failing transfer's STOP cannot complete and the bus stays held. The atomic path regressed earlier (v3.16) and is fixed separately; this patch covers only the v6.13 state-machine rework.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 5f5c2d4579ca6836f5604cca979debd68ecfe23f , < 5d3240f42a667e29262aff76fdebfcdac4980626 (git)
Affected: 5f5c2d4579ca6836f5604cca979debd68ecfe23f , < 56ddfc18ea8f7d77747658892873eb632b2ed530 (git)
Affected: 5f5c2d4579ca6836f5604cca979debd68ecfe23f , < 07fd9385f0d87dff4b34f355f68adf701080cb24 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.13
Unaffected: 0 , < 6.13 (semver)
Unaffected: 6.18.40 , ≤ 6.18.* (semver)
Unaffected: 7.1.5 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/i2c/busses/i2c-imx.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "5d3240f42a667e29262aff76fdebfcdac4980626",
              "status": "affected",
              "version": "5f5c2d4579ca6836f5604cca979debd68ecfe23f",
              "versionType": "git"
            },
            {
              "lessThan": "56ddfc18ea8f7d77747658892873eb632b2ed530",
              "status": "affected",
              "version": "5f5c2d4579ca6836f5604cca979debd68ecfe23f",
              "versionType": "git"
            },
            {
              "lessThan": "07fd9385f0d87dff4b34f355f68adf701080cb24",
              "status": "affected",
              "version": "5f5c2d4579ca6836f5604cca979debd68ecfe23f",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/i2c/busses/i2c-imx.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.13"
            },
            {
              "lessThan": "6.13",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.40",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.40",
                  "versionStartIncluding": "6.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.5",
                  "versionStartIncluding": "6.13",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.13",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ni2c: imx: fix locked bus on SMBus block-read of 0 (IRQ)\n\nSMBus 3.1 6.5.7 allows a Block Read byte count of 0, but the\ninterrupt-driven block-read state machine rejects it as -EPROTO. Worse,\nit returns without a NACK+STOP: the next receive cycle has already\nstarted, so the target keeps holding SDA and the bus stays stuck until a\npower cycle of this i2c controller.\n\nAccept count=0: NACK the in-flight dummy byte (TXAK) and set msg-\u003elen to\n2 so i2c_imx_isr_read_continue() emits STOP via its normal last-byte\npath. The dummy byte is discarded; block-read callers only consume\nbuf[0..count-1].\n\nReading I2DR has likewise already armed the next byte on the\ncount \u003e I2C_SMBUS_BLOCK_MAX error path, so NACK it (TXAK) before aborting\nwith -EPROTO; otherwise the failing transfer\u0027s STOP cannot complete and\nthe bus stays held.\n\nThe atomic path regressed earlier (v3.16) and is fixed separately; this\npatch covers only the v6.13 state-machine rework."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.5,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - On NXP Layerscape/i.MX appliances, remotely reachable IPMI-over-LAN or management-plane requests invoke ipmi_ssif/pmbus i2c_smbus_read_block_data() on imx-i2c; a malicious or compromised bus peripheral returning SMBus block-read count 0 reaches the vulnerable IRQ handler without local login.\nAC:L - Once an SMBus block-read transaction is initiated and the target returns count byte 0 (a valid SMBus 3.1 response), the IRQ path deterministically omits NACK/STOP and locks the bus; the attacker controls both transaction initiation and slave response via compromised BMC/PMBus device or planted peripheral.\nPR:N - No Linux credentials are required when a malicious or compromised I2C slave returns count 0 during kernel-initiated SMBus block reads from IPMI SSIF, PMBus hwmon polling, or other automated drivers; OS privilege is not needed beyond influencing the bus response.\nUI:N - Exploitation requires no victim interaction because kernel subsystems (IPMI SSIF, PMBus hwmon, sensor drivers) automatically perform SMBus block reads during normal remote-management or background monitoring operations once the bus device responds.\nS:U - Impact is confined to locking the imx-i2c controller and attached I2C bus within the same kernel/host security boundary; it does not cross VM, container, or IOMMU isolation boundaries.\nC:N - The flaw is a missing NACK/STOP during SMBus block-read length handling; it causes a stuck I2C bus but does not corrupt kernel memory, leak data, or provide read primitives.\nI:N - No kernel or user data is modified; the bug only leaves the I2C controller in a hung bus state without write primitives, code execution, or integrity violations beyond loss of bus function.\nA:H - A successful trigger permanently locks the imx-i2c bus until controller power-cycle, denying all further I2C/SMBus communication to PMICs, sensors, EEPROMs, and BMC SSIF on safety-critical embedded, automotive, and datacenter systems."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:40:49.962Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/5d3240f42a667e29262aff76fdebfcdac4980626"
        },
        {
          "url": "https://git.kernel.org/stable/c/56ddfc18ea8f7d77747658892873eb632b2ed530"
        },
        {
          "url": "https://git.kernel.org/stable/c/07fd9385f0d87dff4b34f355f68adf701080cb24"
        }
      ],
      "title": "i2c: imx: fix locked bus on SMBus block-read of 0 (IRQ)",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-72141",
    "datePublished": "2026-08-15T05:53:14.754Z",
    "dateReserved": "2026-08-09T03:40:39.908Z",
    "dateUpdated": "2026-08-17T05:40:49.962Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-72141",
      "date": "2026-09-21",
      "epss": "0.00576",
      "percentile": "0.45959"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/i2c/busses/i2c-imx.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "5d3240f42a667e29262aff76fdebfcdac4980626",
                    "status": "affected",
                    "version": "5f5c2d4579ca6836f5604cca979debd68ecfe23f",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "56ddfc18ea8f7d77747658892873eb632b2ed530",
                    "status": "affected",
                    "version": "5f5c2d4579ca6836f5604cca979debd68ecfe23f",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "07fd9385f0d87dff4b34f355f68adf701080cb24",
                    "status": "affected",
                    "version": "5f5c2d4579ca6836f5604cca979debd68ecfe23f",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/i2c/busses/i2c-imx.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.13"
                  },
                  {
                    "lessThan": "6.13",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.40",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.1.*",
                    "status": "unaffected",
                    "version": "7.1.5",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.2",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ni2c: imx: fix locked bus on SMBus block-read of 0 (IRQ)\n\nSMBus 3.1 6.5.7 allows a Block Read byte count of 0, but the\ninterrupt-driven block-read state machine rejects it as -EPROTO. Worse,\nit returns without a NACK+STOP: the next receive cycle has already\nstarted, so the target keeps holding SDA and the bus stays stuck until a\npower cycle of this i2c controller.\n\nAccept count=0: NACK the in-flight dummy byte (TXAK) and set msg-\u003elen to\n2 so i2c_imx_isr_read_continue() emits STOP via its normal last-byte\npath. The dummy byte is discarded; block-read callers only consume\nbuf[0..count-1].\n\nReading I2DR has likewise already armed the next byte on the\ncount \u003e I2C_SMBUS_BLOCK_MAX error path, so NACK it (TXAK) before aborting\nwith -EPROTO; otherwise the failing transfer\u0027s STOP cannot complete and\nthe bus stays held.\n\nThe atomic path regressed earlier (v3.16) and is fixed separately; this\npatch covers only the v6.13 state-machine rework."
          }
        ],
        "id": "CVE-2026-72141",
        "lastModified": "2026-08-17T06:18:14.070",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "HIGH",
                "baseScore": 7.5,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "NONE",
                "integrityImpact": "NONE",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 3.9,
              "impactScore": 3.6,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-08-15T06:21:31.717",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/07fd9385f0d87dff4b34f355f68adf701080cb24"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/56ddfc18ea8f7d77747658892873eb632b2ed530"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/5d3240f42a667e29262aff76fdebfcdac4980626"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Low",
      "current_release_date": "2026-08-19T05:25:46+00:00",
      "cve": "CVE-2026-72141",
      "id": "CVE-2026-72141",
      "initial_release_date": "2026-08-15T00:00:00+00:00",
      "product_status:known_affected": "76",
      "product_status:known_not_affected": "198",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: i2c: imx: fix locked bus on SMBus block-read of 0 (IRQ)",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-72141.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-08-31T13:30:20Z",
      "cve": "CVE-2026-72141",
      "id": "CVE-2026-72141",
      "initial_release_date": "2026-08-31T13:30:20Z",
      "product_status:known_not_affected": "362",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-72141",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-72141.json",
      "version": "2"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

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…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…