☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
Linux logo [ WEBSITE ] [ VENDOR STATS ]
SOON 🐛 CWE-416
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2026-98194

CVE-2026-98194 Use-After-Free in Linux
📅 PUBLISHED: 2026-10-06 00:00 UTC 🔄 UPDATED: 2026-10-07 05:00 UTC
⏳ SCORE PENDING — ANALYSIS IN PROGRESS [ DEFENSE PATCH ↓ ]
💣 PoC: None
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.18%
👁️
0.18% probability
4.6× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1068
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
Country: Global License: Open Source
VULNERABLE: All Linux kernel versions with the libertas_tf driver prior to the fix commit
CVSS SEVERITY SCALE
9.0–10.0 CRITICAL
7.0–8.9 HIGH
4.0–6.9 MEDIUM
0.1–3.9 LOW
0.0 NONE
SOON
PENDING NVD
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2026-98194 is a use-after-free (UAF) vulnerability in the Linux kernel's libertas_tf Wi-Fi driver, occurring in lbtf_free_adapter() during adapter teardown. The flaw arises from an incorrect ordering of operations: command buffers are freed before the command timer callback is synchronized, allowing an in-flight command_timer_fn to dereference freed memory via priv->cur_cmd->cmdbuf. Systems using the libertas_tf driver (typically older Marvell Libertas-based USB/SDIO Wi-Fi hardware) are affected; impact ranges from kernel crash (DoS) to potential privilege escalation depending on memory layout and attacker control.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

Technical Analysis

The vulnerability resides in the driver's adapter cleanup path. In lbtf_free_adapter(), the teardown sequence calls lbtf_free_cmd_buffer() first, which releases the command buffer array, and only subsequently invokes timer_delete_sync() to wait for the command timer callback to finish. If the timer callback (command_timer_fn) is already executing when lbtf_free_cmd_buffer() runs, the callback will continue to access priv->cur_cmd->cmdbuf, which now references freed memory. This constitutes a classic use-after-free: the memory backing cur_cmd->cmdbuf is released while a concurrent execution context still holds a pointer to it.

The attack surface is a race condition. The window is between the moment lbtf_free_cmd_buffer() frees the array and the moment timer_delete_sync() would normally quiesce the callback. Because the two operations were ordered incorrectly, no synchronization protects the callback from observing freed memory. The described fix is straightforward: run timer_delete_sync() before lbtf_free_cmd_buffer() so that any in-flight callback completes before buffers are relinquished.

Root cause class: CWE-416 (Use After Free), driven by a time-of-check/time-of-use style ordering error during resource teardown. No cryptographic weakness, injection, or authentication bypass is involved. The bug is a lifecycle/synchronization defect.

Reachability depends on the timer callback being active concurrently with adapter free. This is most plausible during device removal, module unload, or a driver reset triggered while a command is outstanding. Triggering the race from an unprivileged context requires either hardware interaction (device detach) or the ability to induce driver teardown, which typically implies local access.

Exploitation Scenarios

No public PoC is available; the chain below is inferred from the vulnerability class and the NVD description. Only identifiers present in the description (lbtf_free_adapter, lbtf_free_cmd_buffer, timer_delete_sync, command_timer_fn, priv->cur_cmd->cmdbuf) are referenced.

  1. Reconnaissance / target identification. An attacker identifies a host whose kernel includes the libertas_tf driver and has such a device present and active. Local presence of the relevant hardware or module is the precondition. On shared or multi-tenant systems with device passthrough, the attacker may not need to be the device owner.

  2. Triggering the flaw class. The attacker engineers a state in which the command timer callback (command_timer_fn) is still running at the precise moment lbtf_free_adapter() executes its teardown. This is a race condition: the attacker attempts to overlap an outstanding command (so the timer fires) with an adapter-free operation (device removal, unbind, or module unload). The exact primitive used to widen the race window is not specified in the available data and must not be assumed.

  3. Execution at the vulnerability-class level. Because lbtf_free_cmd_buffer() releases the command array before timer_delete_sync() waits, the in-flight callback dereferences priv->cur_cmd->cmdbuf after that memory is freed. The consequence is a use-after-free read (and potentially write) on the freed buffer. This is the dangerous operation; whether it yields a controllable corruption depends on the allocator state and what reclaims the freed slab.

  4. Post-exploitation impact. A reliable crash (kernel oops/panic) is the baseline outcome and constitutes denial of service. In a more favorable heap layout, the freed buffer could be reclaimed with attacker-influenced data, converting the UAF into memory corruption that may support privilege escalation in kernel context. No exploit code, gadget, or controlled-reclaim technique is documented for this CVE; escalation is theoretical based on the UAF class and requires substantial additional work. There is no remote, unauthenticated path described.

Impact Assessment

  • Confidentiality: High potential (freed memory may hold or be replaced with sensitive kernel data).
  • Integrity: High potential (UAF write into reclaimed memory could corrupt kernel state).
  • Availability: High — the most readily achievable outcome is a kernel crash, causing system instability or reboot.
  • Attack Vector: Local — requires interaction with driver teardown on a system using libertas_tf.
  • Attack Complexity: High — the exploit depends on winning a race condition and on favorable allocator layout.
  • Privileges Required: Low — the race is plausibly reachable by a local user with device access.
  • User Interaction: None required beyond the triggering action.
  • Scope: Unchanged — impact remains within the kernel security context.

Blast radius is limited to hosts using the libertas_tf driver, largely legacy/embedded and older Wi-Fi hardware. Enterprise exposure is concentrated in long-lived systems and specialized appliances. No CVSS score is assigned by the source (N/A); the vector above is a class-based estimate and must not be treated as vendor-scored.

Detection Guidance

Sigma Rule

title: Linux Kernel libertas_tf UAF Teardown - Module Unload or Adapter Free
id: 7f3a9c21-5b8e-4d0a-9c11-libertas-tf-uaf
status: experimental
description: Detects attempts to unload or manipulate the libertas_tf module that could race with adapter teardown (CVE-2026-98194).
references:
  - https://nvd.nist.gov/vuln/detail/CVE-2026-98194
author: valtersit.com
logsource:
  product: linux
  service: auditd
detection:
  selection_mod:
    type: 'SYSCALL'
    syscall: 'delete_module'
    a0|contains: 'libertas_tf'
  selection_kmem:
    type: 'SYSCALL'
    syscall: 'init_module'
    exe|endswith: '/modprobe'
  condition: selection_mod or selection_kmem
falsepositives:
  - Legitimate administrative module reload during driver updates
level: medium
tags:
  - attack.t1068

YARA Rule

rule CVE_2026_98194_libertas_tf_uaf
{
    meta:
        description = "Detects libertas_tf driver binaries referencing vulnerable teardown symbols (CVE-2026-98194)"
        author = "valtersit.com"
        reference = "https://nvd.nist.gov/vuln/detail/CVE-2026-98194"
        date = "2026-01-01"
    strings:
        $sym1 = "lbtf_free_adapter"
        $sym2 = "lbtf_free_cmd_buffer"
        $sym3 = "command_timer_fn"
        $sym4 = "timer_delete_sync"
        $name = "libertas_tf"
    condition:
        ($name and $sym1 and $sym2) or (2 of ($sym*))
}

Suricata IDS Rule

Note: This is a local kernel race condition with no network protocol signature. The rule below provides weak heuristic coverage for libertas_tf-related traffic anomalies and is included for completeness; it is not a reliable detection.

alert ip any any -> any any (msg:"CVE-2026-98194 Possible libertas_tf driver activity (UAF teardown)"; flow:to_server; byte_test:1,>,0,0; threshold:type limit, track by_src, count 1, seconds 60; sid:202698194; rev:1; classtype:attempted-admin;)

Elastic Detection

process where event.type == "start" and
  (process.name == "rmmod" or process.name == "modprobe") and
  process.args : "libertas_tf"

Splunk SPL Query

index=linux sourcetype=auditd (syscall=delete_module OR syscall=init_module)
| search a0="libertas_tf" OR exe="*/modprobe" OR exe="*/rmmod"
| stats count min(_time) as first_seen max(_time) as last_seen by host, user, exe, a0
| where count > 0

Wazuh OSSEC Rule

<group name="linux,kernel,cve-2026-98194,">
  <rule id="202698194" level="8">
    <decoded_as>auditd</decoded_as>
    <field name="audit.key">module_change</field>
    <match>libertas_tf</match>
    <description>CVE-2026-98194: libertas_tf module manipulated; possible race with lbtf_free_adapter (UAF).</description>
    <mitre>
      <id>T1068</id>
    </mitre>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence: 0/4 (UNPATCHED — no patch evidence from any tracked source).

  1. Immediate mitigations.

    • If the libertas_tf driver is not required, blacklist it (/etc/modprobe.d/) to prevent load and reduce the attack surface.
    • Restrict local users from unbinding or unloading kernel modules (limit CAP_SYS_MODULE); constrain device access via permissions/cgroups so only trusted operators can trigger adapter teardown.
    • Avoid routine module reload or device hot-unplug cycles while commands are in flight; serialize teardown operations administratively where possible.
    • Monitor kernel logs for oops/BUG/UAF splats referencing lbtf_free_adapter, lbtf_free_cmd_buffer, or command_timer_fn.
  2. Patch / upgrade steps.

    • No vendor patch is currently available from tracked sources. The fix described in the NVD entry is to reorder teardown so timer_delete_sync() is called before lbtf_free_cmd_buffer() in lbtf_free_adapter().
    • Track the upstream Linux kernel stable trees and the mainline commit for this CVE; apply the kernel update once released.
    • Rebuild or update only from trusted distribution kernel packages; verify signatures before deployment.
  3. Long-term hardening.

    • Enable kernel mitigations for use-after-free classes (e.g., hardened allocators, KASAN in test environments to catch regressions).
    • Adopt signed module enforcement and least-privilege module loading policies.
    • Maintain an inventory of systems using legacy Wi-Fi drivers and deprecate unsupported hardware.
    • Integrate kernel oops/UAF telemetry into SIEM for early detection of exploitation attempts.

References

No public PoC, exploit code, or Nuclei template was identified. No threat actor campaign or exploit-in-the-wild evidence is associated with this CVE at this time. EPSS has not been scored by FIRST.org.

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"libertas"
http.html:"libertas_tf"
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2026-98194/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.