CVE-2026-68142 (GCVE-0-2026-68142)
Vulnerability from cvelistv5
Published
2026-08-10 11:59
Modified
2026-08-19 16:30
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
geneve: require CAP_NET_ADMIN in the device netns for changelink
A tunnel changelink() operates on at most two netns, dev_net(dev) and
the sticky underlay netns geneve->net. They differ once the device is
created in or moved to a netns other than the one the request runs in.
The rtnl changelink path checks CAP_NET_ADMIN only against dev_net(dev),
so a caller privileged there but not in geneve->net can rewrite a geneve
device whose underlay lives in geneve->net.
geneve_changelink() applies the new configuration against geneve->net:
geneve_link_config() and the geneve_quiesce()/geneve_unquiesce() pair
reopen the underlay sockets in that netns (geneve_sock_add() uses
geneve->net), so the same reasoning as the tunnel changelink series
applies here.
Gate geneve_changelink() with rtnl_dev_link_net_capable(), at the top of
the op before any attribute is parsed, matching ipgre_changelink() and
the rest of the "require CAP_NET_ADMIN in the device netns for
changelink" series.
Found by 0sec automated security-research tooling (https://0sec.ai).
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: 5b861f6baa3a22a48d7a4ad0ce38a223d36c978a Version: 5b861f6baa3a22a48d7a4ad0ce38a223d36c978a Version: 5b861f6baa3a22a48d7a4ad0ce38a223d36c978a Version: 5b861f6baa3a22a48d7a4ad0ce38a223d36c978a Version: 5b861f6baa3a22a48d7a4ad0ce38a223d36c978a Version: 5b861f6baa3a22a48d7a4ad0ce38a223d36c978a Version: 5b861f6baa3a22a48d7a4ad0ce38a223d36c978a Version: 5b861f6baa3a22a48d7a4ad0ce38a223d36c978a |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/geneve.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "a5522963c57f12df5f9db804ebfc472b58eef0ae",
"status": "affected",
"version": "5b861f6baa3a22a48d7a4ad0ce38a223d36c978a",
"versionType": "git"
},
{
"lessThan": "278c6a31ee27c931c722202c8c06cc3253923254",
"status": "affected",
"version": "5b861f6baa3a22a48d7a4ad0ce38a223d36c978a",
"versionType": "git"
},
{
"lessThan": "11a7d989d00160481a273eb4f7f05f64b5a6ffdf",
"status": "affected",
"version": "5b861f6baa3a22a48d7a4ad0ce38a223d36c978a",
"versionType": "git"
},
{
"lessThan": "2abdacc927c92fa6a9cc8341e8c9b88dcb561553",
"status": "affected",
"version": "5b861f6baa3a22a48d7a4ad0ce38a223d36c978a",
"versionType": "git"
},
{
"lessThan": "9de5518fc1fab583526a8f66b8e505c4864dc60a",
"status": "affected",
"version": "5b861f6baa3a22a48d7a4ad0ce38a223d36c978a",
"versionType": "git"
},
{
"lessThan": "f8c498585d2a08aa623748353c3e61467b7e9fd2",
"status": "affected",
"version": "5b861f6baa3a22a48d7a4ad0ce38a223d36c978a",
"versionType": "git"
},
{
"lessThan": "95f45e20f1b2cec13823f0f68060ab4b2261b2c1",
"status": "affected",
"version": "5b861f6baa3a22a48d7a4ad0ce38a223d36c978a",
"versionType": "git"
},
{
"lessThan": "8efb8f8bbb353b8f2fdf4f37534c6d96c9f69e01",
"status": "affected",
"version": "5b861f6baa3a22a48d7a4ad0ce38a223d36c978a",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/geneve.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.14"
},
{
"lessThan": "4.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.265",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.216",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.183",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.148",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.101",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.42",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.6",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.265",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.148",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.101",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.42",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.6",
"versionStartIncluding": "4.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "4.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ngeneve: require CAP_NET_ADMIN in the device netns for changelink\n\nA tunnel changelink() operates on at most two netns, dev_net(dev) and\nthe sticky underlay netns geneve-\u003enet. They differ once the device is\ncreated in or moved to a netns other than the one the request runs in.\nThe rtnl changelink path checks CAP_NET_ADMIN only against dev_net(dev),\nso a caller privileged there but not in geneve-\u003enet can rewrite a geneve\ndevice whose underlay lives in geneve-\u003enet.\n\ngeneve_changelink() applies the new configuration against geneve-\u003enet:\ngeneve_link_config() and the geneve_quiesce()/geneve_unquiesce() pair\nreopen the underlay sockets in that netns (geneve_sock_add() uses\ngeneve-\u003enet), so the same reasoning as the tunnel changelink series\napplies here.\n\nGate geneve_changelink() with rtnl_dev_link_net_capable(), at the top of\nthe op before any attribute is parsed, matching ipgre_changelink() and\nthe rest of the \"require CAP_NET_ADMIN in the device netns for\nchangelink\" series.\n\nFound by 0sec automated security-research tooling (https://0sec.ai)."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - Exploitation requires issuing RTM_NEWLINK changelink over a local rtnetlink socket; geneve_changelink is only reachable from the rtnl configuration path, not from received GENEVE/UDP network packets.\nAC:L - Once a geneve device exists with geneve-\u003enet differing from dev_net(dev) (via IFLA_NET_NS_FD migration or IFLA_LINK_NETNSID newlink), a single deterministic netlink changelink bypasses the missing check with no race or memory-layout dependency.\nPR:L - The rtnl entry path requires CAP_NET_ADMIN in dev_net(dev), obtainable by an unprivileged local user inside a user+network namespace via unshare --user --map-root-user --net; no CAP_NET_ADMIN in the sticky underlay netns geneve-\u003enet is needed.\nUI:N - The attack is fully programmatic through netlink from the attacker\u0027s own process; no victim action such as mounting a filesystem, opening a file, or clicking is required.\nS:C - geneve_changelink applies geneve_link_config() and geneve_quiesce()/geneve_unquiesce() (reopening underlay sockets via geneve_sock_add() in geneve-\u003enet) while authorization is checked only against dev_net(dev), crossing into another tenant\u0027s or the host\u0027s network namespace.\nC:H - An attacker can set IFLA_GENEVE_REMOTE/REMOTE6 to redirect encapsulated overlay traffic to an attacker-controlled endpoint and read tunneled payloads from the victim underlay netns.\nI:H - Unauthorized changelink mutates live tunnel remote endpoint, TTL/TOS/DF/label, and MTU in geneve-\u003enet, enabling redirection and injection of overlay traffic without authorization in that namespace.\nA:H - geneve_quiesce() drops in-flight tunnel traffic and rewriting the remote endpoint or MTU breaks production GENEVE overlays (Kubernetes/OVN/cloud SDN), causing sustained loss of connectivity for dependent services."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:30:02.355Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/a5522963c57f12df5f9db804ebfc472b58eef0ae"
},
{
"url": "https://git.kernel.org/stable/c/278c6a31ee27c931c722202c8c06cc3253923254"
},
{
"url": "https://git.kernel.org/stable/c/11a7d989d00160481a273eb4f7f05f64b5a6ffdf"
},
{
"url": "https://git.kernel.org/stable/c/2abdacc927c92fa6a9cc8341e8c9b88dcb561553"
},
{
"url": "https://git.kernel.org/stable/c/9de5518fc1fab583526a8f66b8e505c4864dc60a"
},
{
"url": "https://git.kernel.org/stable/c/f8c498585d2a08aa623748353c3e61467b7e9fd2"
},
{
"url": "https://git.kernel.org/stable/c/95f45e20f1b2cec13823f0f68060ab4b2261b2c1"
},
{
"url": "https://git.kernel.org/stable/c/8efb8f8bbb353b8f2fdf4f37534c6d96c9f69e01"
}
],
"title": "geneve: require CAP_NET_ADMIN in the device netns for changelink",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-68142",
"datePublished": "2026-08-10T11:59:06.048Z",
"dateReserved": "2026-07-30T09:28:09.370Z",
"dateUpdated": "2026-08-19T16:30:02.355Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.
Loading…
Loading…