CVE-2026-99278
Full vulnerability record from the local CVENow database.
Description
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.
View original CVE JSON
{
"id": "CVE-2026-99278",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"published": "2026-11-07T14:17:03.200",
"lastModified": "2026-11-07T14:17:03.200",
"vulnStatus": "Received",
"cveTags": [],
"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."
}
],
"affected": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"affectedData": [
{
"vendor": "Linux",
"product": "Linux",
"defaultStatus": "unaffected",
"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",
"versions": [
{
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"lessThan": "94f8462fc9d5332bc54e91605003c17381e9171a",
"versionType": "git",
"status": "affected"
},
{
"version": "d7fd1f98607f2cd358e583f9548bdf0173090a86",
"lessThan": "dc6aa1ba8b7fff8800ad9bf143f17d308e02ec68",
"versionType": "git",
"status": "affected"
},
{
"version": "c99ea7855124ca1428a1e59c2b4590aaef34eacf",
"versionType": "git",
"status": "affected"
},
{
"version": "7.2.8",
"lessThan": "7.3",
"versionType": "semver",
"status": "affected"
}
]
},
{
"vendor": "Linux",
"product": "Linux",
"defaultStatus": "affected",
"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",
"versions": [
{
"version": "7.3",
"status": "affected"
},
{
"version": "0",
"lessThan": "7.3",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "7.3.2",
"lessThanOrEqual": "7.3.*",
"versionType": "semver",
"status": "unaffected"
},
{
"version": "7.4-rc1",
"lessThanOrEqual": "*",
"versionType": "original_commit_for_fix",
"status": "unaffected"
}
]
}
]
}
],
"metrics": {},
"references": [
{
"url": "https://git.kernel.org/stable/c/94f8462fc9d5332bc54e91605003c17381e9171a",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/dc6aa1ba8b7fff8800ad9bf143f17d308e02ec68",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
]
}