{"id":"CVE-2026-97919","state":"PUBLISHED","title":"tracing: Take the reference before publishing the named histogram trigger","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: Take the reference before publishing the named histogram trigger\n\nevent_hist_trigger_named_init() puts the trigger on the global\nnamed_triggers list and only then takes the reference on the trigger it\nshares its histogram with:\n\n\tdata->ref++;\n\n\tsave_named_trigger(data->named_data->name, data);\n\n\tret = event_hist_trigger_init(data->named_data);\n\tif (ret < 0) {\n\t\tkfree(data->cmd_ops);\n\t\tdata->cmd_ops = &trigger_hist_cmd;\n\t}\n\n\treturn ret;\n\nevent_hist_trigger_init() fails when alloc_hist_pad() cannot allocate, and\nnothing takes the trigger back off the list on the way out.\nevent_hist_trigger_parse() frees it, and the next lookup by name reads the\nfreed object:\n\n BUG: KASAN: slab-use-after-free in find_named_trigger+0xac/0xc0\n Read of size 8 at addr ffff888009346860 by task init/1\n  find_named_trigger+0xac/0xc0\n  hist_register_trigger+0xc1/0xa00\n  event_hist_trigger_parse+0x3146/0x6af0\n  event_trigger_write+0xce/0x160\n Freed by task 67:\n  kfree+0x154/0x420\n  trigger_kthread_fn+0xfd/0x160\n\nDo the reference first and publish once it has succeeded, so that nothing\nwhich can fail runs after the trigger becomes findable.","publishedAt":"2026-09-25T10:22:39.829Z","updatedAt":"2026-10-21T12:53:38.904Z","severity":null,"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"ac7ab38c271ba2edaeb0dc35b200ec13339776ae","status":"affected","lessThan":"e5c5dad169fb569161d3eed6c3f6a59e65db1830","versionType":"git"},{"version":"e53a8dcd36b9ebc9229450eb594ae20e0b2ae0fd","status":"affected","lessThan":"b6fb2f5370a9a6aec325ab2db1ca3d1a881499b8","versionType":"git"},{"version":"7ab0fc61ce73040f89b12d76a8279995ec283541","status":"affected","lessThan":"2ffaade3611bd9501bc0b9d5d19fc75bfee7a16b","versionType":"git"},{"version":"7ab0fc61ce73040f89b12d76a8279995ec283541","status":"affected","lessThan":"91c15cdda6033e2439f5975b938754152f3d6e38","versionType":"git"},{"version":"7ab0fc61ce73040f89b12d76a8279995ec283541","status":"affected","lessThan":"0fe23b8eaba0d3372c66b7b31204408da0715edc","versionType":"git"},{"version":"740dab2338f70d93aa8235db5a9541d846d7b21c","status":"affected","versionType":"git"},{"version":"6.6.94","status":"affected","lessThan":"6.6.160","versionType":"semver"},{"version":"6.12.34","status":"affected","lessThan":"6.12.112","versionType":"semver"},{"version":"6.15.3","status":"affected","lessThan":"6.16","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/trace/trace_events_hist.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.16","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.16","versionType":"semver"},{"version":"6.6.160","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.112","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.53","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.7","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/trace/trace_events_hist.c"]}],"references":["https://git.kernel.org/stable/c/e5c5dad169fb569161d3eed6c3f6a59e65db1830","https://git.kernel.org/stable/c/b6fb2f5370a9a6aec325ab2db1ca3d1a881499b8","https://git.kernel.org/stable/c/2ffaade3611bd9501bc0b9d5d19fc75bfee7a16b","https://git.kernel.org/stable/c/91c15cdda6033e2439f5975b938754152f3d6e38","https://git.kernel.org/stable/c/0fe23b8eaba0d3372c66b7b31204408da0715edc"],"weaknesses":[],"ingestedAt":"2026-10-29T20:13:43.249Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/97xxx/CVE-2026-97919.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-97919","state":"PUBLISHED","datePublished":"2026-09-25T10:22:39.829Z","dateUpdated":"2026-10-21T12:53:38.904Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-09-25T10:18:58.202Z"},"containers":{"cna":{"title":"tracing: Take the reference before publishing the named histogram trigger","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: Take the reference before publishing the named histogram trigger\n\nevent_hist_trigger_named_init() puts the trigger on the global\nnamed_triggers list and only then takes the reference on the trigger it\nshares its histogram with:\n\n\tdata->ref++;\n\n\tsave_named_trigger(data->named_data->name, data);\n\n\tret = event_hist_trigger_init(data->named_data);\n\tif (ret < 0) {\n\t\tkfree(data->cmd_ops);\n\t\tdata->cmd_ops = &trigger_hist_cmd;\n\t}\n\n\treturn ret;\n\nevent_hist_trigger_init() fails when alloc_hist_pad() cannot allocate, and\nnothing takes the trigger back off the list on the way out.\nevent_hist_trigger_parse() frees it, and the next lookup by name reads the\nfreed object:\n\n BUG: KASAN: slab-use-after-free in find_named_trigger+0xac/0xc0\n Read of size 8 at addr ffff888009346860 by task init/1\n  find_named_trigger+0xac/0xc0\n  hist_register_trigger+0xc1/0xa00\n  event_hist_trigger_parse+0x3146/0x6af0\n  event_trigger_write+0xce/0x160\n Freed by task 67:\n  kfree+0x154/0x420\n  trigger_kthread_fn+0xfd/0x160\n\nDo the reference first and publish once it has succeeded, so that nothing\nwhich can fail runs after the trigger becomes findable."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"ac7ab38c271ba2edaeb0dc35b200ec13339776ae","status":"affected","lessThan":"e5c5dad169fb569161d3eed6c3f6a59e65db1830","versionType":"git"},{"version":"e53a8dcd36b9ebc9229450eb594ae20e0b2ae0fd","status":"affected","lessThan":"b6fb2f5370a9a6aec325ab2db1ca3d1a881499b8","versionType":"git"},{"version":"7ab0fc61ce73040f89b12d76a8279995ec283541","status":"affected","lessThan":"2ffaade3611bd9501bc0b9d5d19fc75bfee7a16b","versionType":"git"},{"version":"7ab0fc61ce73040f89b12d76a8279995ec283541","status":"affected","lessThan":"91c15cdda6033e2439f5975b938754152f3d6e38","versionType":"git"},{"version":"7ab0fc61ce73040f89b12d76a8279995ec283541","status":"affected","lessThan":"0fe23b8eaba0d3372c66b7b31204408da0715edc","versionType":"git"},{"version":"740dab2338f70d93aa8235db5a9541d846d7b21c","status":"affected","versionType":"git"},{"version":"6.6.94","status":"affected","lessThan":"6.6.160","versionType":"semver"},{"version":"6.12.34","status":"affected","lessThan":"6.12.112","versionType":"semver"},{"version":"6.15.3","status":"affected","lessThan":"6.16","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/trace/trace_events_hist.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"6.16","status":"affected"},{"version":"0","status":"unaffected","lessThan":"6.16","versionType":"semver"},{"version":"6.6.160","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.112","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.53","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.2.7","status":"unaffected","lessThanOrEqual":"7.2.*","versionType":"semver"},{"version":"7.3","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["kernel/trace/trace_events_hist.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/e5c5dad169fb569161d3eed6c3f6a59e65db1830"},{"url":"https://git.kernel.org/stable/c/b6fb2f5370a9a6aec325ab2db1ca3d1a881499b8"},{"url":"https://git.kernel.org/stable/c/2ffaade3611bd9501bc0b9d5d19fc75bfee7a16b"},{"url":"https://git.kernel.org/stable/c/91c15cdda6033e2439f5975b938754152f3d6e38"},{"url":"https://git.kernel.org/stable/c/0fe23b8eaba0d3372c66b7b31204408da0715edc"}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-10-21T12:53:38.904Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.6.94","versionEndExcluding":"6.6.160"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.12.34","versionEndExcluding":"6.12.112"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.16","versionEndExcluding":"6.18.53"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.16","versionEndExcluding":"7.2.7"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.16","versionEndExcluding":"7.3"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"6.15.3"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}