CVE-2026-74490 (GCVE-0-2026-74490)
Vulnerability from cvelistv5
Published
2026-08-15 12:27
Modified
2026-08-19 16:37
Severity ?
VLAI Severity ?
EPSS score ?
Summary
In the Linux kernel, the following vulnerability has been resolved:
tipc: avoid use-after-free in poll trace queue dumps
TIPC socket tracepoints dump queue state through tipc_sk_dump(). Most
queue-dump callsites already serialize that walk under the socket lock or
sk->sk_lock.slock, but tipc_poll() calls trace_tipc_sk_poll(...,
TIPC_DUMP_ALL, ...) without holding either lock.
That lets the poll trace path reach tipc_list_dump() and backlog head/tail
dumping while another context dequeues and frees an skb, leaving the trace
helper dereferencing a stale queue entry.
Stop the unlocked poll trace site from requesting queue dumps. Other queue
dump trace callsites keep their existing output under the locking they
already provide, while poll still emits the event itself without walking
live queue members from an unlocked context.
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Version: b4b9771bcbbd5839b0f77aba55e2f85989ed6779 Version: b4b9771bcbbd5839b0f77aba55e2f85989ed6779 Version: b4b9771bcbbd5839b0f77aba55e2f85989ed6779 Version: b4b9771bcbbd5839b0f77aba55e2f85989ed6779 Version: b4b9771bcbbd5839b0f77aba55e2f85989ed6779 Version: b4b9771bcbbd5839b0f77aba55e2f85989ed6779 Version: b4b9771bcbbd5839b0f77aba55e2f85989ed6779 Version: b4b9771bcbbd5839b0f77aba55e2f85989ed6779 |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/tipc/socket.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "3cd57c6b210d50fd1f7ac1720442ba5be5dc94f8",
"status": "affected",
"version": "b4b9771bcbbd5839b0f77aba55e2f85989ed6779",
"versionType": "git"
},
{
"lessThan": "ae7fc824970888b4fdaa076819c9a6f2fcede275",
"status": "affected",
"version": "b4b9771bcbbd5839b0f77aba55e2f85989ed6779",
"versionType": "git"
},
{
"lessThan": "78706367fe1b98aee0a6de27c62b7f1e3035f38d",
"status": "affected",
"version": "b4b9771bcbbd5839b0f77aba55e2f85989ed6779",
"versionType": "git"
},
{
"lessThan": "d7940bb6a8e7ab28f972c2875cb05783216312dc",
"status": "affected",
"version": "b4b9771bcbbd5839b0f77aba55e2f85989ed6779",
"versionType": "git"
},
{
"lessThan": "5e82beba4bc1f91d0e64c9c43f2b2fa9cd1c2a7d",
"status": "affected",
"version": "b4b9771bcbbd5839b0f77aba55e2f85989ed6779",
"versionType": "git"
},
{
"lessThan": "bed792737b5f1ba773054dbe984502958bdfe6ce",
"status": "affected",
"version": "b4b9771bcbbd5839b0f77aba55e2f85989ed6779",
"versionType": "git"
},
{
"lessThan": "ac2f787980fdf4364cd5651a4c8128e59b8de3aa",
"status": "affected",
"version": "b4b9771bcbbd5839b0f77aba55e2f85989ed6779",
"versionType": "git"
},
{
"lessThan": "b4f1719dfea023220e0e6bd892b087d76b2a6a49",
"status": "affected",
"version": "b4b9771bcbbd5839b0f77aba55e2f85989ed6779",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/tipc/socket.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.0"
},
{
"lessThan": "5.0",
"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.151",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.103",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.44",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.1.*",
"status": "unaffected",
"version": "7.1.8",
"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": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.216",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.183",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.151",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.103",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.44",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.1.8",
"versionStartIncluding": "5.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2",
"versionStartIncluding": "5.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntipc: avoid use-after-free in poll trace queue dumps\n\nTIPC socket tracepoints dump queue state through tipc_sk_dump(). Most\nqueue-dump callsites already serialize that walk under the socket lock or\nsk-\u003esk_lock.slock, but tipc_poll() calls trace_tipc_sk_poll(...,\nTIPC_DUMP_ALL, ...) without holding either lock.\n\nThat lets the poll trace path reach tipc_list_dump() and backlog head/tail\ndumping while another context dequeues and frees an skb, leaving the trace\nhelper dereferencing a stale queue entry.\n\nStop the unlocked poll trace site from requesting queue dumps. Other queue\ndump trace callsites keep their existing output under the locking they\nalready provide, while poll still emits the event itself without walking\nlive queue members from an unlocked context."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.8,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The UAF is a race between tipc_poll()\u0027s unlocked trace queue walk and concurrent skb dequeue/free on the TIPC receive path; on cluster nodes a remote TIPC peer can supply the freeing side while poll/epoll runs on the victim socket processing that network traffic.\nAC:L - The attacker controls both sides of the race by concurrently polling/epolling a TIPC socket while sending/receiving TIPC traffic (or having a remote peer deliver packets), and can repeat attempts until the unlocked head/tail dump overlaps skb free.\nPR:L - Exploitation requires only an unprivileged local process with an AF_TIPC socket calling poll/epoll while TIPC traffic is processed; no real-root capability is needed beyond participation in an operational TIPC cluster where tracing may be enabled for diagnostics.\nUI:N - No end-user interaction is required; the race is triggered by normal daemon poll/epoll loops and incoming TIPC packet processing on cluster nodes.\nS:U - Impact is confined to kernel memory corruption and privilege boundaries within the host kernel; this is not a cross-VM or cross-container sandbox escape scenario.\nC:H - The bug is a use-after-free where tipc_list_dump()/tipc_skb_dump() dereference head/tail skbs after concurrent dequeue/kfree, enabling reads of freed skb and message memory usable for kernel information disclosure.\nI:H - UAF on skb queue entries can be leveraged with heap grooming for arbitrary kernel writes and control-flow hijack, not merely a benign crash, because freed skbs can be reallocated under attacker-influenced TIPC traffic.\nA:H - Accessing freed skbs from the poll trace path can cause kernel oops/panic or hang during tipc_skb_dump(), and repeated triggering yields reliable denial of service on affected cluster nodes."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-19T16:37:45.610Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/3cd57c6b210d50fd1f7ac1720442ba5be5dc94f8"
},
{
"url": "https://git.kernel.org/stable/c/ae7fc824970888b4fdaa076819c9a6f2fcede275"
},
{
"url": "https://git.kernel.org/stable/c/78706367fe1b98aee0a6de27c62b7f1e3035f38d"
},
{
"url": "https://git.kernel.org/stable/c/d7940bb6a8e7ab28f972c2875cb05783216312dc"
},
{
"url": "https://git.kernel.org/stable/c/5e82beba4bc1f91d0e64c9c43f2b2fa9cd1c2a7d"
},
{
"url": "https://git.kernel.org/stable/c/bed792737b5f1ba773054dbe984502958bdfe6ce"
},
{
"url": "https://git.kernel.org/stable/c/ac2f787980fdf4364cd5651a4c8128e59b8de3aa"
},
{
"url": "https://git.kernel.org/stable/c/b4f1719dfea023220e0e6bd892b087d76b2a6a49"
}
],
"title": "tipc: avoid use-after-free in poll trace queue dumps",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-74490",
"datePublished": "2026-08-15T12:27:20.107Z",
"dateReserved": "2026-08-15T05:44:03.905Z",
"dateUpdated": "2026-08-19T16:37:45.610Z",
"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…