{"answers":{"affected":"","exploited":"There is no known exploitation of CVE-2026-89991 in the wild and no public exploit code.","fix":"Apply the vendor's patch.","what":"CVE-2026-89991 is a denial of service vulnerability in Linux, published on 16 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-89991 and fix it if it is affected.\n\nWhat it is: CVE-2026-89991 is a denial of service vulnerability in Linux, published on 16 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-89991 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-89991/ (Markdown: https://insights.sbomify.com/CVE-2026-89991/index.md)","id":"CVE-2026-89991","markdown":"https://insights.sbomify.com/CVE-2026-89991/index.md","name":"CVE-2026-89991","record":{"aliases":["BELL-CVE-2026-89991","DEBIAN-CVE-2026-89991","GHSA-c23v-6rx9-2699","UBUNTU-CVE-2026-89991"],"analysis":{"component_type":"kernel","fix_type":"patch","impacts":["denial_of_service"],"network_reachable":"adjacent_or_local","non_default_config":true,"product_category":"Linux kernel","requires_auth":"none","summary":"A local attacker can cause a kernel infinite loop and system hang by triggering a specific BPF freelist condition on single-CPU systems.","user_interaction":"not_required","vuln_class":"denial_of_service"},"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\nbpf: Fix infinite loop in pcpu_freelist push with one possible CPU\n\n__pcpu_freelist_push() can loop forever when only one CPU is possible\nand an NMI re-enters pcpu_freelist_push() while the interrupted context\nholds that CPU's freelist lock.\n\nAfter the current-CPU fast path fails, the fallback loop walks\ncpu_possible_mask while skipping the current CPU. With CONFIG_SMP=n, or\nwhen an SMP kernel is limited to one possible CPU with nr_cpus=1 or\npossible_cpus=1, there are no other possible CPUs to examine. The loop\ntherefore makes no lock acquisition attempt and can never make progress.\n\nThe following stack was observed on a UP system:\n\n  NMI context:\n    pcpu_freelist_push\n    free_htab_elem\n    htab_map_delete_elem\n    [perf-event BPF program]\n    __perf_event_overflow\n    perf_event_nmi_handler\n    exc_nmi\n\n  Interrupted context:\n    __pcpu_freelist_push\n    pcpu_freelist_push\n    free_htab_elem\n    htab_map_delete_elem\n    [raw_tp/sys_enter BPF program]\n    __bpf_trace_sys_enter\n    do_syscall_64\n\nraw_res_spin_lock() detects the same-CPU recursive acquisition and\nreturns -EDEADLK, but the subsequent fallback loop has no candidate head\non a system with one possible CPU.\n\nRestore the extra fallback head that existed before the rqspinlock\nconversion. Keep the current-CPU fast path, then try the other possible\nCPUs and finally the extra head. The additional head lets a push, which\ncannot fail without losing a preallocated element, make progress when the\nonly per-CPU head is held by the interrupted context.\n\nAlso check the extra head from the pop path so that nodes placed there\ncan be reused.","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":"bpf: Fix infinite loop in pcpu_freelist push with one possible CPU","id":"CVE-2026-89991","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":null,"product":null,"products":[],"type":"denial_of_service","year":"2026"},"n_packages":0,"n_references":3,"next":{"headline":"cpuidle: dt_idle_genpd: kfree() the original name allocation","id":"CVE-2026-89992"},"packages":[],"prev":{"headline":"ceph: lock mutex in ceph_mds_check_access()","id":"CVE-2026-89990"},"products":["Linux"],"published":"2026-09-16","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 can cause a kernel infinite loop and system hang by triggering a specific BPF freelist condition on single-CPU systems.","url":"https://insights.sbomify.com/CVE-2026-89991/"}