{
  "affected": [
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:12",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "6.1.190-1"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:13",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "6.12.113-1"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    },
    {
      "ecosystem_specific": {
        "urgency": "not yet assigned"
      },
      "package": {
        "ecosystem": "Debian:14",
        "name": "linux"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "7.2.9-1"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "details": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: ip6t_rt: fix zero-address non-strict match out-of-bounds read  rt_mt6_check() permits rules to be configured with rtinfo-\u003eaddrnr == 0 even when address matching (IP6T_RT_FST_MASK) is requested.  In the IP6T_RT_FST_NSTRICT path, rt_mt6() evaluates packet routing addresses against rtinfo-\u003eaddrs[i] and terminates backwards at the bottom of the loop:      if (ipv6_addr_equal(ap, \u0026rtinfo-\u003eaddrs[i])) {         i++;     }     if (i == rtinfo-\u003eaddrnr)         break;  When addrnr is 0, if the first packet address matches rtinfo-\u003eaddrs[0], i is incremented to 1. Because i is now strictly greater than addrnr (0), the loop termination condition (i == rtinfo-\u003eaddrnr) is bypassed and will never be satisfied.  If a crafted IPv6 packet contains matching routing addresses, i will advance past IP6T_RT_HOPS (16). The subsequent call to ipv6_addr_equal() reads beyond struct ip6t_rt, triggering UBSAN/KASAN out-of-bounds warnings or kernel panics.  Fix this by: 1. Rejecting rules in rt_mt6_check() where IP6T_RT_FST_MASK is set but    rtinfo-\u003eaddrnr is zero. 2. In rt_mt6(), moving the termination condition (i \u003c rtinfo-\u003eaddrnr)    into the for-loop header condition and removing the backwards break    at the end of the loop body.",
  "id": "DEBIAN-CVE-2026-98485",
  "modified": "2026-10-19T04:47:44.898781673Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://security-tracker.debian.org/tracker/CVE-2026-98485"
    }
  ],
  "upstream": [
    "CVE-2026-98485"
  ]
}