{"id":"CVE-2026-98034","title":"In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Mark NULL kptr stores precise\n\ncheck_map_kptr_access() permits a scalar store into an untrusted kptr\nfield only when the register is known to contain zero","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Mark NULL kptr stores precise\n\ncheck_map_kptr_access() permits a scalar store into an untrusted kptr\nfield only when the register is known to contain zero. Unlike …","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 61df10c7799e27807ad5e459eec9d77cddf8bf45 < 86168208737bdd267d92d855d453d1d2f840df19","Linux >= 61df10c7799e27807ad5e459eec9d77cddf8bf45 < ecdc5043794c9184aa8e6c814603899479c46b35","Linux b5a8069835e5236824a84281592d29f859b33153","Linux >= 5.18.18 < 5.19","Linux 5.19"],"published":"2026-09-25","updated":"2026-09-25","sourceUpdated":"2026-09-25T11:17:32.123","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-98034","references":[{"url":"https://git.kernel.org/stable/c/86168208737bdd267d92d855d453d1d2f840df19","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"},{"url":"https://git.kernel.org/stable/c/ecdc5043794c9184aa8e6c814603899479c46b35","label":"416baaa9-dc9f-4396-8d5f-8c081fb06d67"}],"tags":["nvd","cve.org"],"ingestedAt":"2026-09-25T11:06:38.852Z","slug":"CVE-2026-98034","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Mark NULL kptr stores precise\n\ncheck_map_kptr_access() permits a scalar store into an untrusted kptr\nfield only when the register is known to contain zero. Unlike other\nverifier checks whose outcome depends on a scalar value, it does not mark\nthat register precise.\n\nA state checkpoint reached with an imprecise zero can therefore prune a\nsecond path that reaches the store with an arbitrary nonzero scalar. The\nprogram can write attacker-controlled bits into the kptr field and load\nthem back as a PTR_TO_BTF_ID.\n\nCall mark_chain_precision() before accepting a known-zero register. This\nforces state equivalence to compare its scalar range and makes the verifier\nvisit and reject a path carrying a nonzero value.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}