GHSA-W7PV-JWFV-F7CM

Vulnerability from github – Published: 2026-09-25 12:31 – Updated: 2026-09-25 12:31
VLAI
Details

In the Linux kernel, the following vulnerability has been resolved:

bpf: Don't infer non-NULL from a pointer with an unbounded offset

reg_not_null() decides that a register holds a non-NULL value by looking at its type alone. For pointer types that allow arithmetic the type only guarantees a non-NULL base, in case of an unbound offset the runtime offset value might still add up to NULL. Consider the followng program:

r6 = bpf_map_lookup_elem(map, &0); / present / if (r6 == 0) return 0; r7 = bpf_map_lookup_elem(map, &1); / absent, NULL at runtime / r8 = r7; r8 -= r6; / pointer - pointer: unknown scalar, -r6 / r8 <<= 1; r8 >>= 1; / any non-negative offset is accepted by / / check_reg_sane_offset_ptr() / r6 += r8; / verifier: map value; runtime: zero / if (r7 != r6) return 0; (u8 )(r7 + 0); / r7 is inferred non-NULL, both are zero /

At runtime both registers are zero, the comparison is true and the load faults with NULL pointer dereference.

Require the offset to be within +-BPF_MAX_VAR_OFF in reg_not_null().

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2026-98043"
  ],
  "database_specific": {
    "cwe_ids": [],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2026-09-25T11:17:33Z",
    "severity": null
  },
  "details": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Don\u0027t infer non-NULL from a pointer with an unbounded offset\n\nreg_not_null() decides that a register holds a non-NULL value by\nlooking at its type alone. For pointer types that allow arithmetic the\ntype only guarantees a non-NULL base, in case of an unbound offset\nthe runtime offset value might still add up to NULL.\nConsider the followng program:\n\n  r6 = bpf_map_lookup_elem(map, \u00260);  /* present */\n  if (r6 == 0) return 0;\n  r7 = bpf_map_lookup_elem(map, \u00261);  /* absent, NULL at runtime */\n  r8 = r7;\n  r8 -= r6;     /* pointer - pointer: unknown scalar, -r6 */\n  r8 \u003c\u003c= 1;\n  r8 \u003e\u003e= 1;     /* any non-negative offset is accepted by */\n                /* check_reg_sane_offset_ptr() */\n  r6 += r8;     /* verifier: map value;    runtime: zero  */\n  if (r7 != r6) return 0;\n  *(u8 *)(r7 + 0);  /* r7 is inferred non-NULL, both are zero */\n\nAt runtime both registers are zero, the comparison is true and the\nload faults with NULL pointer dereference.\n\nRequire the offset to be within +-BPF_MAX_VAR_OFF in reg_not_null().",
  "id": "GHSA-w7pv-jwfv-f7cm",
  "modified": "2026-09-25T12:31:34Z",
  "published": "2026-09-25T12:31:34Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-98043"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/67b529f521a6676cdfc78b91b0217d7eaa84216b"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/cb6642048739bf4ee5aa09fe465511f1e87caa63"
    }
  ],
  "schema_version": "1.4.0",
  "severity": []
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…