CVE-2026-89469 (GCVE-0-2026-89469)
Vulnerability from cvelistv5
Published
2026-09-11 19:43
Modified
2026-10-19 08:47
Summary
In the Linux kernel, the following vulnerability has been resolved: power: supply: lp8727: fix use-after-free in lp8727_release_irq() lp8727_isr_func(), the threaded IRQ handler, is the only caller that arms pchg->work via schedule_delayed_work(). lp8727_release_irq() currently cancels the work before freeing the IRQ, so an IRQ delivered in between can re-arm the work through the threaded handler. After .remove returns the devm layer frees pchg while lp8727_delayed_func() may still run and dereference it. Free the IRQ first so the threaded handler is quiesced and can no longer queue work, then cancel the delayed work to drain the final generation. This issue was found by an in-house static analysis tool.
Impacted products
Vendor Product Version
Linux Linux Version: d71fda01610269e3aaedd451f8d3e34cdf550036
Version: d71fda01610269e3aaedd451f8d3e34cdf550036
Version: d71fda01610269e3aaedd451f8d3e34cdf550036
Version: d71fda01610269e3aaedd451f8d3e34cdf550036
Version: d71fda01610269e3aaedd451f8d3e34cdf550036
Version: d71fda01610269e3aaedd451f8d3e34cdf550036
Version: d71fda01610269e3aaedd451f8d3e34cdf550036
Version: d71fda01610269e3aaedd451f8d3e34cdf550036
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/power/supply/lp8727_charger.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "1321a4e6247164312eabc6d07f88572da2ee308c",
              "status": "affected",
              "version": "d71fda01610269e3aaedd451f8d3e34cdf550036",
              "versionType": "git"
            },
            {
              "lessThan": "dc1dc2837f8e53bde2f16d52a63f4142e21757f1",
              "status": "affected",
              "version": "d71fda01610269e3aaedd451f8d3e34cdf550036",
              "versionType": "git"
            },
            {
              "lessThan": "035cc6bc4d412dd4302862e8f859b784fcd4653b",
              "status": "affected",
              "version": "d71fda01610269e3aaedd451f8d3e34cdf550036",
              "versionType": "git"
            },
            {
              "lessThan": "6f0ce09d60a0e4fab6f9ebe8294750481f0c19dd",
              "status": "affected",
              "version": "d71fda01610269e3aaedd451f8d3e34cdf550036",
              "versionType": "git"
            },
            {
              "lessThan": "80d4e40a85ba524e66c8c748aa7bb19eaf2f69df",
              "status": "affected",
              "version": "d71fda01610269e3aaedd451f8d3e34cdf550036",
              "versionType": "git"
            },
            {
              "lessThan": "ab6b1ad710bed7931540733ce145493fece8ceef",
              "status": "affected",
              "version": "d71fda01610269e3aaedd451f8d3e34cdf550036",
              "versionType": "git"
            },
            {
              "lessThan": "6ab3128292df67295de1b2a86f21d89cf6612a7e",
              "status": "affected",
              "version": "d71fda01610269e3aaedd451f8d3e34cdf550036",
              "versionType": "git"
            },
            {
              "lessThan": "ceb6ac43b0f591722401922ceb958ce2616935e0",
              "status": "affected",
              "version": "d71fda01610269e3aaedd451f8d3e34cdf550036",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/power/supply/lp8727_charger.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "3.7"
            },
            {
              "lessThan": "3.7",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.270",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.221",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.188",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.157",
              "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",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.270",
                  "versionStartIncluding": "3.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.221",
                  "versionStartIncluding": "3.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.188",
                  "versionStartIncluding": "3.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.157",
                  "versionStartIncluding": "3.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.109",
                  "versionStartIncluding": "3.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.50",
                  "versionStartIncluding": "3.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.4",
                  "versionStartIncluding": "3.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3",
                  "versionStartIncluding": "3.7",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\npower: supply: lp8727: fix use-after-free in lp8727_release_irq()\n\nlp8727_isr_func(), the threaded IRQ handler, is the only caller that arms\npchg-\u003ework via schedule_delayed_work().  lp8727_release_irq() currently\ncancels the work before freeing the IRQ, so an IRQ delivered in between\ncan re-arm the work through the threaded handler.  After .remove returns\nthe devm layer frees pchg while lp8727_delayed_func() may still run and\ndereference it.\n\nFree the IRQ first so the threaded handler is quiesced and can no longer\nqueue work, then cancel the delayed work to drain the final generation.\n\nThis issue was found by an in-house static analysis tool."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.4,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The UAF is reached only when the onboard I2C LP8727 Micro/Mini USB charger is torn down locally (sysfs unbind, rmmod, or shutdown/reboot) so lp8727_delayed_func() runs after devm frees pchg; IRQs come from the chip INT GPIO, not from any network protocol.\nAC:L - The attacker controls both sides of the race: they start teardown while USB plug/unplug IRQs re-arm pchg-\u003ework after cancel_delayed_work_sync() and before free_irq(); the 270ms debounce then runs lp8727_delayed_func() on already-freed memory, so the UAF is retriable rather than layout-dependent.\nPR:N - On battery-powered devices with this USB charger IC, brief physical possession is enough to force power-off/reboot with no Linux account while charger IRQs fire during remove, as for the prior RT9455 teardown UAFs (CVE-2026-46270, CVE-2026-89465); CAP_SYS_ADMIN unbind is only an alternate path.\nUI:N - No victim action is required; the attacker performs teardown and any charging-port manipulation themselves, without the victim opening files, mounting filesystems, or approving prompts.\nS:U - The UAF corrupts kernel heap inside the same OS security authority; it is not a VM escape, IOMMU/DMA isolation bypass, or sandbox breakout.\nC:H - lp8727_delayed_func() recovers the freed lp8727_chg via container_of() and reads client, lock, pdata, and psy pointers, a classic kernel heap UAF that enables arbitrary disclosure via slab reuse.\nI:H - The same callback writes pchg fields, issues I2C SMBus writes, and calls power_supply_changed() on freed ac/usb/batt objects (changed flag and schedule_work), enabling heap-spray arbitrary writes and control-flow hijack.\nA:H - Use-after-free of pchg and the unregistered power_supply objects from workqueue context causes a kernel oops or panic even when the UAF is not fully exploited."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-19T08:47:18.365Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/1321a4e6247164312eabc6d07f88572da2ee308c"
        },
        {
          "url": "https://git.kernel.org/stable/c/dc1dc2837f8e53bde2f16d52a63f4142e21757f1"
        },
        {
          "url": "https://git.kernel.org/stable/c/035cc6bc4d412dd4302862e8f859b784fcd4653b"
        },
        {
          "url": "https://git.kernel.org/stable/c/6f0ce09d60a0e4fab6f9ebe8294750481f0c19dd"
        },
        {
          "url": "https://git.kernel.org/stable/c/80d4e40a85ba524e66c8c748aa7bb19eaf2f69df"
        },
        {
          "url": "https://git.kernel.org/stable/c/ab6b1ad710bed7931540733ce145493fece8ceef"
        },
        {
          "url": "https://git.kernel.org/stable/c/6ab3128292df67295de1b2a86f21d89cf6612a7e"
        },
        {
          "url": "https://git.kernel.org/stable/c/ceb6ac43b0f591722401922ceb958ce2616935e0"
        }
      ],
      "title": "power: supply: lp8727: fix use-after-free in lp8727_release_irq()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-89469",
    "datePublished": "2026-09-11T19:43:28.560Z",
    "dateReserved": "2026-09-11T19:38:34.709Z",
    "dateUpdated": "2026-10-19T08:47:18.365Z",
    "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…