{
  "threat_severity" : "Low",
  "public_date" : "2026-04-24T00:00:00Z",
  "bugzilla" : {
    "description" : "kernel: seg6: separate dst_cache for input and output paths in seg6 lwtunnel",
    "id" : "2461566",
    "url" : "https://bugzilla.redhat.com/show_bug.cgi?id=2461566"
  },
  "cvss3" : {
    "cvss3_base_score" : "3.3",
    "cvss3_scoring_vector" : "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N",
    "status" : "draft"
  },
  "cwe" : "CWE-821",
  "details" : [ "In the Linux kernel, the following vulnerability has been resolved:\nseg6: separate dst_cache for input and output paths in seg6 lwtunnel\nThe seg6 lwtunnel uses a single dst_cache per encap route, shared\nbetween seg6_input_core() and seg6_output_core(). These two paths\ncan perform the post-encap SID lookup in different routing contexts\n(e.g., ip rules matching on the ingress interface, or VRF table\nseparation). Whichever path runs first populates the cache, and the\nother reuses it blindly, bypassing its own lookup.\nFix this by splitting the cache into cache_input and cache_output,\nso each path maintains its own cached dst independently.", "A flaw was found in the Linux kernel's Segment Routing over IPv6 (SRv6) lightweight tunnel (seg6 lwtunnel). This component incorrectly shares a single destination cache between its input and output processing paths. This allows one path to reuse cached routing information populated by the other, bypassing its own independent routing context lookup. This can lead to unintended routing behavior or a bypass of network policy enforcement, potentially impacting network traffic integrity." ],
  "statement" : "The patch fixes a routing logic flaw in the SRv6 seg6 lwtunnel implementation. Previously, each encap route had a single dst_cache stored in struct seg6_lwt. That cache was shared by both seg6_input_core and seg6_output_core. These two code paths may perform the post encapsulation SID lookup under different routing contexts such as rules that match on the ingress interface or VRF based table selection. With one shared cache, whichever path executed first populated the cache. The other path then reused the cached dst blindly and could bypass its own lookup. This is best classified as a logic or policy enforcement issue rather than memory corruption.",
  "package_state" : [ {
    "product_name" : "Red Hat Enterprise Linux 10",
    "fix_state" : "Fix deferred",
    "package_name" : "kernel",
    "cpe" : "cpe:/o:redhat:enterprise_linux:10"
  }, {
    "product_name" : "Red Hat Enterprise Linux 6",
    "fix_state" : "Not affected",
    "package_name" : "kernel",
    "cpe" : "cpe:/o:redhat:enterprise_linux:6"
  }, {
    "product_name" : "Red Hat Enterprise Linux 7",
    "fix_state" : "Not affected",
    "package_name" : "kernel",
    "cpe" : "cpe:/o:redhat:enterprise_linux:7"
  }, {
    "product_name" : "Red Hat Enterprise Linux 7",
    "fix_state" : "Not affected",
    "package_name" : "kernel-rt",
    "cpe" : "cpe:/o:redhat:enterprise_linux:7"
  }, {
    "product_name" : "Red Hat Enterprise Linux 8",
    "fix_state" : "Not affected",
    "package_name" : "kernel",
    "cpe" : "cpe:/o:redhat:enterprise_linux:8"
  }, {
    "product_name" : "Red Hat Enterprise Linux 8",
    "fix_state" : "Not affected",
    "package_name" : "kernel-rt",
    "cpe" : "cpe:/o:redhat:enterprise_linux:8"
  }, {
    "product_name" : "Red Hat Enterprise Linux 9",
    "fix_state" : "Fix deferred",
    "package_name" : "kernel",
    "cpe" : "cpe:/o:redhat:enterprise_linux:9"
  }, {
    "product_name" : "Red Hat Enterprise Linux 9",
    "fix_state" : "Fix deferred",
    "package_name" : "kernel-rt",
    "cpe" : "cpe:/o:redhat:enterprise_linux:9"
  } ],
  "references" : [ "https://www.cve.org/CVERecord?id=CVE-2026-31668\nhttps://nvd.nist.gov/vuln/detail/CVE-2026-31668\nhttps://lore.kernel.org/linux-cve-announce/2026042406-CVE-2026-31668-50e7@gregkh/T" ],
  "name" : "CVE-2026-31668",
  "csaw" : false
}