Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2026-99109— smb: client: reject SetEA requests that do not fit the request buffer

Quick assessment

Affected
Linux Linux
Exploitation
No confirmed in-the-wild exploitation; assess based on exposure
Recommended action
Check the vendor advisory and references for a fixed version. If immediate upgrade is impossible, restrict exposure and increase monitoring.

在 Linux 内核中,以下漏洞已得到修复: SMB 客户端:拒绝无法适配请求缓冲区的 SetEA 请求 函数在将调用者提供的扩展属性值复制到 SMB 请求缓冲区时,未检查该值是否超出缓冲区容量。虽然源代码注释中已明确提出此要求,但从未真正实施: 目前,唯一在入口处实施的边界检查位于 函数中: 代表缓冲区的完整负载容量。因此,若扩展属性值的长度恰好等于该值,则缓冲区中将没有剩余空间用于存放 SMB 头部、TRANS2 参数块、fealist 头部以及在该值之前写入的扩展属性名称。 函数实际上已针对此长度实施了正确的

CVSS 7.8 · High EPSS 0.13% · P3

Affected Version Matrix 6

VendorProduct Version RangeStatus
Linux Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< 9efbd764ab80fa86d2258550877a74d78a25e855 affected
1da177e4c3f41524e886b7f1b8a0c1fc7321cac2< 4aa2c106aef4bf3dfd97c30842db0767b26e8428 affected
2.6.12 affected
< 2.6.12 unaffected
7.2.13≤ 7.2.* unaffected
7.3≤ * unaffected
Get alerts for future matching vulnerabilities Log in to subscribe

I. Basic Information for CVE-2026-99109

Vulnerability Information

Have questions about the vulnerability? See if Shenlong's analysis helps!
View Shenlong Deep Dive ↗

Although we use advanced large model technology, its output may still contain inaccurate or outdated information.Shenlong tries to ensure data accuracy, but please verify and judge based on the actual situation.

Vulnerability Title
smb: client: reject SetEA requests that do not fit the request buffer
Source: CVE Program / CVE List V5
Vulnerability Description
In the Linux kernel, the following vulnerability has been resolved: smb: client: reject SetEA requests that do not fit the request buffer CIFSSMBSetEA() copies the caller's extended attribute value into the SMB request buffer without checking that it fits. The requirement is stated in the source but was never implemented: /*BB add length check to see if it would fit in negotiated SMB buffer size BB */ /* if (ea_value_len > buffer_size - 512 (enough for header)) */ if (ea_value_len) memcpy(parm_data->list.name + name_len + 1, ea_value, ea_value_len); The only bound applied on the way in is in cifs_xattr_set(): #define MAX_EA_VALUE_SIZE CIFSMaxBufSize ... if (size > MAX_EA_VALUE_SIZE) CIFSMaxBufSize is the full payload capacity of the buffer, so a value of exactly that size leaves no room for the SMB header, the TRANS2 parameter block, the fealist header and the EA name that are written ahead of it in the same object. SendReceive() already enforces the correct limit on this very length: if (in_len > CIFSMaxBufSize + MAX_CIFS_HDR_SIZE) but it is called after the copy has taken place. An unprivileged setxattr(2) on an SMB1 mount with a 250-byte name and a 16384-byte value writes 16384 bytes starting 345 bytes into a 16588-byte cifs_request object, ending 141 bytes past it: BUG: KASAN: slab-out-of-bounds in CIFSSMBSetEA+0xabc/0xde0 Write of size 16384 at addr ffff888003aa0159 by task init/68 __asan_memcpy+0x3c/0x60 CIFSSMBSetEA+0xabc/0xde0 cifs_xattr_set+0xd3a/0xff0 __vfs_setxattr+0x13e/0x1a0 The buggy address is located 345 bytes inside of allocated 16588-byte region Apply SendReceive()'s limit to the assembled request before the copy rather than after it, and widen the byte counters so the sum cannot wrap before it is tested. byte_count is also tested against U16_MAX, because it is stored in the 16-bit pSMB->ByteCount. That becomes reachable when CIFSMaxBufSize is raised at module load, where it may be set as high as 1024*127: with a 5-byte EA name and a 65521-byte value, count is exactly U16_MAX while byte_count is 65556, and cpu_to_le16() would truncate it to 20 and transmit a frame whose ByteCount does not match its length. Testing byte_count covers count as well, since byte_count is the larger of the two and count's only 16-bit consumer is written after this point. check_add_overflow() is evaluated first so that total_len is assigned before it is reported.
Source: CVE Program / CVE List V5
CVSS Information
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Source: CVE Program / CVE List V5
Vulnerability Type
N/A
Source: CVE Program / CVE List V5

Affected Products

Vendor Product Affected Versions CPE Subscribe
Linux Linux 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ~ 9efbd764ab80fa86d2258550877a74d78a25e855 -
Linux Linux 2.6.12 -

II. Public POCs for CVE-2026-99109

# POC Description Source Link Shenlong Link
AI-Generated POC Premium

No public POC found.

Login to generate AI POC

III. Intelligence Information for CVE-2026-99109

请登录查看更多情报信息。

Patches & Fixes for CVE-2026-99109 (1)

Same Patch Batch · Linux · 2026-10-28 · 117 CVEs total

CVE-2026-99153 9.8 CRITICAL scsi: libiscsi: Validate the ITT reflected in a Reject PDU
CVE-2026-99154 9.8 CRITICAL scsi: libiscsi: Reject a negative task index from parse_pdu_itt
CVE-2026-99170 8.8 HIGH namespace: a mount that copy_tree() leaves out can't take over a lock
CVE-2026-99185 8.8 HIGH firewire: core: fix race condition in split transaction handling
CVE-2026-99216 8.4 HIGH Drivers: hv: Don't reset VMBus connection state on error/exit paths
CVE-2026-99131 8.2 HIGH xfs: fix capability check in xfs
CVE-2026-99116 7.8 HIGH net: psp: do not inherit the Rx association on clone
CVE-2026-99177 7.8 HIGH KVM: SEV: Fix page dirtying in sev_gmem_post_populate()
CVE-2026-99173 7.8 HIGH eventfs: Free the eventfs_inode after an rcu grace period too
CVE-2026-99180 7.8 HIGH unicode: free the map after a grace period
CVE-2026-99167 7.8 HIGH net/sched: fix use-after-free in __tcf_action_put()
CVE-2026-99164 7.8 HIGH spi: imx: fix slab corruption from undersized DMA bounce buffers
CVE-2026-99163 7.8 HIGH tracing/histograms: Reject non-stacktrace fields for synthetic stacktrace fields
CVE-2026-99117 7.8 HIGH net: bridge: mcast: don't truncate the port group walk on teardown
CVE-2026-99143 7.8 HIGH tracing: Keep the predicate limit separate from program capacity
CVE-2026-99156 7.8 HIGH scsi: st: Fix use-after-free race between st_remove() and st_open()
CVE-2026-99203 7.8 HIGH pipe: preserve existing fasync readers on writer setup failure
CVE-2026-99107 7.8 HIGH ntfs: fix incorrect MFT record pointer passed to ntfs_attr_record_resize
CVE-2026-99213 7.8 HIGH vsock: treat TCP_CLOSING as once-established
CVE-2026-99152 7.5 HIGH scsi: libiscsi: Validate the task named by a management response

Showing top 20 of 117 CVEs. View all on vendor page &rarr; →

IV. Related Vulnerabilities