{"answers":{"affected":"","exploited":"There is no known exploitation of CVE-2026-97936 in the wild and no public exploit code.","fix":"Apply the vendor's patch.","what":"CVE-2026-97936 is a memory corruption vulnerability in Linux, published on 25 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-97936 and fix it if it is affected.\n\nWhat it is: CVE-2026-97936 is a memory corruption vulnerability in Linux, published on 25 Sep 2026. It can only be exploited from the same machine or local network, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-97936 in the wild and no public exploit code.\n\nAffected product: Linux. No package-level version data is available, so check the vendor advisory linked from the reference page.\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-97936/ (Markdown: https://insights.sbomify.com/CVE-2026-97936/index.md)","id":"CVE-2026-97936","markdown":"https://insights.sbomify.com/CVE-2026-97936/index.md","name":"CVE-2026-97936","record":{"aliases":["AZL-104679","BELL-CVE-2026-97936","DEBIAN-CVE-2026-97936","GHSA-7w7w-22gx-h2r2","UBUNTU-CVE-2026-97936"],"analysis":{"component_type":"kernel","fix_type":"patch","impacts":["code_execution","privilege_escalation"],"network_reachable":"adjacent_or_local","non_default_config":false,"product_category":"Linux kernel","requires_auth":"high_privilege","summary":"A local attacker with tracing privileges can trigger memory corruption in the Linux kernel via histogram stacktrace modifiers, potentially leading to code execution or privilege escalation.","user_interaction":"not_required","vuln_class":"memory_corruption"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"Linux","cpe":[],"cvss":{"score":null,"severity":null,"source":null,"vector":null,"version":null},"cwes":[],"description":"In the Linux kernel, the following vulnerability has been resolved:\n\ntracing: Fix memory corruption from the histogram stacktrace modifier\n\nparse_field() sets HIST_FIELD_FL_STACKTRACE from the \".stacktrace\"\nmodifier before it looks the field name up, and nothing afterwards\nchecks that the name resolved to a field which holds a stacktrace.\ncreate_hist_field() picks HIST_FIELD_FN_STACK on the strength of the\nfield pointer alone, which reads a __data_loc word from the record and\nfollows its low 16 bits as an offset into the same record.\nevent_hist_trigger() takes the first word there as an entry count and\ncopies that many longs into a 31 entry array:\n\n\tn_entries = *stack;\n\tmemcpy(entries, ++stack, n_entries * sizeof(unsigned long));\n\nNeither end of that copy is bounded, and the count is whatever the event\nholds at the offset, so any field will do:\n\n  # cd /sys/kernel/tracing/events/sched/sched_process_fork\n  # echo 'hist:keys=parent_pid.stacktrace' \u003e trigger\n  # (true)\n\n  BUG: kernel NULL pointer dereference, address: 0000000000000008\n  RIP: 0010:rb_insert_color+0x18/0x130\n   timerqueue_linked_add+0x7e/0xd0\n   enqueue_hrtimer+0x39/0xb0\n   __hrtimer_run_queues+0x10f/0x1f0\n   \u003c/IRQ\u003e\n  RIP: 0010:memcpy+0xc/0x30\n   event_hist_trigger+0x165/0x690\n\nThe timer interrupt landed on the rbtree the copy had already run over.\nNo debug options are needed for this; KASAN reports the same write as an\nout-of-bounds read of 13835058055416381440 bytes.\n\nDocumentation/trace/histogram.rst already states the rule, \"must be a\nlong[] type\", so enforce it once the name has been resolved. Names which\nresolve to no field at all, \"hitcount.stacktrace\" and the common_*\npseudo-fields, are refused for the same reason: they hold no stacktrace\nto read.","ecosystems":[],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"tracing: Fix memory corruption from the histogram stacktrace modifier","id":"CVE-2026-97936","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":null,"products":[],"type":"memory_corruption","year":"2026"},"n_packages":0,"n_references":5,"next":{"headline":"ftrace: fork: Initialize function graph state before copy_exec_state()","id":"CVE-2026-97937"},"packages":[],"prev":{"headline":"tracing: Set the trace clock before registering the histogram trigger","id":"CVE-2026-97935"},"products":["Linux"],"published":"2026-09-25","related":[],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"}],"ssvc":{"automatable":null,"exploitation":null,"technical_impact":null},"state":"PUBLISHED","updated":"2026-10-19","vendors":["Linux"]},"summary":"A local attacker with tracing privileges can trigger memory corruption in the Linux kernel via histogram stacktrace modifiers, potentially leading to code execution or privilege escalation.","url":"https://insights.sbomify.com/CVE-2026-97936/"}