CVE-2026-53400 (GCVE-0-2026-53400)
Vulnerability from cvelistv5
Published
2026-07-19 12:02
Modified
2026-08-17 04:50
Summary
In the Linux kernel, the following vulnerability has been resolved: i2c: core: fix adapter registration race Adapters can be looked up based on their id using i2c_get_adapter() which takes a reference to the embedded struct device. Make sure that the adapter (including its struct device) has been initialised before adding it to the IDR to avoid accessing uninitialised data which could, for example, lead to NULL-pointer dereferences or use-after-free. Note that the i2c-dev chardev, which is registered from a bus notifier, currently uses i2c_get_adapter() so the adapter needs to be added to the IDR before registration.
Impacted products
Vendor Product Version
Linux Linux Version: 6e13e641841833cc2aa5baefe89bb04bc388801b
Version: 6e13e641841833cc2aa5baefe89bb04bc388801b
Version: 6e13e641841833cc2aa5baefe89bb04bc388801b
Version: 6e13e641841833cc2aa5baefe89bb04bc388801b
Version: 6e13e641841833cc2aa5baefe89bb04bc388801b
Version: 6e13e641841833cc2aa5baefe89bb04bc388801b
Version: 6e13e641841833cc2aa5baefe89bb04bc388801b
Version: 6e13e641841833cc2aa5baefe89bb04bc388801b
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/i2c/i2c-core-base.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "2e57c788e71f1763445f812eba4e0b4a2fbd0646",
              "status": "affected",
              "version": "6e13e641841833cc2aa5baefe89bb04bc388801b",
              "versionType": "git"
            },
            {
              "lessThan": "a4365bc41baaf67f3a5aa8556d23544e6ec7480a",
              "status": "affected",
              "version": "6e13e641841833cc2aa5baefe89bb04bc388801b",
              "versionType": "git"
            },
            {
              "lessThan": "1febb174815bcae56d73587e99e8f87e02f0784d",
              "status": "affected",
              "version": "6e13e641841833cc2aa5baefe89bb04bc388801b",
              "versionType": "git"
            },
            {
              "lessThan": "da9d8d9711f78deebc202d0cffcf577e45ee8621",
              "status": "affected",
              "version": "6e13e641841833cc2aa5baefe89bb04bc388801b",
              "versionType": "git"
            },
            {
              "lessThan": "78793c75dc6d0ff2e4d50ad617349b328a99054e",
              "status": "affected",
              "version": "6e13e641841833cc2aa5baefe89bb04bc388801b",
              "versionType": "git"
            },
            {
              "lessThan": "6a946038f2a5a8c29048c6af369d4e391448a5c5",
              "status": "affected",
              "version": "6e13e641841833cc2aa5baefe89bb04bc388801b",
              "versionType": "git"
            },
            {
              "lessThan": "a4c8094bbf4c6fa68b17e3b16f6a0a1b7a14f3e0",
              "status": "affected",
              "version": "6e13e641841833cc2aa5baefe89bb04bc388801b",
              "versionType": "git"
            },
            {
              "lessThan": "ba14d7cf2fe7284610a29854bdff22b2537d3ce6",
              "status": "affected",
              "version": "6e13e641841833cc2aa5baefe89bb04bc388801b",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/i2c/i2c-core-base.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "2.6.22"
            },
            {
              "lessThan": "2.6.22",
              "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.95",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.38",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.3",
              "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": "5.10.261",
                  "versionStartIncluding": "2.6.22",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.212",
                  "versionStartIncluding": "2.6.22",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.178",
                  "versionStartIncluding": "2.6.22",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.145",
                  "versionStartIncluding": "2.6.22",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.95",
                  "versionStartIncluding": "2.6.22",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.38",
                  "versionStartIncluding": "2.6.22",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.3",
                  "versionStartIncluding": "2.6.22",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "2.6.22",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ni2c: core: fix adapter registration race\n\nAdapters can be looked up based on their id using i2c_get_adapter()\nwhich takes a reference to the embedded struct device.\n\nMake sure that the adapter (including its struct device) has been\ninitialised before adding it to the IDR to avoid accessing uninitialised\ndata which could, for example, lead to NULL-pointer dereferences or\nuse-after-free.\n\nNote that the i2c-dev chardev, which is registered from a bus notifier,\ncurrently uses i2c_get_adapter() so the adapter needs to be added to the\nIDR before registration."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The flaw is reached through local kernel I2C adapter registration/lookup paths (module load, hotplug, concurrent probe) and userspace access to /dev/i2c-* via open(); there is no remote network entry point to i2c_get_adapter().\nAC:L - An attacker can repeatedly trigger adapter registration (e.g., modprobe/rmmod of I2C drivers, USB hotplug) while concurrently driving i2c_get_adapter() lookups, controlling both sides of the race window rather than depending on uncontrollable timing.\nPR:L - Exploitation requires a local unprivileged user with basic capabilities such as membership in the i2c group for /dev/i2c-* access or CAP_SYS_MODULE within a user namespace to load I2C drivers, not full init-namespace root.\nUI:N - No victim interaction is required; the attacker can autonomously trigger the race through module loading, hotplug, and concurrent I2C device access.\nS:U - Impact is confined to kernel memory corruption and privilege escalation within the same security authority; this is not a VM escape or cross-boundary sandbox breakout.\nC:H - Calling get_device() on an uninitialized struct device can cause use-after-free and read of uninitialized kobject memory, which the fix commit explicitly identifies as a UAF/info-disclosure class bug.\nI:H - Use-after-free and uninitialized kobject refcount corruption can be leveraged for arbitrary kernel memory writes and control-flow hijacking, consistent with UAF exploitation potential cited in the fix.\nA:H - The race can trigger NULL-pointer dereferences or use-after-free in kernel context, causing oops/panic and complete loss of system availability."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T04:50:52.550Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/2e57c788e71f1763445f812eba4e0b4a2fbd0646"
        },
        {
          "url": "https://git.kernel.org/stable/c/a4365bc41baaf67f3a5aa8556d23544e6ec7480a"
        },
        {
          "url": "https://git.kernel.org/stable/c/1febb174815bcae56d73587e99e8f87e02f0784d"
        },
        {
          "url": "https://git.kernel.org/stable/c/da9d8d9711f78deebc202d0cffcf577e45ee8621"
        },
        {
          "url": "https://git.kernel.org/stable/c/78793c75dc6d0ff2e4d50ad617349b328a99054e"
        },
        {
          "url": "https://git.kernel.org/stable/c/6a946038f2a5a8c29048c6af369d4e391448a5c5"
        },
        {
          "url": "https://git.kernel.org/stable/c/a4c8094bbf4c6fa68b17e3b16f6a0a1b7a14f3e0"
        },
        {
          "url": "https://git.kernel.org/stable/c/ba14d7cf2fe7284610a29854bdff22b2537d3ce6"
        }
      ],
      "title": "i2c: core: fix adapter registration race",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-53400",
    "datePublished": "2026-07-19T12:02:00.632Z",
    "dateReserved": "2026-06-09T07:44:35.403Z",
    "dateUpdated": "2026-08-17T04:50:52.550Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…