vxlan: validate ND option lengths in vxlan_na_create
In the Linux kernel, the following vulnerability has been resolved: vxlan: validate ND option lengths in vxlan_na_create vxlan_na_create() walks ND options according to option-provided lengths. A malformed option can make the parser advance beyond the computed option span or use a too-short source LLADDR option payload. Validate option lengths against the remaining NS option area before advancing, and only read source LLADDR when the option is large enough for an Ethernet address.
- Products
- Kernel
- Affected versions
- Not specified
- Fixed versions
- 5.10.253, 5.15.203, 6.1.168, 6.12.81, 6.18.22, 6.19.12, 6.6.134
- CVEs
- CVE-2026-31738
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 4 Nov 2026, 21:36 UTC · Revision 1
Source evidence
vxlan: validate ND option lengths in vxlan_na_create
core-osv · Original sourcePublished 1 May 2026, 14:14 UTC
In the Linux kernel, the following vulnerability has been resolved: vxlan: validate ND option lengths in vxlan_na_create vxlan_na_create() walks ND options according to option-provided lengths. A malformed option can make the parser advance beyond the computed option span or use a too-short source LLADDR option payload. Validate option lengths against the remaining NS option area before advancing, and only read source LLADDR when the option is large enough for an Ethernet address.
osv:CVE-2026-31738
Kernel
Fixed versions: 5.10.253, 5.15.203, 6.1.168, 6.6.134, 6.12.81, 6.18.22, 6.19.12
Complete source record
{
"id": "de398c1faa9f7b4bf71ff4ed5a91b73ea919500ccf7d66a6f8808e3b2be8e883",
"url": "https://osv.dev/vulnerability/CVE-2026-31738",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "vxlan: validate ND option lengths in vxlan_na_create",
"summary": "In the Linux kernel, the following vulnerability has been resolved: vxlan: validate ND option lengths in vxlan_na_create vxlan_na_create() walks ND options according to option-provided lengths. A malformed option can make the parser advance beyond the computed option span or use a too-short source LLADDR option payload. Validate option lengths against the remaining NS option area before advancing, and only read source LLADDR when the option is large enough for an Ethernet address.",
"evidence": "osv:CVE-2026-31738",
"products": [
{
"name": {
"value": "Kernel",
"evidence": "/affected/1/package/name"
},
"prerequisites": [],
"fixed_versions": [
{
"value": "5.10.253",
"evidence": "/affected/1/ranges"
},
{
"value": "5.15.203",
"evidence": "/affected/1/ranges"
},
{
"value": "6.1.168",
"evidence": "/affected/1/ranges"
},
{
"value": "6.6.134",
"evidence": "/affected/1/ranges"
},
{
"value": "6.12.81",
"evidence": "/affected/1/ranges"
},
{
"value": "6.18.22",
"evidence": "/affected/1/ranges"
},
{
"value": "6.19.12",
"evidence": "/affected/1/ranges"
}
],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CVE-2026-31738",
"aliases": [
"CVE-2026-31738"
],
"affected": [
{
"ranges": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "4b29dba9c085a4fb79058fb1c45a2f6257ca3dfa"
},
{
"fixed": "901c1dd3bab2955d7e664f914c374c8c3ac2b958"
},
{
"fixed": "e476745917a1e288eb15e7ff49d286a86a4861d3"
},
{
"fixed": "2029712fb2c87e9a8c75094906f2ee29bf08c500"
},
{
"fixed": "602596c69a70e50d9ab8c6ae0290a01f88229dd7"
},
{
"fixed": "de20d2e3b9179d132f5f5b44e490d7c916c6321b"
},
{
"fixed": "eddfce70a6f3107d1679b0c2fcbeb96b593bd679"
},
{
"fixed": "b69c4236255bd8de16cd876e58c6f0867d1d78b1"
},
{
"fixed": "afa9a05e6c4971bd5586f1b304e14d61fb3d9385"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "3.12.18"
},
{
"fixed": "3.13"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "3.13.10"
},
{
"fixed": "3.14"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "d8be18c52dbc94989f6d74637b731af39cd3d902"
}
]
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"type": "GIT",
"events": [
{
"introduced": "3927dace523706cc00f808520eaf2125dd7c07b5"
}
]
}
],
"versions": [
"v3.12.74",
"v3.12.73",
"v3.12.72",
"v3.12.71",
"v3.12.70",
"v3.12.69",
"v3.12.68",
"v3.12.67",
"v3.12.66",
"v3.12.65",
"v3.12.64",
"v3.12.63",
"v3.12.62",
"v3.12.61",
"v3.12.60",
"v3.12.59",
"v3.12.58",
"v3.12.57",
"v3.12.56",
"v3.12.55",
"v3.12.54",
"v3.12.53",
"v3.12.52",
"v3.12.51",
"v3.12.50",
"v3.12.49",
"v3.12.48",
"v3.12.47",
"v3.12.46",
"v3.12.45",
"v3.12.44",
"v3.12.43",
"v3.12.42",
"v3.12.41",
"v3.12.40",
"v3.12.39",
"v3.12.38",
"v3.12.37",
"v3.12.36",
"v3.12.35",
"v3.12.34",
"v3.12.33",
"v3.12.32",
"v3.12.31",
"v3.12.30",
"v3.12.29",
"v3.12.28",
"v3.12.27",
"v3.12.26",
"v3.12.25",
"v3.12.24",
"v3.12.23",
"v3.12.22",
"v3.12.21",
"v3.12.20",
"v3.12.19",
"v3.12.18",
"v3.13.11",
"v3.13.10"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-31738.json"
}
},
{
"ranges": [
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "3.14.0"
},
{
"fixed": "5.10.253"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.11.0"
},
{
"fixed": "5.15.203"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "5.16.0"
},
{
"fixed": "6.1.168"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.2.0"
},
{
"fixed": "6.6.134"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.7.0"
},
{
"fixed": "6.12.81"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.13.0"
},
{
"fixed": "6.18.22"
}
]
},
{
"type": "ECOSYSTEM",
"events": [
{
"introduced": "6.19.0"
},
{
"fixed": "6.19.12"
}
]
}
],
"package": {
"name": "Kernel",
"ecosystem": "Linux"
},
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-31738.json"
}
}
],
"modified": "2026-10-28T02:30:40.044925104Z",
"provider": "osv",
"references": [
"https://git.kernel.org/stable/c/2029712fb2c87e9a8c75094906f2ee29bf08c500",
"https://git.kernel.org/stable/c/602596c69a70e50d9ab8c6ae0290a01f88229dd7",
"https://git.kernel.org/stable/c/901c1dd3bab2955d7e664f914c374c8c3ac2b958",
"https://git.kernel.org/stable/c/afa9a05e6c4971bd5586f1b304e14d61fb3d9385",
"https://git.kernel.org/stable/c/b69c4236255bd8de16cd876e58c6f0867d1d78b1",
"https://git.kernel.org/stable/c/de20d2e3b9179d132f5f5b44e490d7c916c6321b",
"https://git.kernel.org/stable/c/e476745917a1e288eb15e7ff49d286a86a4861d3",
"https://git.kernel.org/stable/c/eddfce70a6f3107d1679b0c2fcbeb96b593bd679",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31738.json",
"https://nvd.nist.gov/vuln/detail/CVE-2026-31738",
"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
],
"provider_metadata": {
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/31xxx/CVE-2026-31738.json"
}
},
"related_cves": [
{
"value": "CVE-2026-31738",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-osv",
"document_id": 507374,
"published_at": "2026-05-01T14:14:34.9+00:00"
}