Cloudanix VulnDB

CVE-2026-98170

None

CVSS

—

EPSS

0.2%

Published

Oct 6, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in how Linux reads file attributes from Windows file servers can let a bad server cause the client computer to read memory it should not, potentially leading to crashes or information leaks.

Exploitation
Requires User Interaction
Attacker needs
User Interaction
Complexity
Moderate
Impact
Data Exposure
Component
OS kernel
Class
Buffer Overflow
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Insufficient bounds check in move_smb2_ea_to_cifs() allows the while (src_size > 0) loop to dereference ea_name_length and ea_value_length fields of an smb2_ea_info structure when remaining src_size is smaller than the structure size, resulting in an out-of-bounds read.

Why it matters to the business

Linux SMB clients may experience kernel memory disclosure or crashes when connecting to a server that returns a malformed extended attribute list, potentially disrupting file access or exposing sensitive kernel memory.

How an attack unfolds

An attacker hosts a malicious SMB server that replies to SMB2 QUERY_INFO or similar requests with an EA list whose total size or next_entry_offset values are crafted to be smaller than sizeof(smb2_ea_info). When the client invokes move_smb2_ea_to_cifs() on this response, the loop condition permits reads past the supplied buffer, triggering the out-of-bounds access.

How to fix it

Apply the upstream kernel patch that adds src_size >= sizeof(*src) guard before reading fields and validates next_entry_offset against both structure size and remaining buffer length. Rebuild and deploy the updated kernel; for distributions, install the corresponding security update once available.

How to confirm the fix worked

Confirm the patched kernel source contains the size check before the while loop and the next_entry_offset sanity tests; test by replaying a deliberately malformed EA response and verifying -EIO is returned instead of previous error codes or a crash.

Typical attack path

  1. Attacker configures SMB server to return a malformed EA list with insufficient length or invalid next_entry_offset
  2. Victim Linux client mounts the share or issues getxattr/listxattr operations
  3. Kernel processes the server response and calls move_smb2_ea_to_cifs()
  4. Loop iterates without adequate size validation, performing out-of-bounds reads of EA structure fields
  5. Kernel returns -EIO to userspace or experiences memory corruption effects

How to detect it

Examine kernel logs for oops or panic messages referencing move_smb2_ea_to_cifs or smb2_ea_info; audit SMB client activity logs for repeated connections to untrusted servers followed by -EIO errors on xattr operations.

What your security team should do

  • Prioritize kernel updates for all Linux systems that mount SMB shares
  • Monitor vendor security advisories for the specific distribution kernel package containing this fix
  • Consider network segmentation or SMB server allow-listing until patches are deployed
  • Review SMB client configurations to restrict unnecessary extended attribute usage where feasible

The record

In the Linux kernel, the following vulnerability has been resolved: smb: client: fix OOB struct field reads in move_smb2_ea_to_cifs() In move_smb2_ea_to_cifs(), the while (src_size > 0) loop condition is insufficient. It allows iteration to continue even if the remaining src_size is too small to contain a complete smb2_ea_info structure. Consequently, reads of ea_name_length and ea_value_length can occur out-of-bounds. Fix this by ensuring src_size >= sizeof(*src) before attempting to read any structure fields. Additionally, reject any next_entry_offset that is smaller than sizeof(*src) or that would advance the pointer beyond the available buffer. Note that for calls where the server returns a malformed EA list, the error returned to userspace changes from -ENODATA (getxattr) or -ERANGE (listxattr) to -EIO. This correctly signals a server protocol error rather than misleadingly indicating "attribute not present" or "output buffer too small".

Affected packages

Ecosystem Package Introduced Fixed