CVE-2025-37894: net: use sock_gen_put() when sk_state is TCP_TIME_WAIT
In the Linux kernel, the following vulnerability has been resolved:
net: use sock_gen_put() when sk_state is TCP_TIME_WAIT
It is possible for a pointer of type struct inet_timewait_sock to be
returned from the functions __inet_lookup_established() and
__inet6_lookup_established(). This can cause a crash when the
returned pointer is of type struct inet_timewait_sock and
sock_put() is called on it. The following is a crash call stack that
shows sk->sk_wmem_alloc being accessed in sk_free() during the call to
sock_put() on a struct inet_timewait_sock pointer. To avoid this issue,
use sock_gen_put() instead of sock_put() when sk->sk_state
is TCP_TIME_WAIT.
mrdump.ko ipanic() + 120
vmlinux notifier_call_chain(nr_to_call=-1, nr_calls=0) + 132
vmlinux atomic_notifier_call_chain(val=0) + 56
vmlinux panic() + 344
vmlinux add_taint() + 164
vmlinux end_report() + 136
vmlinux kasan_report(size=0) + 236
vmlinux report_tag_fault() + 16
vmlinux do_tag_recovery() + 16
vmlinux __do_kernel_fault() + 88
vmlinux do_bad_area() + 28
vmlinux do_tag_check_fault() + 60
vmlinux do_mem_abort() + 80
vmlinux el1_abort() + 56
vmlinux el1h_64_sync_handler() + 124
vmlinux > 0xFFFFFFC080011294()
vmlinux __lse_atomic_fetch_add_release(v=0xF2FFFF82A896087C)
vmlinux __lse_atomic_fetch_sub_release(v=0xF2FFFF82A896087C)
vmlinux arch_atomic_fetch_sub_release(i=1, v=0xF2FFFF82A896087C)
+ 8
vmlinux raw_atomic_fetch_sub_release(i=1, v=0xF2FFFF82A896087C)
+ 8
vmlinux atomic_fetch_sub_release(i=1, v=0xF2FFFF82A896087C) + 8
vmlinux __refcount_sub_and_test(i=1, r=0xF2FFFF82A896087C,
oldp=0) + 8
vmlinux __refcount_dec_and_test(r=0xF2FFFF82A896087C, oldp=0) + 8
vmlinux refcount_dec_and_test(r=0xF2FFFF82A896087C) + 8
vmlinux sk_free(sk=0xF2FFFF82A8960700) + 28
vmlinux sock_put() + 48
vmlinux tcp6_check_fraglist_gro() + 236
vmlinux tcp6_gro_receive() + 624
vmlinux ipv6_gro_receive() + 912
vmlinux dev_gro_receive() + 1116
vmlinux napi_gro_receive() + 196
ccmni.ko ccmni_rx_callback() + 208
ccmni.ko ccmni_queue_recv_skb() + 388
ccci_dpmaif.ko dpmaif_rxq_push_thread() + 1088
vmlinux kthread() + 268
vmlinux 0xFFFFFFC08001F30C()
Security readout for executives and security teams
Plain-English summary
A Linux kernel networking bug can mishandle a short-lived TCP socket object and crash the operating system. Systems using an affected kernel may face service disruption. Although the supplied CVSS rating is 9.8, the technical description demonstrates a crash but does not establish data theft or modification.
Executive priority
Treat as an urgent availability risk on affected, network-facing Linux systems. Accelerate vendor-supported kernel updates, but avoid claiming confirmed compromise: the evidence shows a crash condition, while active exploitation and confidentiality or integrity impact remain unproven.
Technical view
The lookup functions may return an inet_timewait_sock while TCP is in TIME_WAIT. Calling sock_put() on that object can reach sk_free() and access an incompatible field, causing a kernel fault. The referenced correction uses sock_gen_put() when sk_state equals TCP_TIME_WAIT.
Likely exposure
The bundle identifies Linux kernel versions 6.10, 6.12.28, 6.14.6, and 6.15 as affected. Its additional version and default-status data are ambiguous, so distribution-specific advisories and backport status must determine actual exposure.
Exploitation context
CISA KEV status is false, and the supplied sources do not report active exploitation or a public exploit. Network reachability is asserted by the CVSS vector, but the description only documents a kernel crash path; reliable remote triggering is not established here.
Researcher notes
The crash trace passes through IPv6 GRO processing and tcp6_check_fraglist_gro. The supplied affected-version records contain an unexplained โ0,โ repeated commit identifiers, and default-status inconsistencies. Researchers should use the CVE record and stable commits to map distribution backports without inferring unsupported version ranges.
Mitigation direction
Upgrade to a vendor-supported kernel containing the referenced stable correction.
Check Linux distribution advisories for backported fixes and corrected package versions.
Prioritize externally reachable systems and infrastructure where kernel crashes have high operational impact.
Use normal maintenance safeguards and rollback planning when deploying kernel updates.
Validation and detection
Inventory running kernel versions with distribution and package-release details.
Confirm the vendor kernel includes the sock_gen_put() correction or an equivalent backport.
Review crash telemetry for tcp6_check_fraglist_gro, sock_put, sk_free, or KASAN faults.
After updating, verify the corrected kernel is running following reboot.
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.
cve ยท low confidence lookup
CVE-2025-37894 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
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.
1CVSS vectors
3Timeline events
0ADP providers
4Source links
CVSS vector scores
1 official score
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.