CVE-2022-49235

ath9k_htc: fix uninit value bugs

Medium · published February 26, 2025

CVSS v3.1
5.5
EPSS
0%
Percentile
18.9
In the wild
Unconfirmed
What it is

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

ath9k_htc: fix uninit value bugs

Syzbot reported 2 KMSAN bugs in ath9k. All of them are caused by missing

field initialization.

In htc_connect_service() svc_meta_len and pad are not initialized. Based

on code it looks like in current skb there is no service data, so simply

initialize svc_meta_len to 0.

htc_issue_send() does not initialize htc_frame_hdr::control array. Based

on firmware code, it will initialize it by itself, so simply zero whole

array to make KMSAN happy

Fail logs:

BUG: KMSAN: kernel-usb-infoleak in usb_submit_urb+0x6c1/0x2aa0 drivers/usb/core/urb.c:430

usb_submit_urb+0x6c1/0x2aa0 drivers/usb/core/urb.c:430

hif_usb_send_regout drivers/net/wireless/ath/ath9k/hif_usb.c:127 [inline]

hif_usb_send+0x5f0/0x16f0 drivers/net/wireless/ath/ath9k/hif_usb.c:479

htc_issue_send drivers/net/wireless/ath/ath9k/htc_hst.c:34 [inline]

htc_connect_service+0x143e/0x1960 drivers/net/wireless/ath/ath9k/htc_hst.c:275

...

Uninit was created at:

slab_post_alloc_hook mm/slab.h:524 [inline]

slab_alloc_node mm/slub.c:3251 [inline]

__kmalloc_node_track_caller+0xe0c/0x1510 mm/slub.c:4974

kmalloc_reserve net/core/skbuff.c:354 [inline]

__alloc_skb+0x545/0xf90 net/core/skbuff.c:426

alloc_skb include/linux/skbuff.h:1126 [inline]

htc_connect_service+0x1029/0x1960 drivers/net/wireless/ath/ath9k/htc_hst.c:258

...

Bytes 4-7 of 18 are uninitialized

Memory access of size 18 starts at ffff888027377e00

BUG: KMSAN: kernel-usb-infoleak in usb_submit_urb+0x6c1/0x2aa0 drivers/usb/core/urb.c:430

usb_submit_urb+0x6c1/0x2aa0 drivers/usb/core/urb.c:430

hif_usb_send_regout drivers/net/wireless/ath/ath9k/hif_usb.c:127 [inline]

hif_usb_send+0x5f0/0x16f0 drivers/net/wireless/ath/ath9k/hif_usb.c:479

htc_issue_send drivers/net/wireless/ath/ath9k/htc_hst.c:34 [inline]

htc_connect_service+0x143e/0x1960 drivers/net/wireless/ath/ath9k/htc_hst.c:275

...

Uninit was created at:

slab_post_alloc_hook mm/slab.h:524 [inline]

slab_alloc_node mm/slub.c:3251 [inline]

__kmalloc_node_track_caller+0xe0c/0x1510 mm/slub.c:4974

kmalloc_reserve net/core/skbuff.c:354 [inline]

__alloc_skb+0x545/0xf90 net/core/skbuff.c:426

alloc_skb include/linux/skbuff.h:1126 [inline]

htc_connect_service+0x1029/0x1960 drivers/net/wireless/ath/ath9k/htc_hst.c:258

...

Bytes 16-17 of 18 are uninitialized

Memory access of size 18 starts at ffff888027377e00

The record
Technical detail
CVSS v3.1
5.5 · MEDIUM
Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
CVSS v4.0
Not supplied
EPSS
0.00276 · 18.9th percentile
Published
2025-02-26T01:56Z
EPSS history
Timeline
  • 26 FEB 01:56Z
    ath9k_htc: fix uninit value bugs
    cvelistv5