222 lines
12 KiB
JSON
222 lines
12 KiB
JSON
{
|
|
"dataType": "CVE_RECORD",
|
|
"dataVersion": "5.2",
|
|
"cveMetadata": {
|
|
"cveId": "CVE-2026-23169",
|
|
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
|
|
"state": "PUBLISHED",
|
|
"assignerShortName": "Linux",
|
|
"dateReserved": "2026-01-13T15:37:45.982Z",
|
|
"datePublished": "2026-02-14T16:01:32.139Z",
|
|
"dateUpdated": "2026-08-05T12:20:24.946Z"
|
|
},
|
|
"containers": {
|
|
"cna": {
|
|
"providerMetadata": {
|
|
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
|
|
"shortName": "Linux",
|
|
"dateUpdated": "2026-08-05T12:20:24.946Z"
|
|
},
|
|
"descriptions": [
|
|
{
|
|
"lang": "en",
|
|
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmptcp: fix race in mptcp_pm_nl_flush_addrs_doit()\n\nsyzbot and Eulgyu Kim reported crashes in mptcp_pm_nl_get_local_id()\nand/or mptcp_pm_nl_is_backup()\n\nRoot cause is list_splice_init() in mptcp_pm_nl_flush_addrs_doit()\nwhich is not RCU ready.\n\nlist_splice_init_rcu() can not be called here while holding pernet->lock\nspinlock.\n\nMany thanks to Eulgyu Kim for providing a repro and testing our patches."
|
|
}
|
|
],
|
|
"metrics": [
|
|
{
|
|
"cvssV3_1": {
|
|
"version": "3.1",
|
|
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
|
|
"baseScore": 7.8,
|
|
"baseSeverity": "HIGH"
|
|
},
|
|
"scenarios": [
|
|
{
|
|
"lang": "en",
|
|
"value": "AV:L - The vulnerability requires a local attacker to send a netlink MPTCP_PM_CMD_FLUSH_ADDRS command, which requires CAP_NET_ADMIN (accessible via user namespaces but still local access). The RCU reader side can be triggered by network MPTCP connections, but the flush side requires local netlink access.\nAC:L - The attacker controls both sides of the race — they can issue the netlink flush command while simultaneously establishing MPTCP connections that trigger RCU list traversal. Since the attacker creates and controls the race condition, complexity is low.\nPR:L - The flush_addrs netlink operation uses GENL_UNS_ADMIN_PERM, which checks CAP_NET_ADMIN in the user namespace via netlink_ns_capable(). An unprivileged user can obtain this capability through user namespaces (unshare -Urn).\nUI:N - No user interaction is required. The attacker can trigger both the netlink flush and the MPTCP connection processing independently without any victim action.\nS:U - The vulnerability exists within the kernel and impacts the same security context. There is no crossing of a virtualization or sandbox boundary.\nC:H - This is a use-after-free / list corruption bug where RCU readers access freed mptcp_pm_addr_entry structures. UAF gives the attacker control over freed object contents via heap spraying, enabling arbitrary kernel memory reads.\nI:H - The use-after-free on mptcp_pm_addr_entry structures (which contain function-relevant pointers and a socket pointer) can be exploited via heap spraying to achieve arbitrary write primitives and potentially control flow hijacking.\nA:H - The corrupted list pointers and use-after-free reliably cause kernel crashes (oops/panic) as reported by syzbot, providing a straightforward denial-of-service vector."
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"affected": [
|
|
{
|
|
"product": "Linux",
|
|
"vendor": "Linux",
|
|
"defaultStatus": "unaffected",
|
|
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
|
|
"programFiles": [
|
|
"net/mptcp/pm_kernel.c"
|
|
],
|
|
"versions": [
|
|
{
|
|
"version": "141694df6573b49aa4143c92556544b4b0bbda72",
|
|
"lessThan": "338d40bab283da2639780ee3e458fb61f1567d8c",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "141694df6573b49aa4143c92556544b4b0bbda72",
|
|
"lessThan": "7896dbe990d56d5bb8097863b2645355633665eb",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "141694df6573b49aa4143c92556544b4b0bbda72",
|
|
"lessThan": "455e882192c9833f176f3fbbbb2f036b6c5bf555",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "141694df6573b49aa4143c92556544b4b0bbda72",
|
|
"lessThan": "51223bdd0f60b06cfc7f25885c4d4be917adba94",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "141694df6573b49aa4143c92556544b4b0bbda72",
|
|
"lessThan": "1f1b9523527df02685dde603f20ff6e603d8e4a1",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "141694df6573b49aa4143c92556544b4b0bbda72",
|
|
"lessThan": "e2a9eeb69f7d4ca4cf4c70463af77664fdb6ab1d",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"product": "Linux",
|
|
"vendor": "Linux",
|
|
"defaultStatus": "affected",
|
|
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
|
|
"programFiles": [
|
|
"net/mptcp/pm_kernel.c"
|
|
],
|
|
"versions": [
|
|
{
|
|
"version": "5.11",
|
|
"status": "affected"
|
|
},
|
|
{
|
|
"version": "0",
|
|
"lessThan": "5.11",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "5.15.201",
|
|
"lessThanOrEqual": "5.15.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "6.1.164",
|
|
"lessThanOrEqual": "6.1.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "6.6.125",
|
|
"lessThanOrEqual": "6.6.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "6.12.72",
|
|
"lessThanOrEqual": "6.12.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "6.18.9",
|
|
"lessThanOrEqual": "6.18.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "6.19",
|
|
"lessThanOrEqual": "*",
|
|
"status": "unaffected",
|
|
"versionType": "original_commit_for_fix"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"cpeApplicability": [
|
|
{
|
|
"nodes": [
|
|
{
|
|
"operator": "OR",
|
|
"negate": false,
|
|
"cpeMatch": [
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "5.11",
|
|
"versionEndExcluding": "5.15.201"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "5.11",
|
|
"versionEndExcluding": "6.1.164"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "5.11",
|
|
"versionEndExcluding": "6.6.125"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "5.11",
|
|
"versionEndExcluding": "6.12.72"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "5.11",
|
|
"versionEndExcluding": "6.18.9"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "5.11",
|
|
"versionEndExcluding": "6.19"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"references": [
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/338d40bab283da2639780ee3e458fb61f1567d8c"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/7896dbe990d56d5bb8097863b2645355633665eb"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/455e882192c9833f176f3fbbbb2f036b6c5bf555"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/51223bdd0f60b06cfc7f25885c4d4be917adba94"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/1f1b9523527df02685dde603f20ff6e603d8e4a1"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/e2a9eeb69f7d4ca4cf4c70463af77664fdb6ab1d"
|
|
}
|
|
],
|
|
"title": "mptcp: fix race in mptcp_pm_nl_flush_addrs_doit()",
|
|
"x_generator": {
|
|
"engine": "bippy-1.2.0"
|
|
}
|
|
}
|
|
}
|
|
} |