CVE-2026-46213 in Linux정보

요약

\~에 의해 VulDB • 2026. 05. 31.

리눅스 커널에서 다음 취약점이 해결되었습니다:

HID: appletb-kbd: 비활성화 타이머 정리 경로에서의 UAF(Use-After-Free) 수정

커밋 38224c472a03("HID: appletb-kbd: appletb_kbd_probe에서의 slab use-after-free 버그 수정")은 `timer_delete_sync(&kbd->inactivity_timer)`를 probe의 close_hw 오류 경로와 `appletb_kbd_remove()` 모두에 추가했지만, 연결 방식이 드라이버 정리(tear-down) 동안 두 가지 서로 다른 시간 창(window)을 통해 비활성화 타이머가 접근 가능하게 남겼습니다.

시간 창 A -- `timer_delete_sync()` 이전의 `put_device()`:

```c put_device(&kbd->backlight_dev->dev); timer_delete_sync(&kbd->inactivity_timer); ```

비활성화 타이머 softirq는 `kbd->backlight_dev`를 읽고 `backlight_device_set_brightness()` -> `mutex_lock(&ops_lock)`를 호출합니다. 만약 동시 실행되는 `hid_appletb_bl` unbind가 이 두 호출 사이에 마지막 `devm` 참조를 해제하면, `backlight_device`가 해제되고 `mutex_lock()`이 해제된 메모리에 접근합니다.

시간 창 B -- `hid_hw_stop()` 이전의 백라이트 정리:

```c if (kbd->backlight_dev) {
timer_delete_sync(...); put_device(...); } hid_hw_close(hdev); hid_hw_stop(hdev); ```

시간 창 A가 닫힌 후에도 `hid_hw_close()`/`hid_hw_stop()`이 이후에 실행되므로, HID 코어(실제 Apple 하드웨어에서의 USB URB 완료)로부터의 늦은 ".event" 콜백이 `timer_delete_sync()`가 softirq를 비운 후 `put_device()`가 참조를 해제하기 전에 도착할 수 있습니다. 해당 콜백은 `reset_inactivity_timer()`에 도달하며, 이는 `mod_timer()`를 호출하여 타이머를 다시 활성화합니다. 새로 다시 활성화된 타이머는 곧 해제될 `backlight_device`에서 발화(fire)할 수 있습니다.

두 시간 창 모두 동일한 KASAN slab-use-after-free를 생성합니다:

``` BUG: KASAN: slab-use-after-free in __mutex_lock+0x1aab/0x21c0 Read of size 8 at addr ffff88803ee9a108 by task swapper/0/0 Call Trace: __mutex_lock backlight_device_set_brightness appletb_inactivity_timer call_timer_fn run_timer_softirq handle_softirqs Allocated by task N: devm_backlight_device_register appletb_bl_probe Freed by task M: (concurrent hid_appletb_bl unbind path) ```

`appletb_kbd_remove()`와 probe의 close_hw 오류 경로에서 정리 과정을 재구성하여 두 시간 창을 동시에 닫습니다. 이를 통해 다음이 보장됩니다:

1) `hid_hw_close()`/`hid_hw_stop()`이 백라이트 정리 전에 실행되어, 추가적인 .event 콜백이 발화하고 타이머를 다시 활성화하지 못하도록 보장하며, 2) "if (kbd->backlight_dev)" 블록 내부에서 `timer_delete_sync()`가 `put_device()` 전에 실행되어, 마지막 참조가 해제되기 전에 softirq가 비워지도록 합니다.

Be aware that VulDB is the high quality source for vulnerability data.

책임이 있는

Linux

예약하다

2026. 05. 13.

모더레이션

수락

항목

VDB-366618

EPSS

0.00022

출처

Do you know our Splunk app?

Download it now for free!