CVE-2025-39818: HID: intel-thc-hid: intel-thc: Fix incorrect pointer arithmetic in I2C regs save
In the Linux kernel, the following vulnerability has been resolved:
HID: intel-thc-hid: intel-thc: Fix incorrect pointer arithmetic in I2C regs save
Improper use of secondary pointer (&dev->i2c_subip_regs) caused
kernel crash and out-of-bounds error:
BUG: KASAN: slab-out-of-bounds in _regmap_bulk_read+0x449/0x510
Write of size 4 at addr ffff888136005dc0 by task kworker/u33:5/5107
CPU: 3 UID: 0 PID: 5107 Comm: kworker/u33:5 Not tainted 6.16.0+ #3 PREEMPT(voluntary)
Workqueue: async async_run_entry_fn
Call Trace:
<TASK>
dump_stack_lvl+0x76/0xa0
print_report+0xd1/0x660
? __pfx__raw_spin_lock_irqsave+0x10/0x10
? kasan_complete_mode_report_info+0x26/0x200
kasan_report+0xe1/0x120
? _regmap_bulk_read+0x449/0x510
? _regmap_bulk_read+0x449/0x510
__asan_report_store4_noabort+0x17/0x30
_regmap_bulk_read+0x449/0x510
? __pfx__regmap_bulk_read+0x10/0x10
regmap_bulk_read+0x270/0x3d0
pio_complete+0x1ee/0x2c0 [intel_thc]
? __pfx_pio_complete+0x10/0x10 [intel_thc]
? __pfx_pio_wait+0x10/0x10 [intel_thc]
? regmap_update_bits_base+0x13b/0x1f0
thc_i2c_subip_pio_read+0x117/0x270 [intel_thc]
thc_i2c_subip_regs_save+0xc2/0x140 [intel_thc]
? __pfx_thc_i2c_subip_regs_save+0x10/0x10 [intel_thc]
[...]
The buggy address belongs to the object at ffff888136005d00
which belongs to the cache kmalloc-rnd-12-192 of size 192
The buggy address is located 0 bytes to the right of
allocated 192-byte region [ffff888136005d00, ffff888136005dc0)
Replaced with direct array indexing (&dev->i2c_subip_regs[i]) to ensure
safe memory access.
Security readout for executives and security teams
Plain-English summary
A memory-safety error in the Linux Intel Touch Host Controller HID driver can write beyond allocated memory and crash the kernel. The supplied CVSS rating is 7.8 (high). Successful abuse requires local access with low privileges; the evidence does not establish remote reachability or real-world exploitation.
Executive priority
Treat confirmed affected systems as a high-priority patching item, especially multi-user endpoints. This is not evidenced as an internet-scale emergency because access is local and active exploitation is unconfirmed. Prompt remediation remains appropriate because kernel memory corruption can cause system compromise or denial of service.
Technical view
Incorrect pointer arithmetic in thc_i2c_subip_regs_save passed the secondary array pointer incorrectly during a regmap bulk read, producing a four-byte slab out-of-bounds write. The correction directly indexes i2c_subip_regs. The CVSS vector indicates local, low-complexity, low-privilege exploitation without user interaction and potentially high confidentiality, integrity, and availability impact.
Likely exposure
Exposure is limited to Linux systems containing the affected Intel THC HID I2C driver path and an affected kernel build. The supplied affected-version data names 6.14, 6.16.5, and 6.17, but also contains an ambiguous "0" entry; confirm exact ranges against distribution and kernel-maintainer advisories.
Exploitation context
The CVSS vector describes a local attack requiring low privileges. The documented failure occurred in a kernel worker and caused an out-of-bounds write and kernel crash. The supplied record is not in KEV and provides no evidence of active exploitation, public exploit availability, or reliable privilege escalation.
Researcher notes
KASAN recorded a four-byte write immediately beyond a 192-byte allocation in _regmap_bulk_read, reached through pio_complete and thc_i2c_subip_regs_save. The stated fix uses &dev->i2c_subip_regs[i]. The supplied bundle does not establish exploitability beyond the observed crash, affected hardware breadth, or complete fixed-version boundaries.
Mitigation direction
Apply a vendor or distribution kernel update containing the referenced stable fix.
Confirm the installed update replaces the faulty pointer use with direct array indexing.
If updating is delayed, consult vendor guidance for supported exposure-reduction measures.
Prioritize affected shared workstations or systems where untrusted users can obtain local access.
Validation and detection
Inventory kernel versions on systems using Intel THC HID hardware or drivers.
Confirm whether the intel_thc I2C driver path is present and active.
Map installed builds to distribution advisories and the referenced stable commits.
After updating, verify the running kernel includes the fix and review logs for related crashes.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cwe · low confidence lookup
CWE-787: Exact CWE lookup
Use the exact CWE identifier as the starting point before reviewing related ATT&CK behavior. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
2CVSS vectors
3Timeline events
1ADP providers
3Source links
SSVC decision data
CISA-ADPCISA Coordinator
Timestamp
Version
2.0.3
Exploitation: noneAutomatable: noTechnical Impact: total
CVSS vector scores
2 official scores
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
CWE-787 · source CWE mapping
Out-of-bounds Write
Out-of-bounds Write represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.