{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2024-50085", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2024-10-21T19:36:19.942Z", "datePublished": "2024-10-29T00:50:28.269Z", "dateUpdated": "2026-08-05T11:41:30.621Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T11:41:30.621Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmptcp: pm: fix UaF read in mptcp_pm_nl_rm_addr_or_subflow\n\nSyzkaller reported this splat:\n\n ==================================================================\n BUG: KASAN: slab-use-after-free in mptcp_pm_nl_rm_addr_or_subflow+0xb44/0xcc0 net/mptcp/pm_netlink.c:881\n Read of size 4 at addr ffff8880569ac858 by task syz.1.2799/14662\n\n CPU: 0 UID: 0 PID: 14662 Comm: syz.1.2799 Not tainted 6.12.0-rc2-syzkaller-00307-g36c254515dc6 #0\n Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014\n Call Trace:\n \n __dump_stack lib/dump_stack.c:94 [inline]\n dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120\n print_address_description mm/kasan/report.c:377 [inline]\n print_report+0xc3/0x620 mm/kasan/report.c:488\n kasan_report+0xd9/0x110 mm/kasan/report.c:601\n mptcp_pm_nl_rm_addr_or_subflow+0xb44/0xcc0 net/mptcp/pm_netlink.c:881\n mptcp_pm_nl_rm_subflow_received net/mptcp/pm_netlink.c:914 [inline]\n mptcp_nl_remove_id_zero_address+0x305/0x4a0 net/mptcp/pm_netlink.c:1572\n mptcp_pm_nl_del_addr_doit+0x5c9/0x770 net/mptcp/pm_netlink.c:1603\n genl_family_rcv_msg_doit+0x202/0x2f0 net/netlink/genetlink.c:1115\n genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]\n genl_rcv_msg+0x565/0x800 net/netlink/genetlink.c:1210\n netlink_rcv_skb+0x165/0x410 net/netlink/af_netlink.c:2551\n genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219\n netlink_unicast_kernel net/netlink/af_netlink.c:1331 [inline]\n netlink_unicast+0x53c/0x7f0 net/netlink/af_netlink.c:1357\n netlink_sendmsg+0x8b8/0xd70 net/netlink/af_netlink.c:1901\n sock_sendmsg_nosec net/socket.c:729 [inline]\n __sock_sendmsg net/socket.c:744 [inline]\n ____sys_sendmsg+0x9ae/0xb40 net/socket.c:2607\n ___sys_sendmsg+0x135/0x1e0 net/socket.c:2661\n __sys_sendmsg+0x117/0x1f0 net/socket.c:2690\n do_syscall_32_irqs_on arch/x86/entry/common.c:165 [inline]\n __do_fast_syscall_32+0x73/0x120 arch/x86/entry/common.c:386\n do_fast_syscall_32+0x32/0x80 arch/x86/entry/common.c:411\n entry_SYSENTER_compat_after_hwframe+0x84/0x8e\n RIP: 0023:0xf7fe4579\n Code: b8 01 10 06 03 74 b4 01 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 00 00 00 00 00 00 00 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 8d b4 26 00 00 00 00 8d b4 26 00 00 00 00\n RSP: 002b:00000000f574556c EFLAGS: 00000296 ORIG_RAX: 0000000000000172\n RAX: ffffffffffffffda RBX: 000000000000000b RCX: 0000000020000140\n RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000\n RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000\n R10: 0000000000000000 R11: 0000000000000296 R12: 0000000000000000\n R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000\n \n\n Allocated by task 5387:\n kasan_save_stack+0x33/0x60 mm/kasan/common.c:47\n kasan_save_track+0x14/0x30 mm/kasan/common.c:68\n poison_kmalloc_redzone mm/kasan/common.c:377 [inline]\n __kasan_kmalloc+0xaa/0xb0 mm/kasan/common.c:394\n kmalloc_noprof include/linux/slab.h:878 [inline]\n kzalloc_noprof include/linux/slab.h:1014 [inline]\n subflow_create_ctx+0x87/0x2a0 net/mptcp/subflow.c:1803\n subflow_ulp_init+0xc3/0x4d0 net/mptcp/subflow.c:1956\n __tcp_set_ulp net/ipv4/tcp_ulp.c:146 [inline]\n tcp_set_ulp+0x326/0x7f0 net/ipv4/tcp_ulp.c:167\n mptcp_subflow_create_socket+0x4ae/0x10a0 net/mptcp/subflow.c:1764\n __mptcp_subflow_connect+0x3cc/0x1490 net/mptcp/subflow.c:1592\n mptcp_pm_create_subflow_or_signal_addr+0xbda/0x23a0 net/mptcp/pm_netlink.c:642\n mptcp_pm_nl_fully_established net/mptcp/pm_netlink.c:650 [inline]\n mptcp_pm_nl_work+0x3a1/0x4f0 net/mptcp/pm_netlink.c:943\n mptcp_worker+0x15a/0x1240 net/mptcp/protocol.c:2777\n process_one_work+0x958/0x1b30 kernel/workqueue.c:3229\n process_scheduled_works kernel/workqueue.c:3310 [inline]\n worker_thread+0x6c8/0xf00 kernel/workqueue.c:3391\n kthread+0x2c1/0x3a0 kernel/kthread.c:389\n ret_from_fork+0x45/0x80 arch/x86/ke\n---truncated---" } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 9.8, "baseSeverity": "CRITICAL" }, "scenarios": [ { "lang": "en", "value": "AV:N - The identical buggy line is reached with no local access at all when a remote MPTCP peer sends an RM_ADDR TCP option: `mptcp_incoming_options()` → `mptcp_pm_rm_addr_received()` → `mptcp_pm_nl_work()` → `mptcp_pm_nl_rm_addr_received()` → `mptcp_pm_nl_rm_addr_or_subflow()`. MPTCP is enabled by default (`pernet->mptcp_enabled = 1`) and used by internet-facing services, so the remote peer of any `IPPROTO_MPTCP` connection can drive the close-then-use sequence.\nAC:L - The attacker controls both halves: it chooses which subflows exist (MP_JOIN) and when they are torn down (RM_ADDR ids, or repeated DEL_ADDR netlink calls), and it can drive the kfree_rcu drain by inducing memory pressure — the exact `kfree_rcu_shrink_scan()` path in the syzbot report. The sequence can be retried without limit and requires no memory layout the attacker cannot influence.\nPR:N - On the RM_ADDR path a remote peer needs no credentials whatsoever — subflow teardown is ordinary protocol traffic processed before any application-layer authentication. Even the local netlink path only carries `GENL_UNS_ADMIN_PERM`, i.e. CAP_NET_ADMIN in the owning user namespace, obtainable by any unprivileged user via `unshare -Urn`.\nUI:N - The path manager processes RM_ADDR and DEL_ADDR autonomously in the mptcp worker and netlink doit handler; no victim action such as opening a file, mounting a filesystem, or clicking anything is involved.\nS:U - The freed object and the corrupted state are both kernel-heap/MPTCP path-manager structures within the same security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - This is a KASAN-confirmed slab-use-after-free read of freed kmalloc-512 memory, and per kernel UAF scoring the attacker gains control over the freed object's contents through heap spraying of that widely-used cache. The stale contents then steer kernel control flow, and the resulting `pm.accept_addr` behaviour change is remotely observable, turning freed heap state into an attacker-visible oracle.\nI:H - Once the freed `mptcp_subflow_context` is reallocated with attacker-shaped data, the attacker chooses the value of `removed`, which directly drives `--msk->pm.add_addr_accepted` and `WRITE_ONCE(msk->pm.accept_addr, true)` — corrupting path-manager accounting and bypassing the administrator's configured `add_addr_accept_max`, so the host is forced to open additional subflows to attacker-announced addresses. Use-after-free access to a reallocated slab object is scored as high integrity impact.\nA:H - Use-after-free access is a crash vector: on KASAN or hardened builds it panics outright, and forcing `removed` true when `msk->pm.add_addr_accepted == 0` trips `WARN_ON_ONCE()`, which is fatal on the many production and Android kernels running `panic_on_warn`. The sequence is repeatable at will by the remote peer." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "net/mptcp/pm_netlink.c" ], "versions": [ { "version": "35b31f5549ede4070566b949781e83495906b43d", "lessThan": "35301636439138b821f1f6169bd00d348ebd388a", "status": "affected", "versionType": "git" }, { "version": "85b866e4c4e63a1d7afb58f1e24273caad03d0b7", "lessThan": "da3343bc0839b180fd9af9c27fa456d8231409f9", "status": "affected", "versionType": "git" }, { "version": "d20bf2c96d7ffd171299b32f562f70e5bf5dc608", "lessThan": "7b2e478abab0b3a33515433a6af563aebba773c1", "status": "affected", "versionType": "git" }, { "version": "1c1f721375989579e46741f59523e39ec9b2a9bd", "lessThan": "a8c36ea4ef9a350816f6556c5c5b63810f84b538", "status": "affected", "versionType": "git" }, { "version": "1c1f721375989579e46741f59523e39ec9b2a9bd", "lessThan": "7decd1f5904a489d3ccdcf131972f94645681689", "status": "affected", "versionType": "git" }, { "version": "2060f1efab370b496c4903b840844ecaff324c3c", "status": "affected", "versionType": "git" }, { "version": "5.15.167", "lessThan": "5.15.169", "status": "affected", "versionType": "semver" }, { "version": "6.1.107", "lessThan": "6.1.114", "status": "affected", "versionType": "semver" }, { "version": "6.6.48", "lessThan": "6.6.58", "status": "affected", "versionType": "semver" }, { "version": "6.10.7", "lessThan": "6.11", "status": "affected", "versionType": "semver" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "net/mptcp/pm_netlink.c" ], "versions": [ { "version": "6.11", "status": "affected" }, { "version": "0", "lessThan": "6.11", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.169", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.114", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.58", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.11.5", "lessThanOrEqual": "6.11.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12", "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.15.167", "versionEndExcluding": "5.15.169" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.1.107", "versionEndExcluding": "6.1.114" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.6.48", "versionEndExcluding": "6.6.58" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.11", "versionEndExcluding": "6.11.5" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.11", "versionEndExcluding": "6.12" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.10.7" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/35301636439138b821f1f6169bd00d348ebd388a" }, { "url": "https://git.kernel.org/stable/c/da3343bc0839b180fd9af9c27fa456d8231409f9" }, { "url": "https://git.kernel.org/stable/c/7b2e478abab0b3a33515433a6af563aebba773c1" }, { "url": "https://git.kernel.org/stable/c/a8c36ea4ef9a350816f6556c5c5b63810f84b538" }, { "url": "https://git.kernel.org/stable/c/7decd1f5904a489d3ccdcf131972f94645681689" } ], "title": "mptcp: pm: fix UaF read in mptcp_pm_nl_rm_addr_or_subflow", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "metrics": [ { "cvssV3_1": { "scope": "UNCHANGED", "version": "3.1", "baseScore": 7.8, "attackVector": "LOCAL", "baseSeverity": "HIGH", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "integrityImpact": "HIGH", "userInteraction": "NONE", "attackComplexity": "LOW", "availabilityImpact": "HIGH", "privilegesRequired": "LOW", "confidentialityImpact": "HIGH" } }, { "other": { "type": "ssvc", "content": { "id": "CVE-2024-50085", "role": "CISA Coordinator", "options": [ { "Exploitation": "none" }, { "Automatable": "no" }, { "Technical Impact": "total" } ], "version": "2.0.3", "timestamp": "2024-12-11T14:26:02.743200Z" } } } ], "problemTypes": [ { "descriptions": [ { "lang": "en", "type": "CWE", "cweId": "CWE-416", "description": "CWE-416 Use After Free" } ] } ], "title": "CISA ADP Vulnrichment", "providerMetadata": { "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP", "dateUpdated": "2024-12-11T14:58:34.434Z" } }, { "title": "CVE Program Container", "references": [ { "url": "https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html" } ], "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2025-11-03T22:25:17.336Z" } } ] } }