Search
Find a vulnerability
Search criteria
ⓘ
Use this form to refine search results.
Full-text search supports keyword queries with ranking and filtering.
You can combine vendor, product, and sources to narrow results.
Enable “Apply ordering” to sort by date instead of relevance.
44290 vulnerabilities by linux
CVE-2026-99284 (GCVE-0-2026-99284)
Vulnerability from nvd – Published: 2026-11-07 20:40 – Updated: 2026-11-07 20:40
VLAI
EPSS
VEX
Title
net: skbuff: propagate shared-frag marker in skb_zerocopy()
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: skbuff: propagate shared-frag marker in skb_zerocopy()
skb_zerocopy() moves frag descriptors from @from into @to and takes a
reference on each frag, but it does not copy skb_shinfo(from)->flags into
skb_shinfo(to)->flags. A destination skb holding the same page-cache
backed frags as the source therefore reports skb_has_shared_frag() as
false.
That breaks the invariant relied on by later in-place writers. ESP input
checks skb_has_shared_frag() before deciding whether an uncloned
nonlinear skb can skip skb_cow_data(); with the marker lost, an skb that
skb_zerocopy() built for nfnetlink_queue or for an openvswitch upcall is
decrypted in place, letting an unprivileged user write into the page
cache of a root-owned read-only file.
Propagate SKBFL_SHARED_FRAG when frag descriptors are copied, as done for
the other frag-transfer helpers.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
af2806f8f90a150160be898cd85332459c83c5cb , < 1c623e3cbf43f12dd4a72712079bfa247a9b8ba3
(git)
Affected: af2806f8f90a150160be898cd85332459c83c5cb , < d7d6ff98d5d1b400f02211f962ac32cc0020aeab (git) Affected: af2806f8f90a150160be898cd85332459c83c5cb , < 1a9c180cd8435917b7516edfb1c9148032c28773 (git) Affected: af2806f8f90a150160be898cd85332459c83c5cb , < 79dc34beb1fdb3da79753e51e15c68591a2561fe (git) |
|
| Linux | Linux |
Affected:
3.14
Unaffected: 0 , < 3.14 (semver) Unaffected: 6.18.61 , ≤ 6.18.* (semver) Unaffected: 7.2.15 , ≤ 7.2.* (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/core/skbuff.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1c623e3cbf43f12dd4a72712079bfa247a9b8ba3",
"status": "affected",
"version": "af2806f8f90a150160be898cd85332459c83c5cb",
"versionType": "git"
},
{
"lessThan": "d7d6ff98d5d1b400f02211f962ac32cc0020aeab",
"status": "affected",
"version": "af2806f8f90a150160be898cd85332459c83c5cb",
"versionType": "git"
},
{
"lessThan": "1a9c180cd8435917b7516edfb1c9148032c28773",
"status": "affected",
"version": "af2806f8f90a150160be898cd85332459c83c5cb",
"versionType": "git"
},
{
"lessThan": "79dc34beb1fdb3da79753e51e15c68591a2561fe",
"status": "affected",
"version": "af2806f8f90a150160be898cd85332459c83c5cb",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/core/skbuff.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.14"
},
{
"lessThan": "3.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.61",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.15",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.61",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.15",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "3.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: skbuff: propagate shared-frag marker in skb_zerocopy()\n\nskb_zerocopy() moves frag descriptors from @from into @to and takes a\nreference on each frag, but it does not copy skb_shinfo(from)-\u003eflags into\nskb_shinfo(to)-\u003eflags. A destination skb holding the same page-cache\nbacked frags as the source therefore reports skb_has_shared_frag() as\nfalse.\n\nThat breaks the invariant relied on by later in-place writers. ESP input\nchecks skb_has_shared_frag() before deciding whether an uncloned\nnonlinear skb can skip skb_cow_data(); with the marker lost, an skb that\nskb_zerocopy() built for nfnetlink_queue or for an openvswitch upcall is\ndecrypted in place, letting an unprivileged user write into the page\ncache of a root-owned read-only file.\n\nPropagate SKBFL_SHARED_FRAG when frag descriptors are copied, as done for\nthe other frag-transfer helpers."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T20:40:33.661Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1c623e3cbf43f12dd4a72712079bfa247a9b8ba3"
},
{
"url": "https://git.kernel.org/stable/c/d7d6ff98d5d1b400f02211f962ac32cc0020aeab"
},
{
"url": "https://git.kernel.org/stable/c/1a9c180cd8435917b7516edfb1c9148032c28773"
},
{
"url": "https://git.kernel.org/stable/c/79dc34beb1fdb3da79753e51e15c68591a2561fe"
}
],
"title": "net: skbuff: propagate shared-frag marker in skb_zerocopy()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99284",
"datePublished": "2026-11-07T20:40:33.661Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T20:40:33.661Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99283 (GCVE-0-2026-99283)
Vulnerability from nvd – Published: 2026-11-07 20:14 – Updated: 2026-11-07 20:14
VLAI
EPSS
VEX
Title
netfilter: conntrack: tcp: use UNACK timeout for non-closing RST packets
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: conntrack: tcp: use UNACK timeout for non-closing RST packets
Commit be0502a3f2e9 ("netfilter: conntrack: tcp: only close if RST
matches exact sequence") keeps an established conntrack entry in
ESTABLISHED when an in-window RST does not match the expected sequence
number exactly, so the endpoint can validate the RST with a challenge
ACK.
The timeout selection nevertheless uses the CLOSE timeout for every RST
packet. The bug is that timeout selection is based on the packet type,
not on the state transition result: even when RST validation keeps
new_state in ESTABLISHED, the timeout is still forced to
TCP_CONNTRACK_CLOSE.
Linux TCP independently rate limits challenge ACKs per socket. A second
non-exact RST can therefore arrive after the first challenge ACK has
restored the timeout but before the rate limit expires. The second RST
lowers the timeout to 10 seconds again while the endpoint suppresses the
second challenge ACK, allowing the conntrack entry to expire while both
TCP endpoints remain established.
Using the ESTABLISHED timeout for such RSTs would avoid this short
expiration window, but it could also retain stale entries for the
five-day default because conntrack cannot reliably match the endpoint's
exact TCP state.
Use the UNACK timeout for RST packets that leave the conntrack entry in
TCP_CONNTRACK_ESTABLISHED. Exact-match RSTs and accepted RST packet
trains still fall through to timeouts[new_state], which preserves the
CLOSE timeout when conntrack accepts the RST as closing the flow.
This avoids the aggressive 10-second expiration window for non-exact
RSTs while preserving the short timeout for RSTs that conntrack accepts
as closing the flow.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 0c6d33329960b2d884a399196c8403643d8a9de6
(git)
Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < bf80e6802273a900311b44e47c9b1a59c6d2473c (git) Affected: 0 , < 6.18.61 (semver) |
|
| Linux | Linux |
Unaffected:
6.18.61 , ≤ 6.18.*
(semver)
Unaffected: 7.3 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/nf_conntrack_proto_tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0c6d33329960b2d884a399196c8403643d8a9de6",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "bf80e6802273a900311b44e47c9b1a59c6d2473c",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "6.18.61",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/nf_conntrack_proto_tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.61",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.61",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: conntrack: tcp: use UNACK timeout for non-closing RST packets\n\nCommit be0502a3f2e9 (\"netfilter: conntrack: tcp: only close if RST\nmatches exact sequence\") keeps an established conntrack entry in\nESTABLISHED when an in-window RST does not match the expected sequence\nnumber exactly, so the endpoint can validate the RST with a challenge\nACK.\n\nThe timeout selection nevertheless uses the CLOSE timeout for every RST\npacket. The bug is that timeout selection is based on the packet type,\nnot on the state transition result: even when RST validation keeps\nnew_state in ESTABLISHED, the timeout is still forced to\nTCP_CONNTRACK_CLOSE.\n\nLinux TCP independently rate limits challenge ACKs per socket. A second\nnon-exact RST can therefore arrive after the first challenge ACK has\nrestored the timeout but before the rate limit expires. The second RST\nlowers the timeout to 10 seconds again while the endpoint suppresses the\nsecond challenge ACK, allowing the conntrack entry to expire while both\nTCP endpoints remain established.\n\nUsing the ESTABLISHED timeout for such RSTs would avoid this short\nexpiration window, but it could also retain stale entries for the\nfive-day default because conntrack cannot reliably match the endpoint\u0027s\nexact TCP state.\n\nUse the UNACK timeout for RST packets that leave the conntrack entry in\nTCP_CONNTRACK_ESTABLISHED. Exact-match RSTs and accepted RST packet\ntrains still fall through to timeouts[new_state], which preserves the\nCLOSE timeout when conntrack accepts the RST as closing the flow.\n\nThis avoids the aggressive 10-second expiration window for non-exact\nRSTs while preserving the short timeout for RSTs that conntrack accepts\nas closing the flow."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T20:14:11.433Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0c6d33329960b2d884a399196c8403643d8a9de6"
},
{
"url": "https://git.kernel.org/stable/c/bf80e6802273a900311b44e47c9b1a59c6d2473c"
}
],
"title": "netfilter: conntrack: tcp: use UNACK timeout for non-closing RST packets",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99283",
"datePublished": "2026-11-07T20:14:11.433Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T20:14:11.433Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99282 (GCVE-0-2026-99282)
Vulnerability from nvd – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
net/sched: sch_teql: fix use-after-free on lower qdisc drop
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/sched: sch_teql: fix use-after-free on lower qdisc drop
The issue: teql_master_xmit() tests the slave's ndo_start_xmit() return
value against NETDEV_TX_OK alone. A slave that consumes the skb but
returns an error code (rc < NET_XMIT_MASK, e.g. NET_XMIT_DROP) is treated
as if the skb were still owned, so the loop restores skb->dev and calls
__skb_pull() on it. A VLAN slave returns the result of dev_queue_xmit()
from its ndo_start_xmit() (propagated since cbbef5e18307), and when the
lower qdisc drops the packet that value is NET_XMIT_DROP after the skb
has been freed, giving a use-after-free in teql_master_xmit().
The Fix: test for consumption with dev_xmit_complete(), which accepts
NETDEV_TX_OK and every rc < NET_XMIT_MASK, matching other callers that
need to distinguish consumed results from busy. Only NETDEV_TX_OK keeps
the packet counted in tx_packets/tx_bytes and advances the slave; a
consumed result that is neither a success nor NET_XMIT_CN ends the
attempt and is charged to tx_dropped, so lower-qdisc drops are no longer
reported as good transmits. NET_XMIT_CN is counted like success because
it can accompany acceptance of the current packet: pfifo_head_drop drops
the old head, enqueues the current skb and returns NET_XMIT_CN.
Conditions to recreate the bug:
With CONFIG_NET_SCH_TEQL,
CONFIG_VLAN_8021Q and CONFIG_DUMMY enabled, add lkrdummy0 (dummy) and
lkrvlan0 (VLAN id 37 on lkrdummy0); set a pfifo limit 0 root on lkrdummy0
and a teql0 root on lkrvlan0; bring teql0 up with an address and send one
UDP packet to it. The VLAN xmit returns NET_XMIT_DROP from the lower
qdisc while holding a freed skb.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
572a9d7b6fc7f20f573664063324c086be310c42 , < fc55d92ae6a4b2e7d062cad6d4c67f6b061d9cde
(git)
Affected: 572a9d7b6fc7f20f573664063324c086be310c42 , < 2702ae318630787c640ec0d0403ffd9d95c43e9e (git) Affected: 572a9d7b6fc7f20f573664063324c086be310c42 , < 782d6bb8f9b8e9d8591181662222bf74cd3ecf79 (git) |
|
| Linux | Linux |
Affected:
2.6.33
Unaffected: 0 , < 2.6.33 (semver) Unaffected: 6.18.61 , ≤ 6.18.* (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sched/sch_teql.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fc55d92ae6a4b2e7d062cad6d4c67f6b061d9cde",
"status": "affected",
"version": "572a9d7b6fc7f20f573664063324c086be310c42",
"versionType": "git"
},
{
"lessThan": "2702ae318630787c640ec0d0403ffd9d95c43e9e",
"status": "affected",
"version": "572a9d7b6fc7f20f573664063324c086be310c42",
"versionType": "git"
},
{
"lessThan": "782d6bb8f9b8e9d8591181662222bf74cd3ecf79",
"status": "affected",
"version": "572a9d7b6fc7f20f573664063324c086be310c42",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sched/sch_teql.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.33"
},
{
"lessThan": "2.6.33",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.61",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.61",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "2.6.33",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: sch_teql: fix use-after-free on lower qdisc drop\n\nThe issue: teql_master_xmit() tests the slave\u0027s ndo_start_xmit() return\nvalue against NETDEV_TX_OK alone. A slave that consumes the skb but\nreturns an error code (rc \u003c NET_XMIT_MASK, e.g. NET_XMIT_DROP) is treated\nas if the skb were still owned, so the loop restores skb-\u003edev and calls\n__skb_pull() on it. A VLAN slave returns the result of dev_queue_xmit()\nfrom its ndo_start_xmit() (propagated since cbbef5e18307), and when the\nlower qdisc drops the packet that value is NET_XMIT_DROP after the skb\nhas been freed, giving a use-after-free in teql_master_xmit().\n\nThe Fix: test for consumption with dev_xmit_complete(), which accepts\nNETDEV_TX_OK and every rc \u003c NET_XMIT_MASK, matching other callers that\nneed to distinguish consumed results from busy. Only NETDEV_TX_OK keeps\nthe packet counted in tx_packets/tx_bytes and advances the slave; a\nconsumed result that is neither a success nor NET_XMIT_CN ends the\nattempt and is charged to tx_dropped, so lower-qdisc drops are no longer\nreported as good transmits. NET_XMIT_CN is counted like success because\nit can accompany acceptance of the current packet: pfifo_head_drop drops\nthe old head, enqueues the current skb and returns NET_XMIT_CN.\n\nConditions to recreate the bug:\nWith CONFIG_NET_SCH_TEQL,\nCONFIG_VLAN_8021Q and CONFIG_DUMMY enabled, add lkrdummy0 (dummy) and\nlkrvlan0 (VLAN id 37 on lkrdummy0); set a pfifo limit 0 root on lkrdummy0\nand a teql0 root on lkrvlan0; bring teql0 up with an address and send one\nUDP packet to it. The VLAN xmit returns NET_XMIT_DROP from the lower\nqdisc while holding a freed skb."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:47.978Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fc55d92ae6a4b2e7d062cad6d4c67f6b061d9cde"
},
{
"url": "https://git.kernel.org/stable/c/2702ae318630787c640ec0d0403ffd9d95c43e9e"
},
{
"url": "https://git.kernel.org/stable/c/782d6bb8f9b8e9d8591181662222bf74cd3ecf79"
}
],
"title": "net/sched: sch_teql: fix use-after-free on lower qdisc drop",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99282",
"datePublished": "2026-11-07T14:08:47.978Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:47.978Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99281 (GCVE-0-2026-99281)
Vulnerability from nvd – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
tun: Require CAP_NET_ADMIN to attach to an ownerless device
Summary
In the Linux kernel, the following vulnerability has been resolved:
tun: Require CAP_NET_ADMIN to attach to an ownerless device
Twenty years ago I made creating a tuntap device require CAP_NET_ADMIN
in commit ca6bb5d7ab22 ("[NET]: Require CAP_NET_ADMIN to create tuntap
devices.")
The idea was to allow the permissions on /dev/net/tun to be relaxed to
0666 and thus allow owners of tun devices assigned with TUNSETOWNER to
actually open it and get at their devices.
What we missed at the time was that persistent devices with *no* owner
were already essentially world-consumable, and anyone who could open
the device node could also attach to those.
Even then, using persistent devices with no explicitly set owner — on
the (false) presumption that CAP_NET_ADMIN would be required to open
them — wasn't an egregious userspace bug. There are cases where it does
make sense to separate the creation/configuration of the netdevice, from
the process which shovels packets into it.
Since then, TUNSETGROUP was added a year later in commit 8c644623fe7e
("[NET]: Allow group ownership of TUN/TAP devices."). Its commit message
noted that if both uid and gid are set, both have to match (in itself a
bizarre choice) — but still not that with *neither* set, no permission
at all was required.
Then in 2012 commit c8d68e6be1c3 ("tuntap: multiqueue support") allowed
new queues to be attached to a device from the moment of its creation,
with no way for userspace to close the race between creation and a
subsequent TUNSET{OWNER,GROUP}.
In 2024, commit 3ca459eaba1bf ("tun: fix group permission check") tried
to fix things to be saner: only require the user *or* the group to
match, in line with standard POSIX permissions, and require
CAP_NET_ADMIN if neither the user nor group authorised the access
(although it put the CAP_NET_ADMIN check first, and would wrongly have
reported the capability as having been used even when it was not).
That fix was reverted in commit a70c7b3cbc06 ("tun: revert fix group
permission check") due to allegedly causing a regression in an selinux
test suite which *expected* the attachment to succeed when authorised
by none of user, group, nor CAP_NET_ADMIN:
https://lore.kernel.org/netdev/CAFqZXNtkCBT4f+PwyVRmQGoT3p1eVa01fCG_aNtpt6dakXncUg@mail.gmail.com/
We should not break UAPI. But we don't have to consider an selinux test
case which deliberately exercises a security flaw to be UAPI worth
preserving either. To which end, I have fixed it in selinux-testsuite
commit b2f894f0016b ("tests/tun_tap: set an owner on the device for the
relabel tests").
So: fix the lack of CAP_NET_ADMIN check on devices which *haven't* been
assigned an owner or group, while leaving the weird tun ownership model
as it was (user *and* group have to match, if both are set). If someone
still wants to fix the latter (which wasn't actually the reason the
previous attempt was reverted), they can do it under separate cover.
Permit attaching to an existing device only if an owner and/or group was
set and the caller matches all that were set, or if the caller has
CAP_NET_ADMIN. The only behavioural change is that a device with no
owner or group now requires CAP_NET_ADMIN to attach — precisely the
loophole we want to close.
And put the CAP_NET_ADMIN check in the right place this time.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
ca6bb5d7ab22ac79f608fe6cbc6b12de6a5a19f0 , < 2f92c0286cfd58bff9d6d54c01a771073d5eb775
(git)
Affected: ca6bb5d7ab22ac79f608fe6cbc6b12de6a5a19f0 , < e53d1cf05da8ea58a5743b7ce5894fb51b0b9700 (git) Affected: ca6bb5d7ab22ac79f608fe6cbc6b12de6a5a19f0 , < ffdf678dd16610e3f006dac904bd37c09684673c (git) |
|
| Linux | Linux |
Affected:
2.6.18
Unaffected: 0 , < 2.6.18 (semver) Unaffected: 6.18.61 , ≤ 6.18.* (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/tun.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2f92c0286cfd58bff9d6d54c01a771073d5eb775",
"status": "affected",
"version": "ca6bb5d7ab22ac79f608fe6cbc6b12de6a5a19f0",
"versionType": "git"
},
{
"lessThan": "e53d1cf05da8ea58a5743b7ce5894fb51b0b9700",
"status": "affected",
"version": "ca6bb5d7ab22ac79f608fe6cbc6b12de6a5a19f0",
"versionType": "git"
},
{
"lessThan": "ffdf678dd16610e3f006dac904bd37c09684673c",
"status": "affected",
"version": "ca6bb5d7ab22ac79f608fe6cbc6b12de6a5a19f0",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/tun.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.18"
},
{
"lessThan": "2.6.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.61",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.61",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "2.6.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntun: Require CAP_NET_ADMIN to attach to an ownerless device\n\nTwenty years ago I made creating a tuntap device require CAP_NET_ADMIN\nin commit ca6bb5d7ab22 (\"[NET]: Require CAP_NET_ADMIN to create tuntap\ndevices.\")\n\nThe idea was to allow the permissions on /dev/net/tun to be relaxed to\n0666 and thus allow owners of tun devices assigned with TUNSETOWNER to\nactually open it and get at their devices.\n\nWhat we missed at the time was that persistent devices with *no* owner\nwere already essentially world-consumable, and anyone who could open\nthe device node could also attach to those.\n\nEven then, using persistent devices with no explicitly set owner \u2014 on\nthe (false) presumption that CAP_NET_ADMIN would be required to open\nthem \u2014 wasn\u0027t an egregious userspace bug. There are cases where it does\nmake sense to separate the creation/configuration of the netdevice, from\nthe process which shovels packets into it.\n\nSince then, TUNSETGROUP was added a year later in commit 8c644623fe7e\n(\"[NET]: Allow group ownership of TUN/TAP devices.\"). Its commit message\nnoted that if both uid and gid are set, both have to match (in itself a\nbizarre choice) \u2014 but still not that with *neither* set, no permission\nat all was required.\n\nThen in 2012 commit c8d68e6be1c3 (\"tuntap: multiqueue support\") allowed\nnew queues to be attached to a device from the moment of its creation,\nwith no way for userspace to close the race between creation and a\nsubsequent TUNSET{OWNER,GROUP}.\n\nIn 2024, commit 3ca459eaba1bf (\"tun: fix group permission check\") tried\nto fix things to be saner: only require the user *or* the group to\nmatch, in line with standard POSIX permissions, and require\nCAP_NET_ADMIN if neither the user nor group authorised the access\n(although it put the CAP_NET_ADMIN check first, and would wrongly have\nreported the capability as having been used even when it was not).\n\nThat fix was reverted in commit a70c7b3cbc06 (\"tun: revert fix group\npermission check\") due to allegedly causing a regression in an selinux\ntest suite which *expected* the attachment to succeed when authorised\nby none of user, group, nor CAP_NET_ADMIN:\nhttps://lore.kernel.org/netdev/CAFqZXNtkCBT4f+PwyVRmQGoT3p1eVa01fCG_aNtpt6dakXncUg@mail.gmail.com/\n\nWe should not break UAPI. But we don\u0027t have to consider an selinux test\ncase which deliberately exercises a security flaw to be UAPI worth\npreserving either. To which end, I have fixed it in selinux-testsuite\ncommit b2f894f0016b (\"tests/tun_tap: set an owner on the device for the\nrelabel tests\").\n\nSo: fix the lack of CAP_NET_ADMIN check on devices which *haven\u0027t* been\nassigned an owner or group, while leaving the weird tun ownership model\nas it was (user *and* group have to match, if both are set). If someone\nstill wants to fix the latter (which wasn\u0027t actually the reason the\nprevious attempt was reverted), they can do it under separate cover.\n\nPermit attaching to an existing device only if an owner and/or group was\nset and the caller matches all that were set, or if the caller has\nCAP_NET_ADMIN. The only behavioural change is that a device with no\nowner or group now requires CAP_NET_ADMIN to attach \u2014 precisely the\nloophole we want to close.\n\nAnd put the CAP_NET_ADMIN check in the right place this time."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:47.735Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2f92c0286cfd58bff9d6d54c01a771073d5eb775"
},
{
"url": "https://git.kernel.org/stable/c/e53d1cf05da8ea58a5743b7ce5894fb51b0b9700"
},
{
"url": "https://git.kernel.org/stable/c/ffdf678dd16610e3f006dac904bd37c09684673c"
}
],
"title": "tun: Require CAP_NET_ADMIN to attach to an ownerless device",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99281",
"datePublished": "2026-11-07T14:08:47.735Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:47.735Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99280 (GCVE-0-2026-99280)
Vulnerability from nvd – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
ksmbd: drain session procfs readers before dropping table references
Summary
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: drain session procfs readers before dropping table references
Session registration failure and connection cleanup can drop the table
reference while the per-session procfs entry is still accessible. If a
reader holds the last remaining reference, its final put calls
proc_remove() from its own callback and waits for that callback to
finish.
Remove the procfs entry before dropping the table reference in the
registration failure path. Queue sessions removed during connection
cleanup and drain their procfs readers after releasing both session
locks, then return their table references. Keep the global hash node
unhashed while a session is queued so a concurrent unregister cannot
drop the reference again.
Previous-session replacement also destroys the file table before the
session is finally freed. Detach the idr under the lock used by procfs
file counters, and report zero files after it has been detached. This
prevents a reader from accessing the idr during or after its
destruction.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
d7fd1f98607f2cd358e583f9548bdf0173090a86 , < 6789f0983f8e85ce3a5ed8c50fc05d613ead9c2c
(git)
Affected: d7fd1f98607f2cd358e583f9548bdf0173090a86 , < 1c087cf7d5386c708d8984b263280b42b3daada0 (git) Affected: c99ea7855124ca1428a1e59c2b4590aaef34eacf (git) Affected: 7.2.8 , < 7.3 (semver) |
|
| Linux | Linux |
Affected:
7.3
Unaffected: 0 , < 7.3 (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/server/mgmt/user_session.c",
"fs/smb/server/vfs_cache.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6789f0983f8e85ce3a5ed8c50fc05d613ead9c2c",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"lessThan": "1c087cf7d5386c708d8984b263280b42b3daada0",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"status": "affected",
"version": "c99ea7855124ca1428a1e59c2b4590aaef34eacf",
"versionType": "git"
},
{
"lessThan": "7.3",
"status": "affected",
"version": "7.2.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/server/mgmt/user_session.c",
"fs/smb/server/vfs_cache.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "7.3"
},
{
"lessThan": "7.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.2.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: drain session procfs readers before dropping table references\n\nSession registration failure and connection cleanup can drop the table\nreference while the per-session procfs entry is still accessible. If a\nreader holds the last remaining reference, its final put calls\nproc_remove() from its own callback and waits for that callback to\nfinish.\n\nRemove the procfs entry before dropping the table reference in the\nregistration failure path. Queue sessions removed during connection\ncleanup and drain their procfs readers after releasing both session\nlocks, then return their table references. Keep the global hash node\nunhashed while a session is queued so a concurrent unregister cannot\ndrop the reference again.\n\nPrevious-session replacement also destroys the file table before the\nsession is finally freed. Detach the idr under the lock used by procfs\nfile counters, and report zero files after it has been detached. This\nprevents a reader from accessing the idr during or after its\ndestruction."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:47.488Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6789f0983f8e85ce3a5ed8c50fc05d613ead9c2c"
},
{
"url": "https://git.kernel.org/stable/c/1c087cf7d5386c708d8984b263280b42b3daada0"
}
],
"title": "ksmbd: drain session procfs readers before dropping table references",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99280",
"datePublished": "2026-11-07T14:08:47.488Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:47.488Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99279 (GCVE-0-2026-99279)
Vulnerability from nvd – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
ksmbd: reclaim ended sessions on logoff and expiration
Summary
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: reclaim ended sessions on logoff and expiration
LOGOFF and previous-session replacement leave sessions Expired with a
zero credential expiry. Ended sessions can retain their memory and
connection slots when no further setup arrives on the owning connection.
Unpublish a logged-off session while the request reference keeps its
response signing and encryption keys alive. Remove its procfs entry
before dropping the table reference so a reader cannot remove its own
entry on the last put. Clear proc_entry after removal to avoid removing
it twice.
Reclaim ended sessions from the global table in the existing expiration
worker before it acquires conn_list_lock. Only select Expired sessions
with zero credential expiry and no references beyond the table
reference. Keep sessions whose Kerberos credentials expired available
for reauthentication.
Unlink the session from its setup connection and all channel
connections, so SMB2 sessions and sessions with only secondary SMB3
channels are covered. The session already holds connection references,
and sessions_table_lock prevents concurrent channel removal. Queue
sessions on a separate disposal list, leaving their hash nodes unhashed,
and remove procfs entries and drop table references outside the locks.
Keep the pending setup check before allocating a new session so
abandoned InProgress sessions can release their slots even at the
connection limit. Retain the timeout and reference checks and dispose of
those sessions outside the locks. Leave ended Expired sessions to the
expiration worker.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
d7fd1f98607f2cd358e583f9548bdf0173090a86 , < 1767a5e45dbf6a3b12105196dda4fb0ef80b9698
(git)
Affected: d7fd1f98607f2cd358e583f9548bdf0173090a86 , < 26534ef335e92b028eb58e44d98d46a0e26af0ec (git) Affected: c99ea7855124ca1428a1e59c2b4590aaef34eacf (git) Affected: 7.2.8 , < 7.3 (semver) |
|
| Linux | Linux |
Affected:
7.3
Unaffected: 0 , < 7.3 (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/server/connection.c",
"fs/smb/server/mgmt/user_session.c",
"fs/smb/server/mgmt/user_session.h",
"fs/smb/server/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1767a5e45dbf6a3b12105196dda4fb0ef80b9698",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"lessThan": "26534ef335e92b028eb58e44d98d46a0e26af0ec",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"status": "affected",
"version": "c99ea7855124ca1428a1e59c2b4590aaef34eacf",
"versionType": "git"
},
{
"lessThan": "7.3",
"status": "affected",
"version": "7.2.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/server/connection.c",
"fs/smb/server/mgmt/user_session.c",
"fs/smb/server/mgmt/user_session.h",
"fs/smb/server/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "7.3"
},
{
"lessThan": "7.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.2.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: reclaim ended sessions on logoff and expiration\n\nLOGOFF and previous-session replacement leave sessions Expired with a\nzero credential expiry. Ended sessions can retain their memory and\nconnection slots when no further setup arrives on the owning connection.\n\nUnpublish a logged-off session while the request reference keeps its\nresponse signing and encryption keys alive. Remove its procfs entry\nbefore dropping the table reference so a reader cannot remove its own\nentry on the last put. Clear proc_entry after removal to avoid removing\nit twice.\n\nReclaim ended sessions from the global table in the existing expiration\nworker before it acquires conn_list_lock. Only select Expired sessions\nwith zero credential expiry and no references beyond the table\nreference. Keep sessions whose Kerberos credentials expired available\nfor reauthentication.\n\nUnlink the session from its setup connection and all channel\nconnections, so SMB2 sessions and sessions with only secondary SMB3\nchannels are covered. The session already holds connection references,\nand sessions_table_lock prevents concurrent channel removal. Queue\nsessions on a separate disposal list, leaving their hash nodes unhashed,\nand remove procfs entries and drop table references outside the locks.\n\nKeep the pending setup check before allocating a new session so\nabandoned InProgress sessions can release their slots even at the\nconnection limit. Retain the timeout and reference checks and dispose of\nthose sessions outside the locks. Leave ended Expired sessions to the\nexpiration worker."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:47.243Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1767a5e45dbf6a3b12105196dda4fb0ef80b9698"
},
{
"url": "https://git.kernel.org/stable/c/26534ef335e92b028eb58e44d98d46a0e26af0ec"
}
],
"title": "ksmbd: reclaim ended sessions on logoff and expiration",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99279",
"datePublished": "2026-11-07T14:08:47.243Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:47.243Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99278 (GCVE-0-2026-99278)
Vulnerability from nvd – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
ksmbd: limit sessions on each connection
Summary
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: limit sessions on each connection
The pending setup limit only counts InProgress sessions. A client can
complete authentication repeatedly and retain an unbounded number of Valid
sessions on one connection.
Reserve a connection slot before allocating a session and retain a
connection reference while authentication is in progress. The first SMB3
channel takes over that reservation; binding to another connection reserves
one slot there. Reauthentication and authentication continuation reuse the
existing reservation. Return slots on allocation or insertion failure,
channel removal, and final session destruction.
Accept max_sessions_per_connection in reserved startup-request space and
default to 64 when older tools leave it zero. Keep the request size and
existing field offsets unchanged. Expose the configured limit in procfs.
The existing connection limits bound the aggregate number of sessions
without a separate global session allocation limit.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
d7fd1f98607f2cd358e583f9548bdf0173090a86 , < 94f8462fc9d5332bc54e91605003c17381e9171a
(git)
Affected: d7fd1f98607f2cd358e583f9548bdf0173090a86 , < dc6aa1ba8b7fff8800ad9bf143f17d308e02ec68 (git) Affected: c99ea7855124ca1428a1e59c2b4590aaef34eacf (git) Affected: 7.2.8 , < 7.3 (semver) |
|
| Linux | Linux |
Affected:
7.3
Unaffected: 0 , < 7.3 (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/server/connection.c",
"fs/smb/server/connection.h",
"fs/smb/server/ksmbd_netlink.h",
"fs/smb/server/mgmt/user_session.c",
"fs/smb/server/mgmt/user_session.h",
"fs/smb/server/proc.c",
"fs/smb/server/server.c",
"fs/smb/server/server.h",
"fs/smb/server/smb2pdu.c",
"fs/smb/server/transport_ipc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "94f8462fc9d5332bc54e91605003c17381e9171a",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"lessThan": "dc6aa1ba8b7fff8800ad9bf143f17d308e02ec68",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"status": "affected",
"version": "c99ea7855124ca1428a1e59c2b4590aaef34eacf",
"versionType": "git"
},
{
"lessThan": "7.3",
"status": "affected",
"version": "7.2.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/server/connection.c",
"fs/smb/server/connection.h",
"fs/smb/server/ksmbd_netlink.h",
"fs/smb/server/mgmt/user_session.c",
"fs/smb/server/mgmt/user_session.h",
"fs/smb/server/proc.c",
"fs/smb/server/server.c",
"fs/smb/server/server.h",
"fs/smb/server/smb2pdu.c",
"fs/smb/server/transport_ipc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "7.3"
},
{
"lessThan": "7.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.2.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: limit sessions on each connection\n\nThe pending setup limit only counts InProgress sessions. A client can\ncomplete authentication repeatedly and retain an unbounded number of Valid\nsessions on one connection.\n\nReserve a connection slot before allocating a session and retain a\nconnection reference while authentication is in progress. The first SMB3\nchannel takes over that reservation; binding to another connection reserves\none slot there. Reauthentication and authentication continuation reuse the\nexisting reservation. Return slots on allocation or insertion failure,\nchannel removal, and final session destruction.\n\nAccept max_sessions_per_connection in reserved startup-request space and\ndefault to 64 when older tools leave it zero. Keep the request size and\nexisting field offsets unchanged. Expose the configured limit in procfs.\nThe existing connection limits bound the aggregate number of sessions\nwithout a separate global session allocation limit."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:46.983Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/94f8462fc9d5332bc54e91605003c17381e9171a"
},
{
"url": "https://git.kernel.org/stable/c/dc6aa1ba8b7fff8800ad9bf143f17d308e02ec68"
}
],
"title": "ksmbd: limit sessions on each connection",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99278",
"datePublished": "2026-11-07T14:08:46.983Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:46.983Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99277 (GCVE-0-2026-99277)
Vulnerability from nvd – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
ksmbd: hold a connection reference for each session channel
Summary
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: hold a connection reference for each session channel
ksmbd_session_unregister() removes a session from the global and per-
connection tables before dropping the table reference. A concurrent
reference holder can keep the session and its channel list alive after
those removals.
Connection cleanup can no longer find the unpublished session to remove its
channels. Since a channel only stores a raw conn pointer, the connection
can be freed while another session reference holder is still accessing it,
for example during SMB3.1.1 binding or a procfs read.
Take a connection reference when registering a channel and release it on
insertion failure, channel removal, or final session destruction. Keep the
channels and signing keys until the session is destroyed so a response can
still be signed after the session has been unregistered.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
d7fd1f98607f2cd358e583f9548bdf0173090a86 , < 4b333aed69cfc2c8687b86b6a4364a0dffc16dd8
(git)
Affected: d7fd1f98607f2cd358e583f9548bdf0173090a86 , < add8d7fb04efe564193df73581889c62fc0016f1 (git) Affected: c99ea7855124ca1428a1e59c2b4590aaef34eacf (git) Affected: 7.2.8 , < 7.3 (semver) |
|
| Linux | Linux |
Affected:
7.3
Unaffected: 0 , < 7.3 (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/server/mgmt/user_session.c",
"fs/smb/server/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4b333aed69cfc2c8687b86b6a4364a0dffc16dd8",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"lessThan": "add8d7fb04efe564193df73581889c62fc0016f1",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"status": "affected",
"version": "c99ea7855124ca1428a1e59c2b4590aaef34eacf",
"versionType": "git"
},
{
"lessThan": "7.3",
"status": "affected",
"version": "7.2.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/server/mgmt/user_session.c",
"fs/smb/server/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "7.3"
},
{
"lessThan": "7.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.2.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: hold a connection reference for each session channel\n\nksmbd_session_unregister() removes a session from the global and per-\nconnection tables before dropping the table reference. A concurrent\nreference holder can keep the session and its channel list alive after\nthose removals.\n\nConnection cleanup can no longer find the unpublished session to remove its\nchannels. Since a channel only stores a raw conn pointer, the connection\ncan be freed while another session reference holder is still accessing it,\nfor example during SMB3.1.1 binding or a procfs read.\n\nTake a connection reference when registering a channel and release it on\ninsertion failure, channel removal, or final session destruction. Keep the\nchannels and signing keys until the session is destroyed so a response can\nstill be signed after the session has been unregistered."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:46.710Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4b333aed69cfc2c8687b86b6a4364a0dffc16dd8"
},
{
"url": "https://git.kernel.org/stable/c/add8d7fb04efe564193df73581889c62fc0016f1"
}
],
"title": "ksmbd: hold a connection reference for each session channel",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99277",
"datePublished": "2026-11-07T14:08:46.710Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:46.710Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99276 (GCVE-0-2026-99276)
Vulnerability from nvd – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
ksmbd: defer connection scavenging while session locks are busy
Summary
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: defer connection scavenging while session locks are busy
The expiration worker holds conn_list_lock for reading while checking
for authenticated sessions. Without this change, the check can wait for
conn->session_lock or sessions_table_lock.
In destroy_previous_session(), the status updates after
ksmbd_conn_wait_idle_sess() run with both session locks held for
writing. Both the KSMBD_SESS_GOOD error path and the
KSMBD_SESS_NEED_SETUP success path call ksmbd_all_conn_set_status(),
which takes conn_list_lock for reading.
A writer queued on conn_list_lock can block these new read acquisitions.
The worker then waits for a session lock held by
destroy_previous_session(), which waits behind the writer. The writer
cannot proceed until the worker releases conn_list_lock.
Try both session locks instead of waiting in the scavenging check. Keep
the connection when either lock is busy and let the periodic worker
retry later.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
d7fd1f98607f2cd358e583f9548bdf0173090a86 , < 4e4e8b38994a0b0fc23f00ca6698b469a41abe70
(git)
Affected: d7fd1f98607f2cd358e583f9548bdf0173090a86 , < b4bae7af1154089be87c7475218264fcbfd16d10 (git) Affected: c99ea7855124ca1428a1e59c2b4590aaef34eacf (git) Affected: 7.2.8 , < 7.3 (semver) |
|
| Linux | Linux |
Affected:
7.3
Unaffected: 0 , < 7.3 (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/server/mgmt/user_session.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4e4e8b38994a0b0fc23f00ca6698b469a41abe70",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"lessThan": "b4bae7af1154089be87c7475218264fcbfd16d10",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"status": "affected",
"version": "c99ea7855124ca1428a1e59c2b4590aaef34eacf",
"versionType": "git"
},
{
"lessThan": "7.3",
"status": "affected",
"version": "7.2.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/server/mgmt/user_session.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "7.3"
},
{
"lessThan": "7.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.2.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: defer connection scavenging while session locks are busy\n\nThe expiration worker holds conn_list_lock for reading while checking\nfor authenticated sessions. Without this change, the check can wait for\nconn-\u003esession_lock or sessions_table_lock.\n\nIn destroy_previous_session(), the status updates after\nksmbd_conn_wait_idle_sess() run with both session locks held for\nwriting. Both the KSMBD_SESS_GOOD error path and the\nKSMBD_SESS_NEED_SETUP success path call ksmbd_all_conn_set_status(),\nwhich takes conn_list_lock for reading.\n\nA writer queued on conn_list_lock can block these new read acquisitions.\nThe worker then waits for a session lock held by\ndestroy_previous_session(), which waits behind the writer. The writer\ncannot proceed until the worker releases conn_list_lock.\n\nTry both session locks instead of waiting in the scavenging check. Keep\nthe connection when either lock is busy and let the periodic worker\nretry later."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:46.432Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4e4e8b38994a0b0fc23f00ca6698b469a41abe70"
},
{
"url": "https://git.kernel.org/stable/c/b4bae7af1154089be87c7475218264fcbfd16d10"
}
],
"title": "ksmbd: defer connection scavenging while session locks are busy",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99276",
"datePublished": "2026-11-07T14:08:46.432Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:46.432Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99275 (GCVE-0-2026-99275)
Vulnerability from nvd – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
smb: client: reject short SESSION_SETUP responses
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: reject short SESSION_SETUP responses
smb2_check_message() accepts frames shorter than struct smb2_pdu when
the SMB2 status is non-zero, before the minimum-PDU check added by
b4694f269e66d. A 64-byte STATUS_MORE_PROCESSING_REQUIRED SESSION_SETUP
response is therefore accepted even though it cannot contain the
SecurityBufferOffset and SecurityBufferLength fields.
The parser then reads those fields from stale bytes left in the reused
receive buffer by an earlier frame. With a long stale
SecurityBufferLength, decode_ntlmssp_challenge() copies up to about
64 KB from beyond the receive object and sends the data back to the
server in the NTLMv2 AUTHENTICATE target info.
Reject short MPR SESSION_SETUP responses before the short-error path,
and validate SecurityBufferOffset + SecurityBufferLength against the
received response length before decoding the challenge.
The ordering bypass is not new: the short-error early return predates
b4694f269e66d, and the unvalidated SecurityBufferLength read predates
the 2016 raw NTLMSSP split in 166cea4dc3a4, so all supported stable
trees are affected. Reproduced on 6.6.87.2; the path is unchanged on
mainline.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
5478f9ba9a34d660eb3227dcd16314689c51f946 , < df63e01933886153e40706483b9635b2456ad91f
(git)
Affected: 5478f9ba9a34d660eb3227dcd16314689c51f946 , < 4d8930afa3446041358a7db33e7b23a0bb9459b5 (git) |
|
| Linux | Linux |
Affected:
3.6
Unaffected: 0 , < 3.6 (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2misc.c",
"fs/smb/client/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "df63e01933886153e40706483b9635b2456ad91f",
"status": "affected",
"version": "5478f9ba9a34d660eb3227dcd16314689c51f946",
"versionType": "git"
},
{
"lessThan": "4d8930afa3446041358a7db33e7b23a0bb9459b5",
"status": "affected",
"version": "5478f9ba9a34d660eb3227dcd16314689c51f946",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2misc.c",
"fs/smb/client/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.6"
},
{
"lessThan": "3.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "3.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: reject short SESSION_SETUP responses\n\nsmb2_check_message() accepts frames shorter than struct smb2_pdu when\nthe SMB2 status is non-zero, before the minimum-PDU check added by\nb4694f269e66d. A 64-byte STATUS_MORE_PROCESSING_REQUIRED SESSION_SETUP\nresponse is therefore accepted even though it cannot contain the\nSecurityBufferOffset and SecurityBufferLength fields.\n\nThe parser then reads those fields from stale bytes left in the reused\nreceive buffer by an earlier frame. With a long stale\nSecurityBufferLength, decode_ntlmssp_challenge() copies up to about\n64 KB from beyond the receive object and sends the data back to the\nserver in the NTLMv2 AUTHENTICATE target info.\n\nReject short MPR SESSION_SETUP responses before the short-error path,\nand validate SecurityBufferOffset + SecurityBufferLength against the\nreceived response length before decoding the challenge.\n\nThe ordering bypass is not new: the short-error early return predates\nb4694f269e66d, and the unvalidated SecurityBufferLength read predates\nthe 2016 raw NTLMSSP split in 166cea4dc3a4, so all supported stable\ntrees are affected. Reproduced on 6.6.87.2; the path is unchanged on\nmainline."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:46.188Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/df63e01933886153e40706483b9635b2456ad91f"
},
{
"url": "https://git.kernel.org/stable/c/4d8930afa3446041358a7db33e7b23a0bb9459b5"
}
],
"title": "smb: client: reject short SESSION_SETUP responses",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99275",
"datePublished": "2026-11-07T14:08:46.188Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:46.188Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99274 (GCVE-0-2026-99274)
Vulnerability from nvd – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
smb: client: fix fiemap wild read on empty truncated response
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix fiemap wild read on empty truncated response
smb3_fiemap() treats -E2BIG from SMB2_ioctl() as a truncated range blob
and loops for the next chunk. If the server reports
STATUS_BUFFER_OVERFLOW with OutputCount == 0, SMB2_ioctl() returns
-E2BIG with out_data == NULL and out_data_len == 0, and the existing
length checks accept the empty result. The loop then evaluates
next = out_data[num - 1].file_offset + ...
with num == 0, reading 16 bytes before NULL.
Reject a truncated range blob that contains no range, so the resume
offset is never computed from an empty response. Also require the last
range in a truncated blob to advance the resume offset without
overflowing, and to stay within the requested range; a malicious or
broken server could otherwise make no progress or underflow len and loop
forever. Free the previous response buffer before retrying.
Reproduced on 6.6.87.2 with a malicious SMB2 server that answers
FSCTL_QUERY_ALLOCATED_RANGES with STATUS_BUFFER_OVERFLOW and
OutputCount == 0; an FS_IOC_FIEMAP ioctl on the mount oopses in
cifs_fiemap() with CR2 = fffffffffffffff8. The code path is unchanged
on mainline.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
2f3ebaba13cebd8badfb9aed31c0cf3cc82eb4f4 , < 4a426ca5be7e3dedbe76575b967db04fbf01136f
(git)
Affected: 2f3ebaba13cebd8badfb9aed31c0cf3cc82eb4f4 , < 31f6dbb29fe17fa9595c7e8b19fd92915b03a4ca (git) Affected: 2f3ebaba13cebd8badfb9aed31c0cf3cc82eb4f4 , < f5baa17a0f316c235d61623ac8e8fb32c2b3c0cc (git) |
|
| Linux | Linux |
Affected:
5.2
Unaffected: 0 , < 5.2 (semver) Unaffected: 6.18.61 , ≤ 6.18.* (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2ops.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4a426ca5be7e3dedbe76575b967db04fbf01136f",
"status": "affected",
"version": "2f3ebaba13cebd8badfb9aed31c0cf3cc82eb4f4",
"versionType": "git"
},
{
"lessThan": "31f6dbb29fe17fa9595c7e8b19fd92915b03a4ca",
"status": "affected",
"version": "2f3ebaba13cebd8badfb9aed31c0cf3cc82eb4f4",
"versionType": "git"
},
{
"lessThan": "f5baa17a0f316c235d61623ac8e8fb32c2b3c0cc",
"status": "affected",
"version": "2f3ebaba13cebd8badfb9aed31c0cf3cc82eb4f4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2ops.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.2"
},
{
"lessThan": "5.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.61",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.61",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "5.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: fix fiemap wild read on empty truncated response\n\nsmb3_fiemap() treats -E2BIG from SMB2_ioctl() as a truncated range blob\nand loops for the next chunk. If the server reports\nSTATUS_BUFFER_OVERFLOW with OutputCount == 0, SMB2_ioctl() returns\n-E2BIG with out_data == NULL and out_data_len == 0, and the existing\nlength checks accept the empty result. The loop then evaluates\n\n\tnext = out_data[num - 1].file_offset + ...\n\nwith num == 0, reading 16 bytes before NULL.\n\nReject a truncated range blob that contains no range, so the resume\noffset is never computed from an empty response. Also require the last\nrange in a truncated blob to advance the resume offset without\noverflowing, and to stay within the requested range; a malicious or\nbroken server could otherwise make no progress or underflow len and loop\nforever. Free the previous response buffer before retrying.\n\nReproduced on 6.6.87.2 with a malicious SMB2 server that answers\nFSCTL_QUERY_ALLOCATED_RANGES with STATUS_BUFFER_OVERFLOW and\nOutputCount == 0; an FS_IOC_FIEMAP ioctl on the mount oopses in\ncifs_fiemap() with CR2 = fffffffffffffff8. The code path is unchanged\non mainline."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:45.924Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4a426ca5be7e3dedbe76575b967db04fbf01136f"
},
{
"url": "https://git.kernel.org/stable/c/31f6dbb29fe17fa9595c7e8b19fd92915b03a4ca"
},
{
"url": "https://git.kernel.org/stable/c/f5baa17a0f316c235d61623ac8e8fb32c2b3c0cc"
}
],
"title": "smb: client: fix fiemap wild read on empty truncated response",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99274",
"datePublished": "2026-11-07T14:08:45.924Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:45.924Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99273 (GCVE-0-2026-99273)
Vulnerability from nvd – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
ksmbd: reserve space for the UTF-16 terminator in stream info
Summary
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: reserve space for the UTF-16 terminator in stream info
smb_strtoUTF16() always writes a terminating zero UTF-16 unit after the
converted characters, but get_file_stream_info() budgets only
sizeof(struct smb2_file_stream_info) + streamlen * 2 for a stream entry
and sizeof(struct smb2_file_stream_info) + 7 * 2 for the trailing
"::$DATA" entry. When an entry exactly fills the 448-byte small response
buffer, the terminator is written two bytes past the allocation.
Reserve one extra UTF-16 unit in both budget checks. The terminator is
not part of the wire format, so the reported lengths are unchanged.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 06a751809ebd33e95b05bf733697318a17a4872b
(git)
Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 0e64f89563164719ceb1aa33f2a8bfd6391fa340 (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < a025c4991a7d83edc4dd339e3ea86d8ff6226eca (git) Affected: 0 , < 6.18.61 (semver) Affected: 0 , < 7.3.2 (semver) |
|
| Linux | Linux |
Unaffected:
6.18.61 , ≤ 6.18.*
(semver)
Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/server/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "06a751809ebd33e95b05bf733697318a17a4872b",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "0e64f89563164719ceb1aa33f2a8bfd6391fa340",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "a025c4991a7d83edc4dd339e3ea86d8ff6226eca",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "6.18.61",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "7.3.2",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/server/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.61",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.61",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: reserve space for the UTF-16 terminator in stream info\n\nsmb_strtoUTF16() always writes a terminating zero UTF-16 unit after the\nconverted characters, but get_file_stream_info() budgets only\nsizeof(struct smb2_file_stream_info) + streamlen * 2 for a stream entry\nand sizeof(struct smb2_file_stream_info) + 7 * 2 for the trailing\n\"::$DATA\" entry. When an entry exactly fills the 448-byte small response\nbuffer, the terminator is written two bytes past the allocation.\n\nReserve one extra UTF-16 unit in both budget checks. The terminator is\nnot part of the wire format, so the reported lengths are unchanged."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:45.585Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/06a751809ebd33e95b05bf733697318a17a4872b"
},
{
"url": "https://git.kernel.org/stable/c/0e64f89563164719ceb1aa33f2a8bfd6391fa340"
},
{
"url": "https://git.kernel.org/stable/c/a025c4991a7d83edc4dd339e3ea86d8ff6226eca"
}
],
"title": "ksmbd: reserve space for the UTF-16 terminator in stream info",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99273",
"datePublished": "2026-11-07T14:08:45.585Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:45.585Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99272 (GCVE-0-2026-99272)
Vulnerability from nvd – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
smb: client: validate the data area in SMB2_read()
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: validate the data area in SMB2_read()
SMB2_read() copies le32_to_cpu(rsp->DataLength) bytes from
(char *)rsp + rsp->DataOffset without checking that the range lies
within the response actually received. A READ response with
DataOffset == 0 makes smb2_get_data_area_len() zero the data length, so
smb2_check_message() accepts a frame as short as the fixed response,
while SMB2_read() still uses the server-supplied DataLength, capped only
by CIFS_MAX_MSGSIZE and the caller's length.
A malicious server can answer the synchronous read used by the
mfsymlinks (or SFU) symlink parser with an 81-byte READ response
carrying DataOffset 0 and DataLength 1067, making the client copy 1067
bytes from a 448-byte receive object (KASAN slab-out-of-bounds; up to
16 KiB in the general case).
Clamp a zero (or header-overlapping) DataOffset to read_rsp_size, as
handle_read_data() does for the asynchronous path, and reject the
response unless DataOffset + DataLength fits within rsp_iov.iov_len.
The SMB1 helper was fixed the same way in 5be5bdda5863.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
d8e050398d23ef7c019c96200b80d73f4e5cec0c , < 1ba1937de005e261a8858f45bfef5da7458df94c
(git)
Affected: d8e050398d23ef7c019c96200b80d73f4e5cec0c , < 2ec9cdf469dd32bcf33073aeb30c08e9356e0ca1 (git) |
|
| Linux | Linux |
Affected:
3.7
Unaffected: 0 , < 3.7 (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1ba1937de005e261a8858f45bfef5da7458df94c",
"status": "affected",
"version": "d8e050398d23ef7c019c96200b80d73f4e5cec0c",
"versionType": "git"
},
{
"lessThan": "2ec9cdf469dd32bcf33073aeb30c08e9356e0ca1",
"status": "affected",
"version": "d8e050398d23ef7c019c96200b80d73f4e5cec0c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.7"
},
{
"lessThan": "3.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "3.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: validate the data area in SMB2_read()\n\nSMB2_read() copies le32_to_cpu(rsp-\u003eDataLength) bytes from\n(char *)rsp + rsp-\u003eDataOffset without checking that the range lies\nwithin the response actually received. A READ response with\nDataOffset == 0 makes smb2_get_data_area_len() zero the data length, so\nsmb2_check_message() accepts a frame as short as the fixed response,\nwhile SMB2_read() still uses the server-supplied DataLength, capped only\nby CIFS_MAX_MSGSIZE and the caller\u0027s length.\n\nA malicious server can answer the synchronous read used by the\nmfsymlinks (or SFU) symlink parser with an 81-byte READ response\ncarrying DataOffset 0 and DataLength 1067, making the client copy 1067\nbytes from a 448-byte receive object (KASAN slab-out-of-bounds; up to\n16 KiB in the general case).\n\nClamp a zero (or header-overlapping) DataOffset to read_rsp_size, as\nhandle_read_data() does for the asynchronous path, and reject the\nresponse unless DataOffset + DataLength fits within rsp_iov.iov_len.\nThe SMB1 helper was fixed the same way in 5be5bdda5863."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:45.332Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1ba1937de005e261a8858f45bfef5da7458df94c"
},
{
"url": "https://git.kernel.org/stable/c/2ec9cdf469dd32bcf33073aeb30c08e9356e0ca1"
}
],
"title": "smb: client: validate the data area in SMB2_read()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99272",
"datePublished": "2026-11-07T14:08:45.332Z",
"dateReserved": "2026-09-25T10:25:14.404Z",
"dateUpdated": "2026-11-07T14:08:45.332Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99271 (GCVE-0-2026-99271)
Vulnerability from nvd – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
ALSA: line6: Clear prev_fbuf on capture buffer release
Summary
In the Linux kernel, the following vulnerability has been resolved:
ALSA: line6: Clear prev_fbuf on capture buffer release
A KASAN slab-use-after-free read was reported in submit_audio_out_urb()
when generating an impulse test signal:
BUG: KASAN: slab-use-after-free in create_impulse_test_signal sound/usb/line6/playback.c:76 [inline]
BUG: KASAN: slab-use-after-free in submit_audio_out_urb+0x1848/0x1b20 sound/usb/line6/playback.c:249
Read of size 2 at addr ffff888008d74870 by task syz.2.3214/7785
Allocated by task 11:
kmem_cache_alloc_noprof+0x2f0/0x390 mm/slub.c:4144
line6_buffer_acquire+0x1a1/0x220 sound/usb/line6/pcm.c:158
line6_pcm_acquire+0xb6/0x230 sound/usb/line6/pcm.c:329
line6_startup_work+0x3c/0x50 sound/usb/line6/driver.c:728
Freed by task 7785:
kfree+0xf8/0x390 mm/slub.c:6566
line6_buffer_release sound/usb/line6/pcm.c:176 [inline]
line6_buffer_release+0xa5/0xf0 sound/usb/line6/pcm.c:170
__line6_pcm_release sound/usb/line6/pcm.c:305 [inline]
line6_pcm_release+0x5a/0x80 sound/usb/line6/pcm.c:313
snd_toneport_monitor_put+0x11b/0x190 sound/usb/line6/toneport.c:183
line6pcm->prev_fbuf points into the capture PCM stream buffer
(line6pcm->in.buffer), which is updated during audio_in_callback() to
feed rate synchronization, software monitoring, and impulse test signal
generation on playback side.
When all capture streams are closed, line6_buffer_release() frees
pstr->buffer with kfree(). However, it does not clear line6pcm->prev_fbuf.
If playback is subsequently started (e.g. via impulse test signal
volume control snd_line6_impulse_volume_put()), submit_audio_out_urb()
dereferences the stale pointer line6pcm->prev_fbuf under in.lock,
resulting in a slab-use-after-free read.
Clear prev_fbuf and prev_fsize in line6_buffer_release() when releasing
the capture stream buffer under in.lock, ensuring that no stale buffer
pointer can be accessed by submit_audio_out_urb().
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
63e20df1e5b2ef8d871ecbdb6c038d554ed1ca74 , < 862d9268f40a6e10cef24eb226e738fb69ce8aa7
(git)
Affected: 63e20df1e5b2ef8d871ecbdb6c038d554ed1ca74 , < 22c82f33ff0b68d37041adf1dea5533a5863cd31 (git) Affected: 63e20df1e5b2ef8d871ecbdb6c038d554ed1ca74 , < aa118c8f61d59387961d58ffae831c5259a9f222 (git) |
|
| Linux | Linux |
Affected:
4.0
Unaffected: 0 , < 4.0 (semver) Unaffected: 6.18.61 , ≤ 6.18.* (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"sound/usb/line6/pcm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "862d9268f40a6e10cef24eb226e738fb69ce8aa7",
"status": "affected",
"version": "63e20df1e5b2ef8d871ecbdb6c038d554ed1ca74",
"versionType": "git"
},
{
"lessThan": "22c82f33ff0b68d37041adf1dea5533a5863cd31",
"status": "affected",
"version": "63e20df1e5b2ef8d871ecbdb6c038d554ed1ca74",
"versionType": "git"
},
{
"lessThan": "aa118c8f61d59387961d58ffae831c5259a9f222",
"status": "affected",
"version": "63e20df1e5b2ef8d871ecbdb6c038d554ed1ca74",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"sound/usb/line6/pcm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.0"
},
{
"lessThan": "4.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.61",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.61",
"versionStartIncluding": "4.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "4.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "4.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: line6: Clear prev_fbuf on capture buffer release\n\nA KASAN slab-use-after-free read was reported in submit_audio_out_urb()\nwhen generating an impulse test signal:\n\n BUG: KASAN: slab-use-after-free in create_impulse_test_signal sound/usb/line6/playback.c:76 [inline]\n BUG: KASAN: slab-use-after-free in submit_audio_out_urb+0x1848/0x1b20 sound/usb/line6/playback.c:249\n Read of size 2 at addr ffff888008d74870 by task syz.2.3214/7785\n\n Allocated by task 11:\n kmem_cache_alloc_noprof+0x2f0/0x390 mm/slub.c:4144\n line6_buffer_acquire+0x1a1/0x220 sound/usb/line6/pcm.c:158\n line6_pcm_acquire+0xb6/0x230 sound/usb/line6/pcm.c:329\n line6_startup_work+0x3c/0x50 sound/usb/line6/driver.c:728\n\n Freed by task 7785:\n kfree+0xf8/0x390 mm/slub.c:6566\n line6_buffer_release sound/usb/line6/pcm.c:176 [inline]\n line6_buffer_release+0xa5/0xf0 sound/usb/line6/pcm.c:170\n __line6_pcm_release sound/usb/line6/pcm.c:305 [inline]\n line6_pcm_release+0x5a/0x80 sound/usb/line6/pcm.c:313\n snd_toneport_monitor_put+0x11b/0x190 sound/usb/line6/toneport.c:183\n\nline6pcm-\u003eprev_fbuf points into the capture PCM stream buffer\n(line6pcm-\u003ein.buffer), which is updated during audio_in_callback() to\nfeed rate synchronization, software monitoring, and impulse test signal\ngeneration on playback side.\n\nWhen all capture streams are closed, line6_buffer_release() frees\npstr-\u003ebuffer with kfree(). However, it does not clear line6pcm-\u003eprev_fbuf.\nIf playback is subsequently started (e.g. via impulse test signal\nvolume control snd_line6_impulse_volume_put()), submit_audio_out_urb()\ndereferences the stale pointer line6pcm-\u003eprev_fbuf under in.lock,\nresulting in a slab-use-after-free read.\n\nClear prev_fbuf and prev_fsize in line6_buffer_release() when releasing\nthe capture stream buffer under in.lock, ensuring that no stale buffer\npointer can be accessed by submit_audio_out_urb()."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:45.047Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/862d9268f40a6e10cef24eb226e738fb69ce8aa7"
},
{
"url": "https://git.kernel.org/stable/c/22c82f33ff0b68d37041adf1dea5533a5863cd31"
},
{
"url": "https://git.kernel.org/stable/c/aa118c8f61d59387961d58ffae831c5259a9f222"
}
],
"title": "ALSA: line6: Clear prev_fbuf on capture buffer release",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99271",
"datePublished": "2026-11-07T14:08:45.047Z",
"dateReserved": "2026-09-25T10:25:14.404Z",
"dateUpdated": "2026-11-07T14:08:45.047Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-100082 (GCVE-0-2026-100082)
Vulnerability from nvd – Published: 2026-11-06 18:23 – Updated: 2026-11-06 19:08
VLAI
EPSS
VEX
Title
xen-blkback: Avoid UAF when reading I/O statistics
Summary
In the Linux kernel, the following vulnerability has been resolved:
xen-blkback: Avoid UAF when reading I/O statistics
Reading I/O statistics via sysfs concurrently with tearing down a
frontend device might result in UAF or a NULL dereference, as the
reading of the statistics data is not synchronized with freeing the
data.
Use a rwlock for synchronizing.
This is XSA-528 / CVE-2026-100082
Severity
No CVSS data available.
Assigner
References
9 references
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 253cff0526781e28b1b0f9fdacd74ecdc23d3ab7
(git)
Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 2c9ccbe0ffcff3615c7ad917c49b67571a41f21c (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 58ba056991dbcec8a75e6861cb4479ac947b69e6 (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < fe9ead8c5bdb752e329cecfecbdb5dfca5e9996b (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < b764e17313534794aeb99c901869f213e36a16ef (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < c49934da934cf495faf782aa5d84f413221c9be6 (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < b0378161c28e77e4d0e2eda3c9433ab4394d2a2f (git) Affected: 0 , < 5.10.274 (semver) Affected: 0 , < 5.15.225 (semver) Affected: 0 , < 6.1.192 (semver) Affected: 0 , < 6.6.162 (semver) Affected: 0 , < 6.12.116 (semver) Affected: 0 , < 6.18.62 (semver) Affected: 0 , < 7.3.3 (semver) |
|
| Linux | Linux |
Unaffected:
5.10.274 , ≤ 5.10.*
(semver)
Unaffected: 5.15.225 , ≤ 5.15.* (semver) Unaffected: 6.1.192 , ≤ 6.1.* (semver) Unaffected: 6.6.162 , ≤ 6.6.* (semver) Unaffected: 6.12.116 , ≤ 6.12.* (semver) Unaffected: 6.18.62 , ≤ 6.18.* (semver) Unaffected: 7.3.3 , ≤ 7.3.* (semver) |
{
"containers": {
"adp": [
{
"providerMetadata": {
"dateUpdated": "2026-11-06T19:08:45.432Z",
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE"
},
"references": [
{
"url": "http://www.openwall.com/lists/oss-security/2026/11/06/11"
},
{
"url": "http://xenbits.xen.org/xsa/advisory-528.html"
}
],
"title": "CVE Program Container"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/block/xen-blkback/common.h",
"drivers/block/xen-blkback/xenbus.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "253cff0526781e28b1b0f9fdacd74ecdc23d3ab7",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "2c9ccbe0ffcff3615c7ad917c49b67571a41f21c",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "58ba056991dbcec8a75e6861cb4479ac947b69e6",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "fe9ead8c5bdb752e329cecfecbdb5dfca5e9996b",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "b764e17313534794aeb99c901869f213e36a16ef",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "c49934da934cf495faf782aa5d84f413221c9be6",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "b0378161c28e77e4d0e2eda3c9433ab4394d2a2f",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "5.10.274",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "5.15.225",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "6.1.192",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "6.6.162",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "6.12.116",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "6.18.62",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "7.3.3",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/block/xen-blkback/common.h",
"drivers/block/xen-blkback/xenbus.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.274",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.225",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.192",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.162",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.116",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.62",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.3",
"versionType": "semver"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.274",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.225",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.192",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.162",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.116",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.62",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxen-blkback: Avoid UAF when reading I/O statistics\n\nReading I/O statistics via sysfs concurrently with tearing down a\nfrontend device might result in UAF or a NULL dereference, as the\nreading of the statistics data is not synchronized with freeing the\ndata.\n\nUse a rwlock for synchronizing.\n\nThis is XSA-528 / CVE-2026-100082"
}
],
"providerMetadata": {
"dateUpdated": "2026-11-06T18:23:02.627Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/253cff0526781e28b1b0f9fdacd74ecdc23d3ab7"
},
{
"url": "https://git.kernel.org/stable/c/2c9ccbe0ffcff3615c7ad917c49b67571a41f21c"
},
{
"url": "https://git.kernel.org/stable/c/58ba056991dbcec8a75e6861cb4479ac947b69e6"
},
{
"url": "https://git.kernel.org/stable/c/fe9ead8c5bdb752e329cecfecbdb5dfca5e9996b"
},
{
"url": "https://git.kernel.org/stable/c/b764e17313534794aeb99c901869f213e36a16ef"
},
{
"url": "https://git.kernel.org/stable/c/c49934da934cf495faf782aa5d84f413221c9be6"
},
{
"url": "https://git.kernel.org/stable/c/b0378161c28e77e4d0e2eda3c9433ab4394d2a2f"
}
],
"title": "xen-blkback: Avoid UAF when reading I/O statistics",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-100082",
"datePublished": "2026-11-06T18:23:02.627Z",
"dateReserved": "2026-09-25T10:25:14.456Z",
"dateUpdated": "2026-11-06T19:08:45.432Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-100081 (GCVE-0-2026-100081)
Vulnerability from nvd – Published: 2026-11-06 18:23 – Updated: 2026-11-06 19:08
VLAI
EPSS
VEX
Title
xen-netback: defer xenvif_mcast_addr_list_free()
Summary
In the Linux kernel, the following vulnerability has been resolved:
xen-netback: defer xenvif_mcast_addr_list_free()
In order for the function to legitimately avoid locking/RCU, it needs to
run after all TX/RX processing has finished/stopped: Lookups happen from
xenvif_start_xmit(), while adds/removes happen from xenvif_tx_action()
(called out of xenvif_poll()).
Move the call out of xenvif_disconnect_data() (the call to the function
from connect()'s error path doesn't require any cleaning up there), and
put it past the synchronization point in backend_disconnect().
This is XSA-527 / CVE-2026-100081.
Severity
No CVSS data available.
Assigner
References
9 references
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
b17075d5c1988b83f840d272c795ac17d57ce804 , < 96e05a8ce243e2207704e2e7a6e7d1172730f515
(git)
Affected: b17075d5c1988b83f840d272c795ac17d57ce804 , < 0e786123e46d08d2247ce93a5435e45ed9f4c5d1 (git) Affected: b17075d5c1988b83f840d272c795ac17d57ce804 , < 990d123d9eaa3ac6c979eed245658676d65ce0db (git) Affected: b17075d5c1988b83f840d272c795ac17d57ce804 , < 0d515c409033c8e2a645a781be3ca76ab825fc8c (git) Affected: b17075d5c1988b83f840d272c795ac17d57ce804 , < a6bb2f1fa62c56279bdcdadce28d1310c5e12b62 (git) Affected: b17075d5c1988b83f840d272c795ac17d57ce804 , < 34f0f63dc6dc11895a17bb5672451b6b11622c99 (git) Affected: b17075d5c1988b83f840d272c795ac17d57ce804 , < fb38fc58acb26d74fe8f7b19621fafaae3c040ff (git) |
|
| Linux | Linux |
Affected:
4.11
Unaffected: 0 , < 4.11 (semver) Unaffected: 5.10.274 , ≤ 5.10.* (semver) Unaffected: 5.15.225 , ≤ 5.15.* (semver) Unaffected: 6.1.192 , ≤ 6.1.* (semver) Unaffected: 6.6.162 , ≤ 6.6.* (semver) Unaffected: 6.12.116 , ≤ 6.12.* (semver) Unaffected: 6.18.62 , ≤ 6.18.* (semver) Unaffected: 7.3.3 , ≤ 7.3.* (semver) |
{
"containers": {
"adp": [
{
"providerMetadata": {
"dateUpdated": "2026-11-06T19:08:43.050Z",
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE"
},
"references": [
{
"url": "http://www.openwall.com/lists/oss-security/2026/11/06/10"
},
{
"url": "http://xenbits.xen.org/xsa/advisory-527.html"
}
],
"title": "CVE Program Container"
}
],
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/xen-netback/interface.c",
"drivers/net/xen-netback/xenbus.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "96e05a8ce243e2207704e2e7a6e7d1172730f515",
"status": "affected",
"version": "b17075d5c1988b83f840d272c795ac17d57ce804",
"versionType": "git"
},
{
"lessThan": "0e786123e46d08d2247ce93a5435e45ed9f4c5d1",
"status": "affected",
"version": "b17075d5c1988b83f840d272c795ac17d57ce804",
"versionType": "git"
},
{
"lessThan": "990d123d9eaa3ac6c979eed245658676d65ce0db",
"status": "affected",
"version": "b17075d5c1988b83f840d272c795ac17d57ce804",
"versionType": "git"
},
{
"lessThan": "0d515c409033c8e2a645a781be3ca76ab825fc8c",
"status": "affected",
"version": "b17075d5c1988b83f840d272c795ac17d57ce804",
"versionType": "git"
},
{
"lessThan": "a6bb2f1fa62c56279bdcdadce28d1310c5e12b62",
"status": "affected",
"version": "b17075d5c1988b83f840d272c795ac17d57ce804",
"versionType": "git"
},
{
"lessThan": "34f0f63dc6dc11895a17bb5672451b6b11622c99",
"status": "affected",
"version": "b17075d5c1988b83f840d272c795ac17d57ce804",
"versionType": "git"
},
{
"lessThan": "fb38fc58acb26d74fe8f7b19621fafaae3c040ff",
"status": "affected",
"version": "b17075d5c1988b83f840d272c795ac17d57ce804",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/xen-netback/interface.c",
"drivers/net/xen-netback/xenbus.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.11"
},
{
"lessThan": "4.11",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.274",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.225",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.192",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.162",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.116",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.62",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.3",
"versionType": "semver"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.10.274",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.225",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.192",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.162",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.116",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.62",
"versionStartIncluding": "4.11",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.3",
"versionStartIncluding": "4.11",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nxen-netback: defer xenvif_mcast_addr_list_free()\n\nIn order for the function to legitimately avoid locking/RCU, it needs to\nrun after all TX/RX processing has finished/stopped: Lookups happen from\nxenvif_start_xmit(), while adds/removes happen from xenvif_tx_action()\n(called out of xenvif_poll()).\n\nMove the call out of xenvif_disconnect_data() (the call to the function\nfrom connect()\u0027s error path doesn\u0027t require any cleaning up there), and\nput it past the synchronization point in backend_disconnect().\n\nThis is XSA-527 / CVE-2026-100081."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-06T18:23:02.185Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/96e05a8ce243e2207704e2e7a6e7d1172730f515"
},
{
"url": "https://git.kernel.org/stable/c/0e786123e46d08d2247ce93a5435e45ed9f4c5d1"
},
{
"url": "https://git.kernel.org/stable/c/990d123d9eaa3ac6c979eed245658676d65ce0db"
},
{
"url": "https://git.kernel.org/stable/c/0d515c409033c8e2a645a781be3ca76ab825fc8c"
},
{
"url": "https://git.kernel.org/stable/c/a6bb2f1fa62c56279bdcdadce28d1310c5e12b62"
},
{
"url": "https://git.kernel.org/stable/c/34f0f63dc6dc11895a17bb5672451b6b11622c99"
},
{
"url": "https://git.kernel.org/stable/c/fb38fc58acb26d74fe8f7b19621fafaae3c040ff"
}
],
"title": "xen-netback: defer xenvif_mcast_addr_list_free()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-100081",
"datePublished": "2026-11-06T18:23:02.185Z",
"dateReserved": "2026-09-25T10:25:14.456Z",
"dateUpdated": "2026-11-06T19:08:43.050Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99284 (GCVE-0-2026-99284)
Vulnerability from cvelistv5 – Published: 2026-11-07 20:40 – Updated: 2026-11-07 20:40
VLAI
EPSS
VEX
Title
net: skbuff: propagate shared-frag marker in skb_zerocopy()
Summary
In the Linux kernel, the following vulnerability has been resolved:
net: skbuff: propagate shared-frag marker in skb_zerocopy()
skb_zerocopy() moves frag descriptors from @from into @to and takes a
reference on each frag, but it does not copy skb_shinfo(from)->flags into
skb_shinfo(to)->flags. A destination skb holding the same page-cache
backed frags as the source therefore reports skb_has_shared_frag() as
false.
That breaks the invariant relied on by later in-place writers. ESP input
checks skb_has_shared_frag() before deciding whether an uncloned
nonlinear skb can skip skb_cow_data(); with the marker lost, an skb that
skb_zerocopy() built for nfnetlink_queue or for an openvswitch upcall is
decrypted in place, letting an unprivileged user write into the page
cache of a root-owned read-only file.
Propagate SKBFL_SHARED_FRAG when frag descriptors are copied, as done for
the other frag-transfer helpers.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
af2806f8f90a150160be898cd85332459c83c5cb , < 1c623e3cbf43f12dd4a72712079bfa247a9b8ba3
(git)
Affected: af2806f8f90a150160be898cd85332459c83c5cb , < d7d6ff98d5d1b400f02211f962ac32cc0020aeab (git) Affected: af2806f8f90a150160be898cd85332459c83c5cb , < 1a9c180cd8435917b7516edfb1c9148032c28773 (git) Affected: af2806f8f90a150160be898cd85332459c83c5cb , < 79dc34beb1fdb3da79753e51e15c68591a2561fe (git) |
|
| Linux | Linux |
Affected:
3.14
Unaffected: 0 , < 3.14 (semver) Unaffected: 6.18.61 , ≤ 6.18.* (semver) Unaffected: 7.2.15 , ≤ 7.2.* (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/core/skbuff.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1c623e3cbf43f12dd4a72712079bfa247a9b8ba3",
"status": "affected",
"version": "af2806f8f90a150160be898cd85332459c83c5cb",
"versionType": "git"
},
{
"lessThan": "d7d6ff98d5d1b400f02211f962ac32cc0020aeab",
"status": "affected",
"version": "af2806f8f90a150160be898cd85332459c83c5cb",
"versionType": "git"
},
{
"lessThan": "1a9c180cd8435917b7516edfb1c9148032c28773",
"status": "affected",
"version": "af2806f8f90a150160be898cd85332459c83c5cb",
"versionType": "git"
},
{
"lessThan": "79dc34beb1fdb3da79753e51e15c68591a2561fe",
"status": "affected",
"version": "af2806f8f90a150160be898cd85332459c83c5cb",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/core/skbuff.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.14"
},
{
"lessThan": "3.14",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.61",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"version": "7.2.15",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.61",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.15",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "3.14",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "3.14",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: skbuff: propagate shared-frag marker in skb_zerocopy()\n\nskb_zerocopy() moves frag descriptors from @from into @to and takes a\nreference on each frag, but it does not copy skb_shinfo(from)-\u003eflags into\nskb_shinfo(to)-\u003eflags. A destination skb holding the same page-cache\nbacked frags as the source therefore reports skb_has_shared_frag() as\nfalse.\n\nThat breaks the invariant relied on by later in-place writers. ESP input\nchecks skb_has_shared_frag() before deciding whether an uncloned\nnonlinear skb can skip skb_cow_data(); with the marker lost, an skb that\nskb_zerocopy() built for nfnetlink_queue or for an openvswitch upcall is\ndecrypted in place, letting an unprivileged user write into the page\ncache of a root-owned read-only file.\n\nPropagate SKBFL_SHARED_FRAG when frag descriptors are copied, as done for\nthe other frag-transfer helpers."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T20:40:33.661Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1c623e3cbf43f12dd4a72712079bfa247a9b8ba3"
},
{
"url": "https://git.kernel.org/stable/c/d7d6ff98d5d1b400f02211f962ac32cc0020aeab"
},
{
"url": "https://git.kernel.org/stable/c/1a9c180cd8435917b7516edfb1c9148032c28773"
},
{
"url": "https://git.kernel.org/stable/c/79dc34beb1fdb3da79753e51e15c68591a2561fe"
}
],
"title": "net: skbuff: propagate shared-frag marker in skb_zerocopy()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99284",
"datePublished": "2026-11-07T20:40:33.661Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T20:40:33.661Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99283 (GCVE-0-2026-99283)
Vulnerability from cvelistv5 – Published: 2026-11-07 20:14 – Updated: 2026-11-07 20:14
VLAI
EPSS
VEX
Title
netfilter: conntrack: tcp: use UNACK timeout for non-closing RST packets
Summary
In the Linux kernel, the following vulnerability has been resolved:
netfilter: conntrack: tcp: use UNACK timeout for non-closing RST packets
Commit be0502a3f2e9 ("netfilter: conntrack: tcp: only close if RST
matches exact sequence") keeps an established conntrack entry in
ESTABLISHED when an in-window RST does not match the expected sequence
number exactly, so the endpoint can validate the RST with a challenge
ACK.
The timeout selection nevertheless uses the CLOSE timeout for every RST
packet. The bug is that timeout selection is based on the packet type,
not on the state transition result: even when RST validation keeps
new_state in ESTABLISHED, the timeout is still forced to
TCP_CONNTRACK_CLOSE.
Linux TCP independently rate limits challenge ACKs per socket. A second
non-exact RST can therefore arrive after the first challenge ACK has
restored the timeout but before the rate limit expires. The second RST
lowers the timeout to 10 seconds again while the endpoint suppresses the
second challenge ACK, allowing the conntrack entry to expire while both
TCP endpoints remain established.
Using the ESTABLISHED timeout for such RSTs would avoid this short
expiration window, but it could also retain stale entries for the
five-day default because conntrack cannot reliably match the endpoint's
exact TCP state.
Use the UNACK timeout for RST packets that leave the conntrack entry in
TCP_CONNTRACK_ESTABLISHED. Exact-match RSTs and accepted RST packet
trains still fall through to timeouts[new_state], which preserves the
CLOSE timeout when conntrack accepts the RST as closing the flow.
This avoids the aggressive 10-second expiration window for non-exact
RSTs while preserving the short timeout for RSTs that conntrack accepts
as closing the flow.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 0c6d33329960b2d884a399196c8403643d8a9de6
(git)
Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < bf80e6802273a900311b44e47c9b1a59c6d2473c (git) Affected: 0 , < 6.18.61 (semver) |
|
| Linux | Linux |
Unaffected:
6.18.61 , ≤ 6.18.*
(semver)
Unaffected: 7.3 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/netfilter/nf_conntrack_proto_tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "0c6d33329960b2d884a399196c8403643d8a9de6",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "bf80e6802273a900311b44e47c9b1a59c6d2473c",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "6.18.61",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/netfilter/nf_conntrack_proto_tcp.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.61",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.61",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnetfilter: conntrack: tcp: use UNACK timeout for non-closing RST packets\n\nCommit be0502a3f2e9 (\"netfilter: conntrack: tcp: only close if RST\nmatches exact sequence\") keeps an established conntrack entry in\nESTABLISHED when an in-window RST does not match the expected sequence\nnumber exactly, so the endpoint can validate the RST with a challenge\nACK.\n\nThe timeout selection nevertheless uses the CLOSE timeout for every RST\npacket. The bug is that timeout selection is based on the packet type,\nnot on the state transition result: even when RST validation keeps\nnew_state in ESTABLISHED, the timeout is still forced to\nTCP_CONNTRACK_CLOSE.\n\nLinux TCP independently rate limits challenge ACKs per socket. A second\nnon-exact RST can therefore arrive after the first challenge ACK has\nrestored the timeout but before the rate limit expires. The second RST\nlowers the timeout to 10 seconds again while the endpoint suppresses the\nsecond challenge ACK, allowing the conntrack entry to expire while both\nTCP endpoints remain established.\n\nUsing the ESTABLISHED timeout for such RSTs would avoid this short\nexpiration window, but it could also retain stale entries for the\nfive-day default because conntrack cannot reliably match the endpoint\u0027s\nexact TCP state.\n\nUse the UNACK timeout for RST packets that leave the conntrack entry in\nTCP_CONNTRACK_ESTABLISHED. Exact-match RSTs and accepted RST packet\ntrains still fall through to timeouts[new_state], which preserves the\nCLOSE timeout when conntrack accepts the RST as closing the flow.\n\nThis avoids the aggressive 10-second expiration window for non-exact\nRSTs while preserving the short timeout for RSTs that conntrack accepts\nas closing the flow."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T20:14:11.433Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/0c6d33329960b2d884a399196c8403643d8a9de6"
},
{
"url": "https://git.kernel.org/stable/c/bf80e6802273a900311b44e47c9b1a59c6d2473c"
}
],
"title": "netfilter: conntrack: tcp: use UNACK timeout for non-closing RST packets",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99283",
"datePublished": "2026-11-07T20:14:11.433Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T20:14:11.433Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99282 (GCVE-0-2026-99282)
Vulnerability from cvelistv5 – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
net/sched: sch_teql: fix use-after-free on lower qdisc drop
Summary
In the Linux kernel, the following vulnerability has been resolved:
net/sched: sch_teql: fix use-after-free on lower qdisc drop
The issue: teql_master_xmit() tests the slave's ndo_start_xmit() return
value against NETDEV_TX_OK alone. A slave that consumes the skb but
returns an error code (rc < NET_XMIT_MASK, e.g. NET_XMIT_DROP) is treated
as if the skb were still owned, so the loop restores skb->dev and calls
__skb_pull() on it. A VLAN slave returns the result of dev_queue_xmit()
from its ndo_start_xmit() (propagated since cbbef5e18307), and when the
lower qdisc drops the packet that value is NET_XMIT_DROP after the skb
has been freed, giving a use-after-free in teql_master_xmit().
The Fix: test for consumption with dev_xmit_complete(), which accepts
NETDEV_TX_OK and every rc < NET_XMIT_MASK, matching other callers that
need to distinguish consumed results from busy. Only NETDEV_TX_OK keeps
the packet counted in tx_packets/tx_bytes and advances the slave; a
consumed result that is neither a success nor NET_XMIT_CN ends the
attempt and is charged to tx_dropped, so lower-qdisc drops are no longer
reported as good transmits. NET_XMIT_CN is counted like success because
it can accompany acceptance of the current packet: pfifo_head_drop drops
the old head, enqueues the current skb and returns NET_XMIT_CN.
Conditions to recreate the bug:
With CONFIG_NET_SCH_TEQL,
CONFIG_VLAN_8021Q and CONFIG_DUMMY enabled, add lkrdummy0 (dummy) and
lkrvlan0 (VLAN id 37 on lkrdummy0); set a pfifo limit 0 root on lkrdummy0
and a teql0 root on lkrvlan0; bring teql0 up with an address and send one
UDP packet to it. The VLAN xmit returns NET_XMIT_DROP from the lower
qdisc while holding a freed skb.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
572a9d7b6fc7f20f573664063324c086be310c42 , < fc55d92ae6a4b2e7d062cad6d4c67f6b061d9cde
(git)
Affected: 572a9d7b6fc7f20f573664063324c086be310c42 , < 2702ae318630787c640ec0d0403ffd9d95c43e9e (git) Affected: 572a9d7b6fc7f20f573664063324c086be310c42 , < 782d6bb8f9b8e9d8591181662222bf74cd3ecf79 (git) |
|
| Linux | Linux |
Affected:
2.6.33
Unaffected: 0 , < 2.6.33 (semver) Unaffected: 6.18.61 , ≤ 6.18.* (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"net/sched/sch_teql.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "fc55d92ae6a4b2e7d062cad6d4c67f6b061d9cde",
"status": "affected",
"version": "572a9d7b6fc7f20f573664063324c086be310c42",
"versionType": "git"
},
{
"lessThan": "2702ae318630787c640ec0d0403ffd9d95c43e9e",
"status": "affected",
"version": "572a9d7b6fc7f20f573664063324c086be310c42",
"versionType": "git"
},
{
"lessThan": "782d6bb8f9b8e9d8591181662222bf74cd3ecf79",
"status": "affected",
"version": "572a9d7b6fc7f20f573664063324c086be310c42",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"net/sched/sch_teql.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.33"
},
{
"lessThan": "2.6.33",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.61",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.61",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "2.6.33",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "2.6.33",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: sch_teql: fix use-after-free on lower qdisc drop\n\nThe issue: teql_master_xmit() tests the slave\u0027s ndo_start_xmit() return\nvalue against NETDEV_TX_OK alone. A slave that consumes the skb but\nreturns an error code (rc \u003c NET_XMIT_MASK, e.g. NET_XMIT_DROP) is treated\nas if the skb were still owned, so the loop restores skb-\u003edev and calls\n__skb_pull() on it. A VLAN slave returns the result of dev_queue_xmit()\nfrom its ndo_start_xmit() (propagated since cbbef5e18307), and when the\nlower qdisc drops the packet that value is NET_XMIT_DROP after the skb\nhas been freed, giving a use-after-free in teql_master_xmit().\n\nThe Fix: test for consumption with dev_xmit_complete(), which accepts\nNETDEV_TX_OK and every rc \u003c NET_XMIT_MASK, matching other callers that\nneed to distinguish consumed results from busy. Only NETDEV_TX_OK keeps\nthe packet counted in tx_packets/tx_bytes and advances the slave; a\nconsumed result that is neither a success nor NET_XMIT_CN ends the\nattempt and is charged to tx_dropped, so lower-qdisc drops are no longer\nreported as good transmits. NET_XMIT_CN is counted like success because\nit can accompany acceptance of the current packet: pfifo_head_drop drops\nthe old head, enqueues the current skb and returns NET_XMIT_CN.\n\nConditions to recreate the bug:\nWith CONFIG_NET_SCH_TEQL,\nCONFIG_VLAN_8021Q and CONFIG_DUMMY enabled, add lkrdummy0 (dummy) and\nlkrvlan0 (VLAN id 37 on lkrdummy0); set a pfifo limit 0 root on lkrdummy0\nand a teql0 root on lkrvlan0; bring teql0 up with an address and send one\nUDP packet to it. The VLAN xmit returns NET_XMIT_DROP from the lower\nqdisc while holding a freed skb."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:47.978Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/fc55d92ae6a4b2e7d062cad6d4c67f6b061d9cde"
},
{
"url": "https://git.kernel.org/stable/c/2702ae318630787c640ec0d0403ffd9d95c43e9e"
},
{
"url": "https://git.kernel.org/stable/c/782d6bb8f9b8e9d8591181662222bf74cd3ecf79"
}
],
"title": "net/sched: sch_teql: fix use-after-free on lower qdisc drop",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99282",
"datePublished": "2026-11-07T14:08:47.978Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:47.978Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99281 (GCVE-0-2026-99281)
Vulnerability from cvelistv5 – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
tun: Require CAP_NET_ADMIN to attach to an ownerless device
Summary
In the Linux kernel, the following vulnerability has been resolved:
tun: Require CAP_NET_ADMIN to attach to an ownerless device
Twenty years ago I made creating a tuntap device require CAP_NET_ADMIN
in commit ca6bb5d7ab22 ("[NET]: Require CAP_NET_ADMIN to create tuntap
devices.")
The idea was to allow the permissions on /dev/net/tun to be relaxed to
0666 and thus allow owners of tun devices assigned with TUNSETOWNER to
actually open it and get at their devices.
What we missed at the time was that persistent devices with *no* owner
were already essentially world-consumable, and anyone who could open
the device node could also attach to those.
Even then, using persistent devices with no explicitly set owner — on
the (false) presumption that CAP_NET_ADMIN would be required to open
them — wasn't an egregious userspace bug. There are cases where it does
make sense to separate the creation/configuration of the netdevice, from
the process which shovels packets into it.
Since then, TUNSETGROUP was added a year later in commit 8c644623fe7e
("[NET]: Allow group ownership of TUN/TAP devices."). Its commit message
noted that if both uid and gid are set, both have to match (in itself a
bizarre choice) — but still not that with *neither* set, no permission
at all was required.
Then in 2012 commit c8d68e6be1c3 ("tuntap: multiqueue support") allowed
new queues to be attached to a device from the moment of its creation,
with no way for userspace to close the race between creation and a
subsequent TUNSET{OWNER,GROUP}.
In 2024, commit 3ca459eaba1bf ("tun: fix group permission check") tried
to fix things to be saner: only require the user *or* the group to
match, in line with standard POSIX permissions, and require
CAP_NET_ADMIN if neither the user nor group authorised the access
(although it put the CAP_NET_ADMIN check first, and would wrongly have
reported the capability as having been used even when it was not).
That fix was reverted in commit a70c7b3cbc06 ("tun: revert fix group
permission check") due to allegedly causing a regression in an selinux
test suite which *expected* the attachment to succeed when authorised
by none of user, group, nor CAP_NET_ADMIN:
https://lore.kernel.org/netdev/CAFqZXNtkCBT4f+PwyVRmQGoT3p1eVa01fCG_aNtpt6dakXncUg@mail.gmail.com/
We should not break UAPI. But we don't have to consider an selinux test
case which deliberately exercises a security flaw to be UAPI worth
preserving either. To which end, I have fixed it in selinux-testsuite
commit b2f894f0016b ("tests/tun_tap: set an owner on the device for the
relabel tests").
So: fix the lack of CAP_NET_ADMIN check on devices which *haven't* been
assigned an owner or group, while leaving the weird tun ownership model
as it was (user *and* group have to match, if both are set). If someone
still wants to fix the latter (which wasn't actually the reason the
previous attempt was reverted), they can do it under separate cover.
Permit attaching to an existing device only if an owner and/or group was
set and the caller matches all that were set, or if the caller has
CAP_NET_ADMIN. The only behavioural change is that a device with no
owner or group now requires CAP_NET_ADMIN to attach — precisely the
loophole we want to close.
And put the CAP_NET_ADMIN check in the right place this time.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
ca6bb5d7ab22ac79f608fe6cbc6b12de6a5a19f0 , < 2f92c0286cfd58bff9d6d54c01a771073d5eb775
(git)
Affected: ca6bb5d7ab22ac79f608fe6cbc6b12de6a5a19f0 , < e53d1cf05da8ea58a5743b7ce5894fb51b0b9700 (git) Affected: ca6bb5d7ab22ac79f608fe6cbc6b12de6a5a19f0 , < ffdf678dd16610e3f006dac904bd37c09684673c (git) |
|
| Linux | Linux |
Affected:
2.6.18
Unaffected: 0 , < 2.6.18 (semver) Unaffected: 6.18.61 , ≤ 6.18.* (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/tun.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "2f92c0286cfd58bff9d6d54c01a771073d5eb775",
"status": "affected",
"version": "ca6bb5d7ab22ac79f608fe6cbc6b12de6a5a19f0",
"versionType": "git"
},
{
"lessThan": "e53d1cf05da8ea58a5743b7ce5894fb51b0b9700",
"status": "affected",
"version": "ca6bb5d7ab22ac79f608fe6cbc6b12de6a5a19f0",
"versionType": "git"
},
{
"lessThan": "ffdf678dd16610e3f006dac904bd37c09684673c",
"status": "affected",
"version": "ca6bb5d7ab22ac79f608fe6cbc6b12de6a5a19f0",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/tun.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "2.6.18"
},
{
"lessThan": "2.6.18",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.61",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.61",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "2.6.18",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "2.6.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ntun: Require CAP_NET_ADMIN to attach to an ownerless device\n\nTwenty years ago I made creating a tuntap device require CAP_NET_ADMIN\nin commit ca6bb5d7ab22 (\"[NET]: Require CAP_NET_ADMIN to create tuntap\ndevices.\")\n\nThe idea was to allow the permissions on /dev/net/tun to be relaxed to\n0666 and thus allow owners of tun devices assigned with TUNSETOWNER to\nactually open it and get at their devices.\n\nWhat we missed at the time was that persistent devices with *no* owner\nwere already essentially world-consumable, and anyone who could open\nthe device node could also attach to those.\n\nEven then, using persistent devices with no explicitly set owner \u2014 on\nthe (false) presumption that CAP_NET_ADMIN would be required to open\nthem \u2014 wasn\u0027t an egregious userspace bug. There are cases where it does\nmake sense to separate the creation/configuration of the netdevice, from\nthe process which shovels packets into it.\n\nSince then, TUNSETGROUP was added a year later in commit 8c644623fe7e\n(\"[NET]: Allow group ownership of TUN/TAP devices.\"). Its commit message\nnoted that if both uid and gid are set, both have to match (in itself a\nbizarre choice) \u2014 but still not that with *neither* set, no permission\nat all was required.\n\nThen in 2012 commit c8d68e6be1c3 (\"tuntap: multiqueue support\") allowed\nnew queues to be attached to a device from the moment of its creation,\nwith no way for userspace to close the race between creation and a\nsubsequent TUNSET{OWNER,GROUP}.\n\nIn 2024, commit 3ca459eaba1bf (\"tun: fix group permission check\") tried\nto fix things to be saner: only require the user *or* the group to\nmatch, in line with standard POSIX permissions, and require\nCAP_NET_ADMIN if neither the user nor group authorised the access\n(although it put the CAP_NET_ADMIN check first, and would wrongly have\nreported the capability as having been used even when it was not).\n\nThat fix was reverted in commit a70c7b3cbc06 (\"tun: revert fix group\npermission check\") due to allegedly causing a regression in an selinux\ntest suite which *expected* the attachment to succeed when authorised\nby none of user, group, nor CAP_NET_ADMIN:\nhttps://lore.kernel.org/netdev/CAFqZXNtkCBT4f+PwyVRmQGoT3p1eVa01fCG_aNtpt6dakXncUg@mail.gmail.com/\n\nWe should not break UAPI. But we don\u0027t have to consider an selinux test\ncase which deliberately exercises a security flaw to be UAPI worth\npreserving either. To which end, I have fixed it in selinux-testsuite\ncommit b2f894f0016b (\"tests/tun_tap: set an owner on the device for the\nrelabel tests\").\n\nSo: fix the lack of CAP_NET_ADMIN check on devices which *haven\u0027t* been\nassigned an owner or group, while leaving the weird tun ownership model\nas it was (user *and* group have to match, if both are set). If someone\nstill wants to fix the latter (which wasn\u0027t actually the reason the\nprevious attempt was reverted), they can do it under separate cover.\n\nPermit attaching to an existing device only if an owner and/or group was\nset and the caller matches all that were set, or if the caller has\nCAP_NET_ADMIN. The only behavioural change is that a device with no\nowner or group now requires CAP_NET_ADMIN to attach \u2014 precisely the\nloophole we want to close.\n\nAnd put the CAP_NET_ADMIN check in the right place this time."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:47.735Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/2f92c0286cfd58bff9d6d54c01a771073d5eb775"
},
{
"url": "https://git.kernel.org/stable/c/e53d1cf05da8ea58a5743b7ce5894fb51b0b9700"
},
{
"url": "https://git.kernel.org/stable/c/ffdf678dd16610e3f006dac904bd37c09684673c"
}
],
"title": "tun: Require CAP_NET_ADMIN to attach to an ownerless device",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99281",
"datePublished": "2026-11-07T14:08:47.735Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:47.735Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99280 (GCVE-0-2026-99280)
Vulnerability from cvelistv5 – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
ksmbd: drain session procfs readers before dropping table references
Summary
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: drain session procfs readers before dropping table references
Session registration failure and connection cleanup can drop the table
reference while the per-session procfs entry is still accessible. If a
reader holds the last remaining reference, its final put calls
proc_remove() from its own callback and waits for that callback to
finish.
Remove the procfs entry before dropping the table reference in the
registration failure path. Queue sessions removed during connection
cleanup and drain their procfs readers after releasing both session
locks, then return their table references. Keep the global hash node
unhashed while a session is queued so a concurrent unregister cannot
drop the reference again.
Previous-session replacement also destroys the file table before the
session is finally freed. Detach the idr under the lock used by procfs
file counters, and report zero files after it has been detached. This
prevents a reader from accessing the idr during or after its
destruction.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
d7fd1f98607f2cd358e583f9548bdf0173090a86 , < 6789f0983f8e85ce3a5ed8c50fc05d613ead9c2c
(git)
Affected: d7fd1f98607f2cd358e583f9548bdf0173090a86 , < 1c087cf7d5386c708d8984b263280b42b3daada0 (git) Affected: c99ea7855124ca1428a1e59c2b4590aaef34eacf (git) Affected: 7.2.8 , < 7.3 (semver) |
|
| Linux | Linux |
Affected:
7.3
Unaffected: 0 , < 7.3 (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/server/mgmt/user_session.c",
"fs/smb/server/vfs_cache.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "6789f0983f8e85ce3a5ed8c50fc05d613ead9c2c",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"lessThan": "1c087cf7d5386c708d8984b263280b42b3daada0",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"status": "affected",
"version": "c99ea7855124ca1428a1e59c2b4590aaef34eacf",
"versionType": "git"
},
{
"lessThan": "7.3",
"status": "affected",
"version": "7.2.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/server/mgmt/user_session.c",
"fs/smb/server/vfs_cache.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "7.3"
},
{
"lessThan": "7.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.2.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: drain session procfs readers before dropping table references\n\nSession registration failure and connection cleanup can drop the table\nreference while the per-session procfs entry is still accessible. If a\nreader holds the last remaining reference, its final put calls\nproc_remove() from its own callback and waits for that callback to\nfinish.\n\nRemove the procfs entry before dropping the table reference in the\nregistration failure path. Queue sessions removed during connection\ncleanup and drain their procfs readers after releasing both session\nlocks, then return their table references. Keep the global hash node\nunhashed while a session is queued so a concurrent unregister cannot\ndrop the reference again.\n\nPrevious-session replacement also destroys the file table before the\nsession is finally freed. Detach the idr under the lock used by procfs\nfile counters, and report zero files after it has been detached. This\nprevents a reader from accessing the idr during or after its\ndestruction."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:47.488Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/6789f0983f8e85ce3a5ed8c50fc05d613ead9c2c"
},
{
"url": "https://git.kernel.org/stable/c/1c087cf7d5386c708d8984b263280b42b3daada0"
}
],
"title": "ksmbd: drain session procfs readers before dropping table references",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99280",
"datePublished": "2026-11-07T14:08:47.488Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:47.488Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99279 (GCVE-0-2026-99279)
Vulnerability from cvelistv5 – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
ksmbd: reclaim ended sessions on logoff and expiration
Summary
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: reclaim ended sessions on logoff and expiration
LOGOFF and previous-session replacement leave sessions Expired with a
zero credential expiry. Ended sessions can retain their memory and
connection slots when no further setup arrives on the owning connection.
Unpublish a logged-off session while the request reference keeps its
response signing and encryption keys alive. Remove its procfs entry
before dropping the table reference so a reader cannot remove its own
entry on the last put. Clear proc_entry after removal to avoid removing
it twice.
Reclaim ended sessions from the global table in the existing expiration
worker before it acquires conn_list_lock. Only select Expired sessions
with zero credential expiry and no references beyond the table
reference. Keep sessions whose Kerberos credentials expired available
for reauthentication.
Unlink the session from its setup connection and all channel
connections, so SMB2 sessions and sessions with only secondary SMB3
channels are covered. The session already holds connection references,
and sessions_table_lock prevents concurrent channel removal. Queue
sessions on a separate disposal list, leaving their hash nodes unhashed,
and remove procfs entries and drop table references outside the locks.
Keep the pending setup check before allocating a new session so
abandoned InProgress sessions can release their slots even at the
connection limit. Retain the timeout and reference checks and dispose of
those sessions outside the locks. Leave ended Expired sessions to the
expiration worker.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
d7fd1f98607f2cd358e583f9548bdf0173090a86 , < 1767a5e45dbf6a3b12105196dda4fb0ef80b9698
(git)
Affected: d7fd1f98607f2cd358e583f9548bdf0173090a86 , < 26534ef335e92b028eb58e44d98d46a0e26af0ec (git) Affected: c99ea7855124ca1428a1e59c2b4590aaef34eacf (git) Affected: 7.2.8 , < 7.3 (semver) |
|
| Linux | Linux |
Affected:
7.3
Unaffected: 0 , < 7.3 (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/server/connection.c",
"fs/smb/server/mgmt/user_session.c",
"fs/smb/server/mgmt/user_session.h",
"fs/smb/server/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1767a5e45dbf6a3b12105196dda4fb0ef80b9698",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"lessThan": "26534ef335e92b028eb58e44d98d46a0e26af0ec",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"status": "affected",
"version": "c99ea7855124ca1428a1e59c2b4590aaef34eacf",
"versionType": "git"
},
{
"lessThan": "7.3",
"status": "affected",
"version": "7.2.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/server/connection.c",
"fs/smb/server/mgmt/user_session.c",
"fs/smb/server/mgmt/user_session.h",
"fs/smb/server/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "7.3"
},
{
"lessThan": "7.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.2.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: reclaim ended sessions on logoff and expiration\n\nLOGOFF and previous-session replacement leave sessions Expired with a\nzero credential expiry. Ended sessions can retain their memory and\nconnection slots when no further setup arrives on the owning connection.\n\nUnpublish a logged-off session while the request reference keeps its\nresponse signing and encryption keys alive. Remove its procfs entry\nbefore dropping the table reference so a reader cannot remove its own\nentry on the last put. Clear proc_entry after removal to avoid removing\nit twice.\n\nReclaim ended sessions from the global table in the existing expiration\nworker before it acquires conn_list_lock. Only select Expired sessions\nwith zero credential expiry and no references beyond the table\nreference. Keep sessions whose Kerberos credentials expired available\nfor reauthentication.\n\nUnlink the session from its setup connection and all channel\nconnections, so SMB2 sessions and sessions with only secondary SMB3\nchannels are covered. The session already holds connection references,\nand sessions_table_lock prevents concurrent channel removal. Queue\nsessions on a separate disposal list, leaving their hash nodes unhashed,\nand remove procfs entries and drop table references outside the locks.\n\nKeep the pending setup check before allocating a new session so\nabandoned InProgress sessions can release their slots even at the\nconnection limit. Retain the timeout and reference checks and dispose of\nthose sessions outside the locks. Leave ended Expired sessions to the\nexpiration worker."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:47.243Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1767a5e45dbf6a3b12105196dda4fb0ef80b9698"
},
{
"url": "https://git.kernel.org/stable/c/26534ef335e92b028eb58e44d98d46a0e26af0ec"
}
],
"title": "ksmbd: reclaim ended sessions on logoff and expiration",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99279",
"datePublished": "2026-11-07T14:08:47.243Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:47.243Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99278 (GCVE-0-2026-99278)
Vulnerability from cvelistv5 – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
ksmbd: limit sessions on each connection
Summary
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: limit sessions on each connection
The pending setup limit only counts InProgress sessions. A client can
complete authentication repeatedly and retain an unbounded number of Valid
sessions on one connection.
Reserve a connection slot before allocating a session and retain a
connection reference while authentication is in progress. The first SMB3
channel takes over that reservation; binding to another connection reserves
one slot there. Reauthentication and authentication continuation reuse the
existing reservation. Return slots on allocation or insertion failure,
channel removal, and final session destruction.
Accept max_sessions_per_connection in reserved startup-request space and
default to 64 when older tools leave it zero. Keep the request size and
existing field offsets unchanged. Expose the configured limit in procfs.
The existing connection limits bound the aggregate number of sessions
without a separate global session allocation limit.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
d7fd1f98607f2cd358e583f9548bdf0173090a86 , < 94f8462fc9d5332bc54e91605003c17381e9171a
(git)
Affected: d7fd1f98607f2cd358e583f9548bdf0173090a86 , < dc6aa1ba8b7fff8800ad9bf143f17d308e02ec68 (git) Affected: c99ea7855124ca1428a1e59c2b4590aaef34eacf (git) Affected: 7.2.8 , < 7.3 (semver) |
|
| Linux | Linux |
Affected:
7.3
Unaffected: 0 , < 7.3 (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/server/connection.c",
"fs/smb/server/connection.h",
"fs/smb/server/ksmbd_netlink.h",
"fs/smb/server/mgmt/user_session.c",
"fs/smb/server/mgmt/user_session.h",
"fs/smb/server/proc.c",
"fs/smb/server/server.c",
"fs/smb/server/server.h",
"fs/smb/server/smb2pdu.c",
"fs/smb/server/transport_ipc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "94f8462fc9d5332bc54e91605003c17381e9171a",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"lessThan": "dc6aa1ba8b7fff8800ad9bf143f17d308e02ec68",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"status": "affected",
"version": "c99ea7855124ca1428a1e59c2b4590aaef34eacf",
"versionType": "git"
},
{
"lessThan": "7.3",
"status": "affected",
"version": "7.2.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/server/connection.c",
"fs/smb/server/connection.h",
"fs/smb/server/ksmbd_netlink.h",
"fs/smb/server/mgmt/user_session.c",
"fs/smb/server/mgmt/user_session.h",
"fs/smb/server/proc.c",
"fs/smb/server/server.c",
"fs/smb/server/server.h",
"fs/smb/server/smb2pdu.c",
"fs/smb/server/transport_ipc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "7.3"
},
{
"lessThan": "7.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.2.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: limit sessions on each connection\n\nThe pending setup limit only counts InProgress sessions. A client can\ncomplete authentication repeatedly and retain an unbounded number of Valid\nsessions on one connection.\n\nReserve a connection slot before allocating a session and retain a\nconnection reference while authentication is in progress. The first SMB3\nchannel takes over that reservation; binding to another connection reserves\none slot there. Reauthentication and authentication continuation reuse the\nexisting reservation. Return slots on allocation or insertion failure,\nchannel removal, and final session destruction.\n\nAccept max_sessions_per_connection in reserved startup-request space and\ndefault to 64 when older tools leave it zero. Keep the request size and\nexisting field offsets unchanged. Expose the configured limit in procfs.\nThe existing connection limits bound the aggregate number of sessions\nwithout a separate global session allocation limit."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:46.983Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/94f8462fc9d5332bc54e91605003c17381e9171a"
},
{
"url": "https://git.kernel.org/stable/c/dc6aa1ba8b7fff8800ad9bf143f17d308e02ec68"
}
],
"title": "ksmbd: limit sessions on each connection",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99278",
"datePublished": "2026-11-07T14:08:46.983Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:46.983Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99277 (GCVE-0-2026-99277)
Vulnerability from cvelistv5 – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
ksmbd: hold a connection reference for each session channel
Summary
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: hold a connection reference for each session channel
ksmbd_session_unregister() removes a session from the global and per-
connection tables before dropping the table reference. A concurrent
reference holder can keep the session and its channel list alive after
those removals.
Connection cleanup can no longer find the unpublished session to remove its
channels. Since a channel only stores a raw conn pointer, the connection
can be freed while another session reference holder is still accessing it,
for example during SMB3.1.1 binding or a procfs read.
Take a connection reference when registering a channel and release it on
insertion failure, channel removal, or final session destruction. Keep the
channels and signing keys until the session is destroyed so a response can
still be signed after the session has been unregistered.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
d7fd1f98607f2cd358e583f9548bdf0173090a86 , < 4b333aed69cfc2c8687b86b6a4364a0dffc16dd8
(git)
Affected: d7fd1f98607f2cd358e583f9548bdf0173090a86 , < add8d7fb04efe564193df73581889c62fc0016f1 (git) Affected: c99ea7855124ca1428a1e59c2b4590aaef34eacf (git) Affected: 7.2.8 , < 7.3 (semver) |
|
| Linux | Linux |
Affected:
7.3
Unaffected: 0 , < 7.3 (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/server/mgmt/user_session.c",
"fs/smb/server/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4b333aed69cfc2c8687b86b6a4364a0dffc16dd8",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"lessThan": "add8d7fb04efe564193df73581889c62fc0016f1",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"status": "affected",
"version": "c99ea7855124ca1428a1e59c2b4590aaef34eacf",
"versionType": "git"
},
{
"lessThan": "7.3",
"status": "affected",
"version": "7.2.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/server/mgmt/user_session.c",
"fs/smb/server/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "7.3"
},
{
"lessThan": "7.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.2.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: hold a connection reference for each session channel\n\nksmbd_session_unregister() removes a session from the global and per-\nconnection tables before dropping the table reference. A concurrent\nreference holder can keep the session and its channel list alive after\nthose removals.\n\nConnection cleanup can no longer find the unpublished session to remove its\nchannels. Since a channel only stores a raw conn pointer, the connection\ncan be freed while another session reference holder is still accessing it,\nfor example during SMB3.1.1 binding or a procfs read.\n\nTake a connection reference when registering a channel and release it on\ninsertion failure, channel removal, or final session destruction. Keep the\nchannels and signing keys until the session is destroyed so a response can\nstill be signed after the session has been unregistered."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:46.710Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4b333aed69cfc2c8687b86b6a4364a0dffc16dd8"
},
{
"url": "https://git.kernel.org/stable/c/add8d7fb04efe564193df73581889c62fc0016f1"
}
],
"title": "ksmbd: hold a connection reference for each session channel",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99277",
"datePublished": "2026-11-07T14:08:46.710Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:46.710Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99276 (GCVE-0-2026-99276)
Vulnerability from cvelistv5 – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
ksmbd: defer connection scavenging while session locks are busy
Summary
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: defer connection scavenging while session locks are busy
The expiration worker holds conn_list_lock for reading while checking
for authenticated sessions. Without this change, the check can wait for
conn->session_lock or sessions_table_lock.
In destroy_previous_session(), the status updates after
ksmbd_conn_wait_idle_sess() run with both session locks held for
writing. Both the KSMBD_SESS_GOOD error path and the
KSMBD_SESS_NEED_SETUP success path call ksmbd_all_conn_set_status(),
which takes conn_list_lock for reading.
A writer queued on conn_list_lock can block these new read acquisitions.
The worker then waits for a session lock held by
destroy_previous_session(), which waits behind the writer. The writer
cannot proceed until the worker releases conn_list_lock.
Try both session locks instead of waiting in the scavenging check. Keep
the connection when either lock is busy and let the periodic worker
retry later.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
d7fd1f98607f2cd358e583f9548bdf0173090a86 , < 4e4e8b38994a0b0fc23f00ca6698b469a41abe70
(git)
Affected: d7fd1f98607f2cd358e583f9548bdf0173090a86 , < b4bae7af1154089be87c7475218264fcbfd16d10 (git) Affected: c99ea7855124ca1428a1e59c2b4590aaef34eacf (git) Affected: 7.2.8 , < 7.3 (semver) |
|
| Linux | Linux |
Affected:
7.3
Unaffected: 0 , < 7.3 (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/server/mgmt/user_session.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4e4e8b38994a0b0fc23f00ca6698b469a41abe70",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"lessThan": "b4bae7af1154089be87c7475218264fcbfd16d10",
"status": "affected",
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"versionType": "git"
},
{
"status": "affected",
"version": "c99ea7855124ca1428a1e59c2b4590aaef34eacf",
"versionType": "git"
},
{
"lessThan": "7.3",
"status": "affected",
"version": "7.2.8",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/server/mgmt/user_session.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "7.3"
},
{
"lessThan": "7.3",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "7.3",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "7.2.8",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: defer connection scavenging while session locks are busy\n\nThe expiration worker holds conn_list_lock for reading while checking\nfor authenticated sessions. Without this change, the check can wait for\nconn-\u003esession_lock or sessions_table_lock.\n\nIn destroy_previous_session(), the status updates after\nksmbd_conn_wait_idle_sess() run with both session locks held for\nwriting. Both the KSMBD_SESS_GOOD error path and the\nKSMBD_SESS_NEED_SETUP success path call ksmbd_all_conn_set_status(),\nwhich takes conn_list_lock for reading.\n\nA writer queued on conn_list_lock can block these new read acquisitions.\nThe worker then waits for a session lock held by\ndestroy_previous_session(), which waits behind the writer. The writer\ncannot proceed until the worker releases conn_list_lock.\n\nTry both session locks instead of waiting in the scavenging check. Keep\nthe connection when either lock is busy and let the periodic worker\nretry later."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:46.432Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4e4e8b38994a0b0fc23f00ca6698b469a41abe70"
},
{
"url": "https://git.kernel.org/stable/c/b4bae7af1154089be87c7475218264fcbfd16d10"
}
],
"title": "ksmbd: defer connection scavenging while session locks are busy",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99276",
"datePublished": "2026-11-07T14:08:46.432Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:46.432Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99275 (GCVE-0-2026-99275)
Vulnerability from cvelistv5 – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
smb: client: reject short SESSION_SETUP responses
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: reject short SESSION_SETUP responses
smb2_check_message() accepts frames shorter than struct smb2_pdu when
the SMB2 status is non-zero, before the minimum-PDU check added by
b4694f269e66d. A 64-byte STATUS_MORE_PROCESSING_REQUIRED SESSION_SETUP
response is therefore accepted even though it cannot contain the
SecurityBufferOffset and SecurityBufferLength fields.
The parser then reads those fields from stale bytes left in the reused
receive buffer by an earlier frame. With a long stale
SecurityBufferLength, decode_ntlmssp_challenge() copies up to about
64 KB from beyond the receive object and sends the data back to the
server in the NTLMv2 AUTHENTICATE target info.
Reject short MPR SESSION_SETUP responses before the short-error path,
and validate SecurityBufferOffset + SecurityBufferLength against the
received response length before decoding the challenge.
The ordering bypass is not new: the short-error early return predates
b4694f269e66d, and the unvalidated SecurityBufferLength read predates
the 2016 raw NTLMSSP split in 166cea4dc3a4, so all supported stable
trees are affected. Reproduced on 6.6.87.2; the path is unchanged on
mainline.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
5478f9ba9a34d660eb3227dcd16314689c51f946 , < df63e01933886153e40706483b9635b2456ad91f
(git)
Affected: 5478f9ba9a34d660eb3227dcd16314689c51f946 , < 4d8930afa3446041358a7db33e7b23a0bb9459b5 (git) |
|
| Linux | Linux |
Affected:
3.6
Unaffected: 0 , < 3.6 (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2misc.c",
"fs/smb/client/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "df63e01933886153e40706483b9635b2456ad91f",
"status": "affected",
"version": "5478f9ba9a34d660eb3227dcd16314689c51f946",
"versionType": "git"
},
{
"lessThan": "4d8930afa3446041358a7db33e7b23a0bb9459b5",
"status": "affected",
"version": "5478f9ba9a34d660eb3227dcd16314689c51f946",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2misc.c",
"fs/smb/client/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.6"
},
{
"lessThan": "3.6",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "3.6",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "3.6",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: reject short SESSION_SETUP responses\n\nsmb2_check_message() accepts frames shorter than struct smb2_pdu when\nthe SMB2 status is non-zero, before the minimum-PDU check added by\nb4694f269e66d. A 64-byte STATUS_MORE_PROCESSING_REQUIRED SESSION_SETUP\nresponse is therefore accepted even though it cannot contain the\nSecurityBufferOffset and SecurityBufferLength fields.\n\nThe parser then reads those fields from stale bytes left in the reused\nreceive buffer by an earlier frame. With a long stale\nSecurityBufferLength, decode_ntlmssp_challenge() copies up to about\n64 KB from beyond the receive object and sends the data back to the\nserver in the NTLMv2 AUTHENTICATE target info.\n\nReject short MPR SESSION_SETUP responses before the short-error path,\nand validate SecurityBufferOffset + SecurityBufferLength against the\nreceived response length before decoding the challenge.\n\nThe ordering bypass is not new: the short-error early return predates\nb4694f269e66d, and the unvalidated SecurityBufferLength read predates\nthe 2016 raw NTLMSSP split in 166cea4dc3a4, so all supported stable\ntrees are affected. Reproduced on 6.6.87.2; the path is unchanged on\nmainline."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:46.188Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/df63e01933886153e40706483b9635b2456ad91f"
},
{
"url": "https://git.kernel.org/stable/c/4d8930afa3446041358a7db33e7b23a0bb9459b5"
}
],
"title": "smb: client: reject short SESSION_SETUP responses",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99275",
"datePublished": "2026-11-07T14:08:46.188Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:46.188Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99274 (GCVE-0-2026-99274)
Vulnerability from cvelistv5 – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
smb: client: fix fiemap wild read on empty truncated response
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: fix fiemap wild read on empty truncated response
smb3_fiemap() treats -E2BIG from SMB2_ioctl() as a truncated range blob
and loops for the next chunk. If the server reports
STATUS_BUFFER_OVERFLOW with OutputCount == 0, SMB2_ioctl() returns
-E2BIG with out_data == NULL and out_data_len == 0, and the existing
length checks accept the empty result. The loop then evaluates
next = out_data[num - 1].file_offset + ...
with num == 0, reading 16 bytes before NULL.
Reject a truncated range blob that contains no range, so the resume
offset is never computed from an empty response. Also require the last
range in a truncated blob to advance the resume offset without
overflowing, and to stay within the requested range; a malicious or
broken server could otherwise make no progress or underflow len and loop
forever. Free the previous response buffer before retrying.
Reproduced on 6.6.87.2 with a malicious SMB2 server that answers
FSCTL_QUERY_ALLOCATED_RANGES with STATUS_BUFFER_OVERFLOW and
OutputCount == 0; an FS_IOC_FIEMAP ioctl on the mount oopses in
cifs_fiemap() with CR2 = fffffffffffffff8. The code path is unchanged
on mainline.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
2f3ebaba13cebd8badfb9aed31c0cf3cc82eb4f4 , < 4a426ca5be7e3dedbe76575b967db04fbf01136f
(git)
Affected: 2f3ebaba13cebd8badfb9aed31c0cf3cc82eb4f4 , < 31f6dbb29fe17fa9595c7e8b19fd92915b03a4ca (git) Affected: 2f3ebaba13cebd8badfb9aed31c0cf3cc82eb4f4 , < f5baa17a0f316c235d61623ac8e8fb32c2b3c0cc (git) |
|
| Linux | Linux |
Affected:
5.2
Unaffected: 0 , < 5.2 (semver) Unaffected: 6.18.61 , ≤ 6.18.* (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2ops.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "4a426ca5be7e3dedbe76575b967db04fbf01136f",
"status": "affected",
"version": "2f3ebaba13cebd8badfb9aed31c0cf3cc82eb4f4",
"versionType": "git"
},
{
"lessThan": "31f6dbb29fe17fa9595c7e8b19fd92915b03a4ca",
"status": "affected",
"version": "2f3ebaba13cebd8badfb9aed31c0cf3cc82eb4f4",
"versionType": "git"
},
{
"lessThan": "f5baa17a0f316c235d61623ac8e8fb32c2b3c0cc",
"status": "affected",
"version": "2f3ebaba13cebd8badfb9aed31c0cf3cc82eb4f4",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2ops.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.2"
},
{
"lessThan": "5.2",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.61",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.61",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "5.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "5.2",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: fix fiemap wild read on empty truncated response\n\nsmb3_fiemap() treats -E2BIG from SMB2_ioctl() as a truncated range blob\nand loops for the next chunk. If the server reports\nSTATUS_BUFFER_OVERFLOW with OutputCount == 0, SMB2_ioctl() returns\n-E2BIG with out_data == NULL and out_data_len == 0, and the existing\nlength checks accept the empty result. The loop then evaluates\n\n\tnext = out_data[num - 1].file_offset + ...\n\nwith num == 0, reading 16 bytes before NULL.\n\nReject a truncated range blob that contains no range, so the resume\noffset is never computed from an empty response. Also require the last\nrange in a truncated blob to advance the resume offset without\noverflowing, and to stay within the requested range; a malicious or\nbroken server could otherwise make no progress or underflow len and loop\nforever. Free the previous response buffer before retrying.\n\nReproduced on 6.6.87.2 with a malicious SMB2 server that answers\nFSCTL_QUERY_ALLOCATED_RANGES with STATUS_BUFFER_OVERFLOW and\nOutputCount == 0; an FS_IOC_FIEMAP ioctl on the mount oopses in\ncifs_fiemap() with CR2 = fffffffffffffff8. The code path is unchanged\non mainline."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:45.924Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/4a426ca5be7e3dedbe76575b967db04fbf01136f"
},
{
"url": "https://git.kernel.org/stable/c/31f6dbb29fe17fa9595c7e8b19fd92915b03a4ca"
},
{
"url": "https://git.kernel.org/stable/c/f5baa17a0f316c235d61623ac8e8fb32c2b3c0cc"
}
],
"title": "smb: client: fix fiemap wild read on empty truncated response",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99274",
"datePublished": "2026-11-07T14:08:45.924Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:45.924Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99273 (GCVE-0-2026-99273)
Vulnerability from cvelistv5 – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
ksmbd: reserve space for the UTF-16 terminator in stream info
Summary
In the Linux kernel, the following vulnerability has been resolved:
ksmbd: reserve space for the UTF-16 terminator in stream info
smb_strtoUTF16() always writes a terminating zero UTF-16 unit after the
converted characters, but get_file_stream_info() budgets only
sizeof(struct smb2_file_stream_info) + streamlen * 2 for a stream entry
and sizeof(struct smb2_file_stream_info) + 7 * 2 for the trailing
"::$DATA" entry. When an entry exactly fills the 448-byte small response
buffer, the terminator is written two bytes past the allocation.
Reserve one extra UTF-16 unit in both budget checks. The terminator is
not part of the wire format, so the reported lengths are unchanged.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 06a751809ebd33e95b05bf733697318a17a4872b
(git)
Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < 0e64f89563164719ceb1aa33f2a8bfd6391fa340 (git) Affected: 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 , < a025c4991a7d83edc4dd339e3ea86d8ff6226eca (git) Affected: 0 , < 6.18.61 (semver) Affected: 0 , < 7.3.2 (semver) |
|
| Linux | Linux |
Unaffected:
6.18.61 , ≤ 6.18.*
(semver)
Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/server/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "06a751809ebd33e95b05bf733697318a17a4872b",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "0e64f89563164719ceb1aa33f2a8bfd6391fa340",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "a025c4991a7d83edc4dd339e3ea86d8ff6226eca",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "6.18.61",
"status": "affected",
"version": "0",
"versionType": "semver"
},
{
"lessThan": "7.3.2",
"status": "affected",
"version": "0",
"versionType": "semver"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/server/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.61",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.61",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: reserve space for the UTF-16 terminator in stream info\n\nsmb_strtoUTF16() always writes a terminating zero UTF-16 unit after the\nconverted characters, but get_file_stream_info() budgets only\nsizeof(struct smb2_file_stream_info) + streamlen * 2 for a stream entry\nand sizeof(struct smb2_file_stream_info) + 7 * 2 for the trailing\n\"::$DATA\" entry. When an entry exactly fills the 448-byte small response\nbuffer, the terminator is written two bytes past the allocation.\n\nReserve one extra UTF-16 unit in both budget checks. The terminator is\nnot part of the wire format, so the reported lengths are unchanged."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:45.585Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/06a751809ebd33e95b05bf733697318a17a4872b"
},
{
"url": "https://git.kernel.org/stable/c/0e64f89563164719ceb1aa33f2a8bfd6391fa340"
},
{
"url": "https://git.kernel.org/stable/c/a025c4991a7d83edc4dd339e3ea86d8ff6226eca"
}
],
"title": "ksmbd: reserve space for the UTF-16 terminator in stream info",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99273",
"datePublished": "2026-11-07T14:08:45.585Z",
"dateReserved": "2026-09-25T10:25:14.405Z",
"dateUpdated": "2026-11-07T14:08:45.585Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99272 (GCVE-0-2026-99272)
Vulnerability from cvelistv5 – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
smb: client: validate the data area in SMB2_read()
Summary
In the Linux kernel, the following vulnerability has been resolved:
smb: client: validate the data area in SMB2_read()
SMB2_read() copies le32_to_cpu(rsp->DataLength) bytes from
(char *)rsp + rsp->DataOffset without checking that the range lies
within the response actually received. A READ response with
DataOffset == 0 makes smb2_get_data_area_len() zero the data length, so
smb2_check_message() accepts a frame as short as the fixed response,
while SMB2_read() still uses the server-supplied DataLength, capped only
by CIFS_MAX_MSGSIZE and the caller's length.
A malicious server can answer the synchronous read used by the
mfsymlinks (or SFU) symlink parser with an 81-byte READ response
carrying DataOffset 0 and DataLength 1067, making the client copy 1067
bytes from a 448-byte receive object (KASAN slab-out-of-bounds; up to
16 KiB in the general case).
Clamp a zero (or header-overlapping) DataOffset to read_rsp_size, as
handle_read_data() does for the asynchronous path, and reject the
response unless DataOffset + DataLength fits within rsp_iov.iov_len.
The SMB1 helper was fixed the same way in 5be5bdda5863.
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
d8e050398d23ef7c019c96200b80d73f4e5cec0c , < 1ba1937de005e261a8858f45bfef5da7458df94c
(git)
Affected: d8e050398d23ef7c019c96200b80d73f4e5cec0c , < 2ec9cdf469dd32bcf33073aeb30c08e9356e0ca1 (git) |
|
| Linux | Linux |
Affected:
3.7
Unaffected: 0 , < 3.7 (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1ba1937de005e261a8858f45bfef5da7458df94c",
"status": "affected",
"version": "d8e050398d23ef7c019c96200b80d73f4e5cec0c",
"versionType": "git"
},
{
"lessThan": "2ec9cdf469dd32bcf33073aeb30c08e9356e0ca1",
"status": "affected",
"version": "d8e050398d23ef7c019c96200b80d73f4e5cec0c",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"fs/smb/client/smb2pdu.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "3.7"
},
{
"lessThan": "3.7",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "3.7",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "3.7",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: validate the data area in SMB2_read()\n\nSMB2_read() copies le32_to_cpu(rsp-\u003eDataLength) bytes from\n(char *)rsp + rsp-\u003eDataOffset without checking that the range lies\nwithin the response actually received. A READ response with\nDataOffset == 0 makes smb2_get_data_area_len() zero the data length, so\nsmb2_check_message() accepts a frame as short as the fixed response,\nwhile SMB2_read() still uses the server-supplied DataLength, capped only\nby CIFS_MAX_MSGSIZE and the caller\u0027s length.\n\nA malicious server can answer the synchronous read used by the\nmfsymlinks (or SFU) symlink parser with an 81-byte READ response\ncarrying DataOffset 0 and DataLength 1067, making the client copy 1067\nbytes from a 448-byte receive object (KASAN slab-out-of-bounds; up to\n16 KiB in the general case).\n\nClamp a zero (or header-overlapping) DataOffset to read_rsp_size, as\nhandle_read_data() does for the asynchronous path, and reject the\nresponse unless DataOffset + DataLength fits within rsp_iov.iov_len.\nThe SMB1 helper was fixed the same way in 5be5bdda5863."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:45.332Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1ba1937de005e261a8858f45bfef5da7458df94c"
},
{
"url": "https://git.kernel.org/stable/c/2ec9cdf469dd32bcf33073aeb30c08e9356e0ca1"
}
],
"title": "smb: client: validate the data area in SMB2_read()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99272",
"datePublished": "2026-11-07T14:08:45.332Z",
"dateReserved": "2026-09-25T10:25:14.404Z",
"dateUpdated": "2026-11-07T14:08:45.332Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-99271 (GCVE-0-2026-99271)
Vulnerability from cvelistv5 – Published: 2026-11-07 14:08 – Updated: 2026-11-07 14:08
VLAI
EPSS
VEX
Title
ALSA: line6: Clear prev_fbuf on capture buffer release
Summary
In the Linux kernel, the following vulnerability has been resolved:
ALSA: line6: Clear prev_fbuf on capture buffer release
A KASAN slab-use-after-free read was reported in submit_audio_out_urb()
when generating an impulse test signal:
BUG: KASAN: slab-use-after-free in create_impulse_test_signal sound/usb/line6/playback.c:76 [inline]
BUG: KASAN: slab-use-after-free in submit_audio_out_urb+0x1848/0x1b20 sound/usb/line6/playback.c:249
Read of size 2 at addr ffff888008d74870 by task syz.2.3214/7785
Allocated by task 11:
kmem_cache_alloc_noprof+0x2f0/0x390 mm/slub.c:4144
line6_buffer_acquire+0x1a1/0x220 sound/usb/line6/pcm.c:158
line6_pcm_acquire+0xb6/0x230 sound/usb/line6/pcm.c:329
line6_startup_work+0x3c/0x50 sound/usb/line6/driver.c:728
Freed by task 7785:
kfree+0xf8/0x390 mm/slub.c:6566
line6_buffer_release sound/usb/line6/pcm.c:176 [inline]
line6_buffer_release+0xa5/0xf0 sound/usb/line6/pcm.c:170
__line6_pcm_release sound/usb/line6/pcm.c:305 [inline]
line6_pcm_release+0x5a/0x80 sound/usb/line6/pcm.c:313
snd_toneport_monitor_put+0x11b/0x190 sound/usb/line6/toneport.c:183
line6pcm->prev_fbuf points into the capture PCM stream buffer
(line6pcm->in.buffer), which is updated during audio_in_callback() to
feed rate synchronization, software monitoring, and impulse test signal
generation on playback side.
When all capture streams are closed, line6_buffer_release() frees
pstr->buffer with kfree(). However, it does not clear line6pcm->prev_fbuf.
If playback is subsequently started (e.g. via impulse test signal
volume control snd_line6_impulse_volume_put()), submit_audio_out_urb()
dereferences the stale pointer line6pcm->prev_fbuf under in.lock,
resulting in a slab-use-after-free read.
Clear prev_fbuf and prev_fsize in line6_buffer_release() when releasing
the capture stream buffer under in.lock, ensuring that no stale buffer
pointer can be accessed by submit_audio_out_urb().
Severity
No CVSS data available.
Assigner
References
Impacted products
2 products
| Vendor | Product | Version | |
|---|---|---|---|
| Linux | Linux |
Affected:
63e20df1e5b2ef8d871ecbdb6c038d554ed1ca74 , < 862d9268f40a6e10cef24eb226e738fb69ce8aa7
(git)
Affected: 63e20df1e5b2ef8d871ecbdb6c038d554ed1ca74 , < 22c82f33ff0b68d37041adf1dea5533a5863cd31 (git) Affected: 63e20df1e5b2ef8d871ecbdb6c038d554ed1ca74 , < aa118c8f61d59387961d58ffae831c5259a9f222 (git) |
|
| Linux | Linux |
Affected:
4.0
Unaffected: 0 , < 4.0 (semver) Unaffected: 6.18.61 , ≤ 6.18.* (semver) Unaffected: 7.3.2 , ≤ 7.3.* (semver) Unaffected: 7.4-rc1 , ≤ * (original_commit_for_fix) |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"sound/usb/line6/pcm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "862d9268f40a6e10cef24eb226e738fb69ce8aa7",
"status": "affected",
"version": "63e20df1e5b2ef8d871ecbdb6c038d554ed1ca74",
"versionType": "git"
},
{
"lessThan": "22c82f33ff0b68d37041adf1dea5533a5863cd31",
"status": "affected",
"version": "63e20df1e5b2ef8d871ecbdb6c038d554ed1ca74",
"versionType": "git"
},
{
"lessThan": "aa118c8f61d59387961d58ffae831c5259a9f222",
"status": "affected",
"version": "63e20df1e5b2ef8d871ecbdb6c038d554ed1ca74",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"sound/usb/line6/pcm.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "4.0"
},
{
"lessThan": "4.0",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"version": "6.18.61",
"versionType": "semver"
},
{
"lessThanOrEqual": "7.3.*",
"status": "unaffected",
"version": "7.3.2",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "7.4-rc1",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.61",
"versionStartIncluding": "4.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3.2",
"versionStartIncluding": "4.0",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.4-rc1",
"versionStartIncluding": "4.0",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nALSA: line6: Clear prev_fbuf on capture buffer release\n\nA KASAN slab-use-after-free read was reported in submit_audio_out_urb()\nwhen generating an impulse test signal:\n\n BUG: KASAN: slab-use-after-free in create_impulse_test_signal sound/usb/line6/playback.c:76 [inline]\n BUG: KASAN: slab-use-after-free in submit_audio_out_urb+0x1848/0x1b20 sound/usb/line6/playback.c:249\n Read of size 2 at addr ffff888008d74870 by task syz.2.3214/7785\n\n Allocated by task 11:\n kmem_cache_alloc_noprof+0x2f0/0x390 mm/slub.c:4144\n line6_buffer_acquire+0x1a1/0x220 sound/usb/line6/pcm.c:158\n line6_pcm_acquire+0xb6/0x230 sound/usb/line6/pcm.c:329\n line6_startup_work+0x3c/0x50 sound/usb/line6/driver.c:728\n\n Freed by task 7785:\n kfree+0xf8/0x390 mm/slub.c:6566\n line6_buffer_release sound/usb/line6/pcm.c:176 [inline]\n line6_buffer_release+0xa5/0xf0 sound/usb/line6/pcm.c:170\n __line6_pcm_release sound/usb/line6/pcm.c:305 [inline]\n line6_pcm_release+0x5a/0x80 sound/usb/line6/pcm.c:313\n snd_toneport_monitor_put+0x11b/0x190 sound/usb/line6/toneport.c:183\n\nline6pcm-\u003eprev_fbuf points into the capture PCM stream buffer\n(line6pcm-\u003ein.buffer), which is updated during audio_in_callback() to\nfeed rate synchronization, software monitoring, and impulse test signal\ngeneration on playback side.\n\nWhen all capture streams are closed, line6_buffer_release() frees\npstr-\u003ebuffer with kfree(). However, it does not clear line6pcm-\u003eprev_fbuf.\nIf playback is subsequently started (e.g. via impulse test signal\nvolume control snd_line6_impulse_volume_put()), submit_audio_out_urb()\ndereferences the stale pointer line6pcm-\u003eprev_fbuf under in.lock,\nresulting in a slab-use-after-free read.\n\nClear prev_fbuf and prev_fsize in line6_buffer_release() when releasing\nthe capture stream buffer under in.lock, ensuring that no stale buffer\npointer can be accessed by submit_audio_out_urb()."
}
],
"providerMetadata": {
"dateUpdated": "2026-11-07T14:08:45.047Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/862d9268f40a6e10cef24eb226e738fb69ce8aa7"
},
{
"url": "https://git.kernel.org/stable/c/22c82f33ff0b68d37041adf1dea5533a5863cd31"
},
{
"url": "https://git.kernel.org/stable/c/aa118c8f61d59387961d58ffae831c5259a9f222"
}
],
"title": "ALSA: line6: Clear prev_fbuf on capture buffer release",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-99271",
"datePublished": "2026-11-07T14:08:45.047Z",
"dateReserved": "2026-09-25T10:25:14.404Z",
"dateUpdated": "2026-11-07T14:08:45.047Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}