---
id: "CVE-2026-98944"
kind: "vulnerability"
aliases: ["CVE-2026-98944"]
title: "Linux kernel: Steam HID controller registration cleanup fixes leftover battery object"
severity: "unknown"
cvss: null
epss: 0.00209
exploited: false
status: "open"
category: "infrastructure"
products: []
ecosystems: []
tags: ["infrastructure", "kernel", "linux", "steam-controller"]
not_affected_if: []
published_at: "2026-10-23T13:17:15+00:00"
first_seen_at: "2026-10-23T21:57:33+00:00"
updated_at: "2026-10-25T12:38:50+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-98944", "first_seen_at": "2026-10-23T21:57:33+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-98944", "first_seen_at": "2026-10-25T12:38:50+00:00"}]
---

# Linux kernel: Steam HID controller registration cleanup fixes leftover battery object

A refactor of the Linux kernel's Steam HID driver streamlines controller registration and fixes a missed unregistration of the battery power_supply object when later steps fail. The sources describe a reliability fix that leaves a stale power supply object after the Steam controller driver is torn down, and do not describe an attacker gaining access.

_Summary, check and fix written by a model from the sources; labelled as such._

## Timeline

- 2026-10-23T21:57:33+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-98944
- 2026-10-25T12:38:50+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-98944

## From the sources

In the Linux kernel, the following vulnerability has been resolved:

HID: steam: Refactor registration

This refactors and simplifies the registration/unregistration flow. Since
we now only perform registration when the client isn't opened anymore, the
logic for handling that can be removed, and the rest of the function
streamlined.

We also remove the previous assumption that we have a serial number to show
we're registered, replacing it with a single purpose boolean.

In a previous refactor the code for unregistering a battery if later
registration steps failed was accidentally left out. As a result, a
lingering power_supply object could get left over after the steam object
was torn down. This is also fixed here.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
