CVE-2026-98317

CVE-2026-98317

published October 6, 2026

CVSS
—
EPSS
0%
Percentile
7.6
In the wild
Unconfirmed
What it is

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

neighbour: Enforce min/max to NDTPA_INTERVAL_PROBE_TIME_MS.

NDTPA_INTERVAL_PROBE_TIME_MS sets .type and .min but misses

.validation_type, so no validation is applied:

# ynl --family rt-neigh --do setneightbl \

--json '{"name": "arp_cache", "parms": {"interval-probe-time-ms": 0}}'

# ynl --family rt-neigh --dump getneightbl --output-json | \

jq '.[] | select(.name == "arp_cache" and has("config"))

| .parms["interval-probe-time-ms"]'

0

Moreover, nla_get_msecs() uses msecs_to_jiffies(), and u64 is

silently cast to u32, so a larger value can bypass the min check:

e.g. 4294967296 == 0x100000000

# ynl --family rt-neigh --do setneightbl \

--json '{"name": "arp_cache", "parms": {"interval-probe-time-ms": 4294967296}}'

# ynl --family rt-neigh --dump getneightbl --output-json | \

jq '.[] | select(.name == "arp_cache" and has("config"))

| .parms["interval-probe-time-ms"]'

0

msecs_to_jiffies() returns MAX_JIFFY_OFFSET if the value is

larger than INT_MAX. Also, INT_MAX ms overflows int NEIGH_VAR()

when HZ > 1000 (Alpha, MIPS), and passing a negative integer to

queue_delayed_work(unsigned long delay) causes sign extension,

which wraps around the expiry time to the past, resulting in it

being handled as 0 delay in the timer wheel.

Let's use NLA_POLICY_FULL_RANGE() and limit the max to 1 day.

The same max check is applied to sysctl as well.

Note that this controls the probe interval for NTF_MANAGED

entries, so the max of 1 day is unlikely to break any

deployments.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00184 · 7.6th percentile
Published
2026-10-06T13:18Z
References (3)
EPSS history
Timeline
  • 07 OCT 03:43Z
    EPSS moved — → 0%
    epss
  • 06 OCT 08:46Z
    neighbour: Enforce min/max to NDTPA_INTERVAL_PROBE_TIME_MS.
    cvelistv5