{"id":"CVE-2026-89464","revision":"4577dbfb0e55487c80931547c3f1a6ae","records":[{"revision":"4577dbfb0e55487c80931547c3f1a6ae","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-89464","aliases":[],"title":"power: supply: twl4030_charger: cancel workers via devm","description":"In the Linux kernel, the following vulnerability has been resolved:\n\npower: supply: twl4030_charger: cancel workers via devm\n\nbci is devm-allocated. Two workers (bci->work and bci->current_worker)\ndereference it. twl4030_bci_remove() disables charging and masks\ninterrupts. It cancels neither worker. A worker pending at remove() can\nrun after devm frees bci.\n\nThe USB transceiver comes from devm_usb_get_phy_by_node(). devm\nunregisters its notifier only after remove() returns. A cancel_work_sync()\nin remove() can then race a notifier reschedule. devm_work_autocancel()\nand devm_delayed_work_autocancel() avoid that. They cancel the workers\nduring devm release, before bci is freed.\n\nThe current_worker is registered first, since devm will cancel in\nreverse order and bci->work can reschedule current_worker.\n\n[Move comment about order into the commit message]","state":0,"publishedAt":"2026-09-11T19:43:25.282+00:00","modifiedAt":"2026-10-19T08:47:13.492+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/power/supply/twl4030_charger.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"d6ccc442b12102414c1343f0adacaa8a1aaa516c\",\n                            \"lessThan\": \"9644c96ef8646c65d46caa5139a6631e29b79d6c\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"d6ccc442b12102414c1343f0adacaa8a1aaa516c\",\n                            \"lessThan\": \"e9fffe10bd791082263c1678f2f6cdd6d7b487e0\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"d6ccc442b12102414c1343f0adacaa8a1aaa516c\",\n                            \"lessThan\": \"c46c205bab0dfce4dd54aeb49da3f183e1fdfc63\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"d6ccc442b12102414c1343f0adacaa8a1aaa516c\",\n                            \"lessThan\": \"72a2d6cd049f892853e4e2d8d8fc5e7d0244a458\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"d6ccc442b12102414c1343f0adacaa8a1aaa516c\",\n                            \"lessThan\": \"a4460e89d4088cfec2da5be33e265ef1a8e780e9\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"d6ccc442b12102414c1343f0adacaa8a1aaa516c\",\n                            \"lessThan\": \"b955da82db4170bdf1c784dc457287aa0c977378\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"d6ccc442b12102414c1343f0adacaa8a1aaa516c\",\n                            \"lessThan\": \"6eba34732524067da2aad5ddfdfbc641ded10e9e\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"drivers/power/supply/twl4030_charger.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"2.6.39\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"2.6.39\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.15.221\",\n                            \"lessThanOrEqual\": \"5.15.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.188\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.157\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.109\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.50\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.4\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[],"references":["https://git.kernel.org/stable/c/9644c96ef8646c65d46caa5139a6631e29b79d6c","https://git.kernel.org/stable/c/e9fffe10bd791082263c1678f2f6cdd6d7b487e0","https://git.kernel.org/stable/c/c46c205bab0dfce4dd54aeb49da3f183e1fdfc63","https://git.kernel.org/stable/c/72a2d6cd049f892853e4e2d8d8fc5e7d0244a458","https://git.kernel.org/stable/c/a4460e89d4088cfec2da5be33e265ef1a8e780e9","https://git.kernel.org/stable/c/b955da82db4170bdf1c784dc457287aa0c977378","https://git.kernel.org/stable/c/6eba34732524067da2aad5ddfdfbc641ded10e9e"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-89464","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-89464","identifiers":["CVE-2026-89464"]},"retained":false,"historicalAffected":[]}],"coverage":[]}