{"id":"CVE-2026-99234","kind":"vulnerability","aliases":["CVE-2026-99234"],"related":[],"title":"Linux kernel: failed tracing command leaves histogram trigger active","description":"In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: Unregister field variable histograms when the command fails\n\nAn action that names a field on another event needs that field as a\nvariable, so create_field_var_hist() registers a second hist trigger on\nthat event to provide it, and records it in\ntarget_hist_data->field_var_hists[].\n\nIf a later part of the same command fails, create_actions() returns an\nerror and event_hist_trigger_parse() jumps to out_free. The write fails\nwith -EINVAL and sched_switch gets no trigger, but:\n\n  # echo 'hist:keys=pid:ts0=common_timestamp.usecs' >> \\\n      events/sched/sched_waking/trigger\n  # echo 'my_synth u64 lat; int a; int b' >> synthetic_events\n  # echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0:\\\n      onmatch(sched.sched_waking).my_synth($wakeup_lat,prio,nosuchfld)'\\\n      >> events/sched/sched_switch/trigger\n  # cat events/sched/sched_waking/trigger\n  hist:keys=pid:vals=hitcount:ts0=common_timestamp.usecs:sort=hitcount:size=2048:clock=global [active]\n  hist:keys=pid:vals=hitcount:synthetic_prio=prio:sort=hitcount:size=2048 [active]\n\nThe second histogram is the one created for 'prio'. It is still active and\nstill counting.\n\nout_free reaches destroy_field_var_hists(), which frees the\nfield_var_hists[] entries, but never unregister_field_var_hists(), which is\nwhat removes the triggers and runs only from event_hist_trigger_free(). The\nentry is freed and the trigger is left with nothing tracking it.\n\nUnregister the field variable histograms in out_free as well, and record\neach one as soon as its trigger is registered rather than after the lookup\nthat follows it, so no exit can leave a registered trigger untracked. The\nentry then belongs to field_var_hists[] and is released by\ndestroy_field_var_hists(), so freeing it on that exit would be a double\nfree.","summary":"When a histogram trigger command fails partway, the kernel frees its tracking record but leaves the helper histogram trigger registered and still counting events. The sources do not describe a way for an attacker to gain access or run code from this.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["ftrace","linux-kernel","runtime","self-hosted"],"not_affected_if":["default-config"],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-11-02T16:17:48+00:00","first_seen_at":"2026-11-02T16:24:06+00:00","triaged_at":"2026-11-02T16:26:49+00:00","updated_at":"2026-11-02T16:26:49+00:00","category":"runtime","confidence":0.6,"triage":{"at":"2026-11-02T16:26:49Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"local","title":"Linux kernel: failed tracing command leaves histogram trigger active","impact":"low","summary":"When a histogram trigger command fails partway, the kernel frees its tracking record but leaves the helper histogram trigger registered and still counting events. The sources do not describe a way for an attacker to gain access or run code from this.","audience":"businesses","category":"runtime","nicknames":[],"who_cares":["linux-kernel","ftrace","self-hosted"],"confidence":0.6,"fix_status":"unknown","needs_auth":"yes","worst_case":"stale trigger keeps running, leaking resources; no code execution stated","analyst_note":"Confirm the affected kernel version ranges and the fixed commit in the NVD or kernel.org stable entries for CVE-2026-99234.","how_to_check":"- unknown","plain_action":"","needs_analyst":true,"not_affected_if":["default-config"],"who_is_affected":"Systems running a Linux kernel with ftrace event histograms and synthetic events in use; the bug requires a user with write access to tracing files to issue a malformed command. The sources do not say whether default configurations are affected.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"unknown"},"cost_usd":0.000696,"input_tokens":4741,"output_tokens":444,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':11A,14A '-99234':12A,15A '2048':208C,223C 'access':60B 'action':84C,134C 'activ':9A,211C,224C,237C 'anoth':90C 'attack':57B 'b':174C 'belong':329C 'cat':196C 'clock':209C 'code':63B 'command':5A,28B,81C,131C 'common_timestamp.usecs':164C,184C,204C 'count':46B,240C 'creat':99C,133C,231C 'cve':10A,13A 'data':120C 'describ':52B 'destroy':244C,338C 'doubl':351C 'echo':159C,166C,177C 'einval':151C 'entri':254C,276C,327C 'error':137C 'event':47B,91C,110C,139C,176C,271C 'events/sched/sched_switch/trigger':195C 'events/sched/sched_waking/trigger':165C,197C 'exit':319C,347C 'fail':3A,29B,82C,132C,149C 'field':76C,88C,94C,100C,121C,245C,251C,258C,290C,331C,339C 'follow':69C,315C 'free':33B,146C,242C,249C,274C,295C,343C,352C 'freed':278C 'ftrace':16B 'gain':59B 'get':155C 'global':210C 'helper':40B 'hist':102C,106C,119C,123C,140C,160C,178C,198C,212C,247C,253C,260C,272C,333C,341C 'histogram':7A,26B,41B,78C,227C,292C 'hitcount':202C,206C,216C,221C 'host':23B 'int':171C,173C 'jump':143C 'kernel':2A,19B,32B,67C 'key':161C,179C,199C,213C 'lat':170C,183C,192C 'later':126C 'leav':6A,38B,321C 'left':283C 'linux':1A,18B,66C 'linux-kernel':17B 'lookup':313C 'name':86C 'need':92C 'never':256C 'next':180C 'nosuchfld':194C 'noth':285C 'one':230C,301C 'onmatch':186C 'pars':142C 'part':127C 'partway':30B 'pid':162C,181C,200C,214C 'prio':193C,218C,219C,233C 'provid':112C 'rather':309C 'reach':243C 'record':36B,115C,299C 'regist':43B,103C,308C,323C 'releas':336C 'remov':264C 'resolv':73C 'return':135C 'run':62B,268C 'runtim':20B 'sched':153C 'sched.sched':187C 'second':105C,226C 'self':22B 'self-host':21B 'size':207C,222C 'soon':303C 'sort':205C,220C 'sourc':49B 'still':45B,236C,239C 'switch':154C 'synth':168C,190C 'synthet':175C,217C 'target':118C 'trace':4A,74C 'track':35B,286C 'trigger':8A,27B,42B,107C,141C,157C,266C,273C,281C,306C,324C 'ts0':163C,185C,203C 'u64':169C 'unregist':75C,257C,288C 'untrack':325C 'val':201C,215C 'var':101C,122C,246C,252C,259C,332C,340C 'variabl':77C,97C,291C 'vulner':70C 'wake':188C 'wakeup':182C,191C 'way':54B 'well':297C 'would':348C 'write':148C","nicknames":[],"mitigations":[],"who_affected":"Systems running a Linux kernel with ftrace event histograms and synthetic events in use; the bug requires a user with write access to tracing files to issue a malformed command. The sources do not say whether default configurations are affected.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"unknown","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["ftrace","linuxkernel","runtime","selfhosted","unknown"],"first_public_at":"2026-11-02T16:17:48+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-99234","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-99234","severity":null,"published_at":"2026-11-02T16:17:48+00:00","modified_at":"2026-11-02T16:17:48+00:00","first_seen_at":"2026-11-02T16:24:06+00:00","fetched_at":"2026-11-02T16:24:06+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}