CVE-2026-43324 in Linux정보

요약

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

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

USB: dummy-hcd: 인터럽트 동기화 오류 수정

이 수정은 dummy-hcd 드라이버의 동기화 관련 오류를 해결합니다. 이 오류는 다소 복잡한 역사를 가지고 있습니다. 동기화 메커니즘은 커밋 7dbd8f4cabd9("USB: dummy-hcd: 잘못된 동기화 변경 사항 수정")에서 도입되었으며, 이는 에뮬레이션된 "인터럽트 활성화" 플래그와 synchronize_irq()를 에뮬레이션하는 코드(모든 현재 핸들러 콜백이 반환될 때까지 대기)를 추가했습니다.

그러나 에뮬레이션된 인터럽트 비활성화가 너무 늦게 발생했습니다. 이는 핸들러 콜백 루틴을 포함하는 드라이버가 언바운드(unbound)되었으며 더 이상 콜백이 발생하지 않을 것이라고 통지받은 이후의 시점이었습니다. 커밋 4a5d797a9f9c("usb: gadget: dummy_hcd: gadget_setup에서 GPF 수정")은 dummy_stop()에서 dummy_pullup()으로 synchronize_irq() 에뮬레이션 코드를 이동하여 이를 수정하려고 시도했습니다. dummy_pullup()은 언바운드 콜백 전에 실행됩니다.

그러나 여전히 경합 조건(race condition)이 존재했습니다. 에뮬레이션된 인터럽트 비활성화가 여전히 너무 늦게 발생했기 때문입니다. 이 코드를 dummy_pullup()으로 이동할 수 없었는데, 그 이유는 해당 루틴이 임박한 언바운드 외에도 다른 이유로 호출될 수 있기 때문입니다. 따라서 커밋 7dc0c55e9f30("USB: UDC 코어: udc_async_callbacks gadet 연산 추가")과 04145a03db9d("USB: UDC: dummy-hcd에서 udc_async_callbacks 구현")은 UDC 코어가 에뮬레이션된 인터럽트와 해당 콜백을 정확히 언제 비활성화해야 하는지를 dummy-hcd에 알릴 수 있는 API를 추가했습니다.

이로써 현재 상태에 도달하게 되었으나, 여전히 잘못되었습니다. 에뮬레이션된 synchronize_irq()가 에뮬레이션된 인터럽트 비활성화 이전에 발생하기 때문입니다. 이는 synchronize_irq() 에뮬레이션이 실행된 이후에도 더 많은 에뮬레이션된 인터럽트가 발생할 수 있음을 의미하므로, gadet 드라이버가 언바운드될 때 콜백 핸들러가 실행 중일 가능성이 생깁니다.

이를 수정하기 위해 synchronize_irq() 에뮬레이션 코드를 다시 이동해야 합니다. 에뮬레이션된 인터럽트 요청을 활성화 및 비활성화하는 dummy_udc_async_callbacks() 루틴으로 이동합니다. 이제 동기화는 에뮬레이션된 인터럽트가 비활성화된 직후에 실행되며, 이는 올바른 위치입니다.

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

책임이 있는

Linux

예약하다

2026. 05. 01.

모더레이션

수락

항목

VDB-362106

EPSS

0.00013

출처

Want to know what is going to be exploited?

We predict KEV entries!