{"id":"CVE-2026-64362","state":"PUBLISHED","title":"HID: lg-g15: cancel pending work on remove to fix a use-after-free","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nHID: lg-g15: cancel pending work on remove to fix a use-after-free\n\nlg_g15_data is allocated with devm and holds a work item. The report\nhandlers schedule that work straight from device input.\nlg_g15_event() and lg_g15_v2_event() do it on the backlight cycle key,\nand lg_g510_leds_event() does it too. The worker dereferences the\nlg_g15_data back through container_of.\n\nThe driver had no remove callback and never cancelled the work. So if a\nreport scheduled the work and the keyboard was then unplugged, devres\nfreed lg_g15_data while the work was still pending or running, and the\nworker touched freed memory. This is a use-after-free. It is reachable\nas a race on device unplug.\n\nAdd a remove callback that cancels the work before devres frees the\nstate. g15->work is only initialized for the models that schedule it\n(G15, G15 v2, G510). The G13 and Z-10 leave it zeroed, so guard the\ncancel on g15->work.func to avoid cancelling a work that was never set\nup. The g15 NULL test mirrors the one already in lg_g15_raw_event().","publishedAt":"2026-07-25T08:50:18.008Z","updatedAt":"2026-08-17T04:54:08.962Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"97b741aba918c4143f4208d2421d08ff215c1b49","status":"affected","lessThan":"3b9a3919aac6977262f04d5365c0456877522a44","versionType":"git"},{"version":"97b741aba918c4143f4208d2421d08ff215c1b49","status":"affected","lessThan":"4aef9676c26dff8723b56834951cfc6b618f0986","versionType":"git"},{"version":"97b741aba918c4143f4208d2421d08ff215c1b49","status":"affected","lessThan":"acce9dee807f21184fff19ad17c8ed464247e7f7","versionType":"git"},{"version":"97b741aba918c4143f4208d2421d08ff215c1b49","status":"affected","lessThan":"33cd1a000daf929356aacf2b191d31714ff0615e","versionType":"git"},{"version":"97b741aba918c4143f4208d2421d08ff215c1b49","status":"affected","lessThan":"dfc6e61f83113cc18346b6988f07271c0063357d","versionType":"git"},{"version":"97b741aba918c4143f4208d2421d08ff215c1b49","status":"affected","lessThan":"4d0d51bc12d246accbfbb94de05d729c68c9b8fb","versionType":"git"},{"version":"97b741aba918c4143f4208d2421d08ff215c1b49","status":"affected","lessThan":"8131f4226688c4be5f30874d167e44dab838eb09","versionType":"git"},{"version":"97b741aba918c4143f4208d2421d08ff215c1b49","status":"affected","lessThan":"7705b4140d188ce22656f6e541ae7ef834c7e11a","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/hid-lg-g15.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.5","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.5","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.96","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.39","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.4","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/hid-lg-g15.c"]}],"references":["https://git.kernel.org/stable/c/3b9a3919aac6977262f04d5365c0456877522a44","https://git.kernel.org/stable/c/4aef9676c26dff8723b56834951cfc6b618f0986","https://git.kernel.org/stable/c/acce9dee807f21184fff19ad17c8ed464247e7f7","https://git.kernel.org/stable/c/33cd1a000daf929356aacf2b191d31714ff0615e","https://git.kernel.org/stable/c/dfc6e61f83113cc18346b6988f07271c0063357d","https://git.kernel.org/stable/c/4d0d51bc12d246accbfbb94de05d729c68c9b8fb","https://git.kernel.org/stable/c/8131f4226688c4be5f30874d167e44dab838eb09","https://git.kernel.org/stable/c/7705b4140d188ce22656f6e541ae7ef834c7e11a"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/64xxx/CVE-2026-64362.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-64362","state":"PUBLISHED","datePublished":"2026-07-25T08:50:18.008Z","dateUpdated":"2026-08-17T04:54:08.962Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-19T15:36:31.783Z"},"containers":{"cna":{"title":"HID: lg-g15: cancel pending work on remove to fix a use-after-free","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nHID: lg-g15: cancel pending work on remove to fix a use-after-free\n\nlg_g15_data is allocated with devm and holds a work item. The report\nhandlers schedule that work straight from device input.\nlg_g15_event() and lg_g15_v2_event() do it on the backlight cycle key,\nand lg_g510_leds_event() does it too. The worker dereferences the\nlg_g15_data back through container_of.\n\nThe driver had no remove callback and never cancelled the work. So if a\nreport scheduled the work and the keyboard was then unplugged, devres\nfreed lg_g15_data while the work was still pending or running, and the\nworker touched freed memory. This is a use-after-free. It is reachable\nas a race on device unplug.\n\nAdd a remove callback that cancels the work before devres frees the\nstate. g15->work is only initialized for the models that schedule it\n(G15, G15 v2, G510). The G13 and Z-10 leave it zeroed, so guard the\ncancel on g15->work.func to avoid cancelling a work that was never set\nup. The g15 NULL test mirrors the one already in lg_g15_raw_event()."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"97b741aba918c4143f4208d2421d08ff215c1b49","status":"affected","lessThan":"3b9a3919aac6977262f04d5365c0456877522a44","versionType":"git"},{"version":"97b741aba918c4143f4208d2421d08ff215c1b49","status":"affected","lessThan":"4aef9676c26dff8723b56834951cfc6b618f0986","versionType":"git"},{"version":"97b741aba918c4143f4208d2421d08ff215c1b49","status":"affected","lessThan":"acce9dee807f21184fff19ad17c8ed464247e7f7","versionType":"git"},{"version":"97b741aba918c4143f4208d2421d08ff215c1b49","status":"affected","lessThan":"33cd1a000daf929356aacf2b191d31714ff0615e","versionType":"git"},{"version":"97b741aba918c4143f4208d2421d08ff215c1b49","status":"affected","lessThan":"dfc6e61f83113cc18346b6988f07271c0063357d","versionType":"git"},{"version":"97b741aba918c4143f4208d2421d08ff215c1b49","status":"affected","lessThan":"4d0d51bc12d246accbfbb94de05d729c68c9b8fb","versionType":"git"},{"version":"97b741aba918c4143f4208d2421d08ff215c1b49","status":"affected","lessThan":"8131f4226688c4be5f30874d167e44dab838eb09","versionType":"git"},{"version":"97b741aba918c4143f4208d2421d08ff215c1b49","status":"affected","lessThan":"7705b4140d188ce22656f6e541ae7ef834c7e11a","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/hid-lg-g15.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.5","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.5","versionType":"semver"},{"version":"5.10.261","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.212","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.96","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.39","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.4","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/hid-lg-g15.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/3b9a3919aac6977262f04d5365c0456877522a44"},{"url":"https://git.kernel.org/stable/c/4aef9676c26dff8723b56834951cfc6b618f0986"},{"url":"https://git.kernel.org/stable/c/acce9dee807f21184fff19ad17c8ed464247e7f7"},{"url":"https://git.kernel.org/stable/c/33cd1a000daf929356aacf2b191d31714ff0615e"},{"url":"https://git.kernel.org/stable/c/dfc6e61f83113cc18346b6988f07271c0063357d"},{"url":"https://git.kernel.org/stable/c/4d0d51bc12d246accbfbb94de05d729c68c9b8fb"},{"url":"https://git.kernel.org/stable/c/8131f4226688c4be5f30874d167e44dab838eb09"},{"url":"https://git.kernel.org/stable/c/7705b4140d188ce22656f6e541ae7ef834c7e11a"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-17T04:54:08.962Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.5","versionEndExcluding":"5.10.261"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.5","versionEndExcluding":"5.15.212"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.5","versionEndExcluding":"6.1.178"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.5","versionEndExcluding":"6.6.145"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.5","versionEndExcluding":"6.12.96"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.5","versionEndExcluding":"6.18.39"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.5","versionEndExcluding":"7.1.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.5","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}