# CVE-2026-99275: smb: client: reject short SESSION_SETUP responses

Status: published. Published: 2026-11-07. Updated: 2026-11-07.

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.

## Remediation

No remediation reported in collected sources

## Affected products and versions

- Linux / Linux: ≥ 5478f9ba9a34d660eb3227dcd16314689c51f946; < df63e01933886153e40706483b9635b2456ad91f (affected, git); ≥ 5478f9ba9a34d660eb3227dcd16314689c51f946; < 4d8930afa3446041358a7db33e7b23a0bb9459b5 (affected, git). Source: CNA: Linux
- Linux / Linux: 3.6 (affected); ≥ 0; < 3.6 (unaffected, semver); ≥ 7.3.2; ≤ 7.3.* (unaffected, semver); ≥ 7.4-rc1; ≤ * (unaffected, original_commit_for_fix). Source: CNA: Linux

## Severity and prioritization

- CISA KEV: No listing in collected sources

- EPSS: Not available

- SSVC: Not available

- Weaknesses: Not reported

## Exploit evidence

No exploit evidence in collected sources. This is not proof of no exploitation.

## References

- https://git.kernel.org/stable/c/df63e01933886153e40706483b9635b2456ad91f (CNA: Linux)

- https://git.kernel.org/stable/c/4d8930afa3446041358a7db33e7b23a0bb9459b5 (CNA: Linux)

## Provenance

- CNA: Linux: https://www.cve.org/CVERecord?id=CVE-2026-99275; retrieved 2026-11-07; source updated 2026-11-07

Revision: 7439f09993816a77b04500803714a812061ed91ec19f2a32bf09da499350557c

Canonical: https://y2.dev/cve/CVE-2026-99275

## Agent and API access

Public CVE pages, Markdown, and JSON are free to read without an account or API key.

- Public catalog: https://y2.dev/cve/index.json. Follow nextCursor with the same search, filters, sort, and limit (1–100). A null cursor marks the end.

- WebMCP: search_cve_disclosures, get_cve_disclosure, get_cve_page_markdown, get_y2_cve_access. Available in compatible browsers.

- Cyber API: https://api.y2.dev/api/v2/cyber/cves and https://api.y2.dev/api/v2/cyber/cves/{cveId}.

- Y2 Pro or Elite: create a workspace API key with the intel:cyber scope and send Authorization: Bearer <Y2_API_KEY>. Setup: https://y2.dev/docs/api/create-key.

- x402: Pay per request without an account or API key. Omit Authorization, read the HTTP 402 PAYMENT-REQUIRED challenge, validate its current requirements, and retry with PAYMENT-SIGNATURE through an authorized payment client. These browser tools never make payments. Guide: https://y2.dev/docs/api/x402.

- OpenAPI: https://y2.dev/api/openapi.yaml. Agent access metadata: https://y2.dev/cve/agent.json.

Collected public records only. Check source status for coverage and freshness.