CVE-2026-74677 in Linux정보

요약

\~에 의해 VulDB • 2026. 08. 22.

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

net: usb: ipheth: disconnect 시 carrier_work UAF 수정

ipheth_sndbulk_callback()은 모든 비(非) 제로 URB 상태에 대해 carrier-check 작업을 다시 예약합니다:

else schedule_delayed_work(&dev->carrier_work, 0);

이 작업은 인터페이스가 활성화되어 있는지와 아무런 관련이 없으므로, ipheth_close()에서 해당 작업이 이미 소진된 이후에도 다시 예약될 수 있으며, 이를 포함하는 private 영역을 가진 netdev가 해제(freed)될 때까지 활성 상태(armed)로 유지됩니다.

TX URB가 전송 중인 상태에서 장치가 분리(unplug)되면, ipheth_disconnect()는 unregister_netdev() -> ipheth_close() -> cancel_delayed_work_sync()를 통해 작업을 소진한 후 비로소 ipheth_kill_urbs()를 호출합니다. usb_kill_urb()는 비행 중이던 TX URB를 -ENOENT 상태로 완료(complete)하므로, ipheth_sndbulk_callback()은 소진 이후에 실행되어 carrier_work를 다시 예약합니다.

동일한 완료 이벤트는 인터페이스가 다운되지만 TX URB가 전송 중인 경우에도 작업을 재예약하며, 이로 인해 ipheth_carrier_check_work()는 1초마다 자신을 계속 큐잉하게 됩니다. unregister_netdev()는 이미 다운된 상태의 인터페이스에 대해 ipheth_close()를 호출하지 않으므로, 이후 분리 시 이를 소진하는 작업도 없습니다.

두 경우 모두에서 free_netdev()가 carrier_work가 아직 대기(pending) 중인 상태에서 netdev를 해제하며, ipheth_carrier_check_work()는 이미 해제된 메모리를 역참조(dereferences)합니다.

완료 이벤트를 추적하는 대신 작업을 인터페이스 상태에 연결하십시오: ipheth_close()에서 비활성화하고 ipheth_open()에서 활성화하여, 인터페이스가 활성(up)이 아닌 경우 URB 완료로 인한 schedule_delayed_work() 호출이 무효(no-op)가 되도록 합니다. disable_delayed_work_sync()는 또한 실행 중인 인스턴스를 대기(wait for)하므로, 이를 대체하는 cancel_delayed_work_sync()를 완전히 대신합니다. 작업은 ipheth_probe()에서 비활성화된 상태로 시작되므로, 첫 번째 open부터 enable/disable 카운트가 균형을 이룹니다.

dummy_hcd와 raw-gadget을 장치로 사용하여 linux-next(next-20260731) 환경의 KASAN 하에서 재현되었습니다(위 두 번째 경로를 구동: 인터페이스가 이미 다운되어 있으므로 unregister_netdev()는 ipheth_close()를 호출하지 않음): 패치 전 부트 15회 중 15회에서 __run_timers()에서 slab-use-after-free가 보고되었으며, 이는 ipheth_disconnect()에 의해 해제되고 queue_delayed_work_on()을 통해 ipheth_sndbulk_callback()에서 재예약되었습니다. 이 패치만으로 다른 커널에서 동일한 트리거를 실행한 결과 15회 중 0회의 오류가 발생했으며, carrier check는 open/close 사이클 전반에 걸쳐 정상적으로 작동합니다.

재현기(reproducer)에는 bulk OUT의 소진을 중단하는 USB 장치가 연결되어 있어야 하며, 링크 다운 및 분리 상태여야 하고 루트 권한으로 구동해야 합니다. 이는 특권 경계(privilege boundary)를 넘지는 않으며, 익스플로이트 원리(exploit primitive)는 개발되지 않았습니다.

0sec(https://0sec.ai)에서 발견함.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

책임이 있는

Linux

예약하다

2026. 08. 15.

모더레이션

수락

항목

VDB-394445

EPSS

0.00000

출처

Might our Artificial Intelligence support you?

Check our Alexa App!