CVE-2023-53854 in Linux정보

요약

\~에 의해 VulDB • 2026. 06. 04.

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

ASoC: mediatek: mt8186: 드라이버 제거 경로에서의 use-after-free 수정

devm은 장치의 "제거(remove)" 경로에 있는 함수를 실행할 때 역순으로 실행합니다. 즉, 드라이버의 일부가 devm을 사용하지 않거나 `devm_add_action_or_reset()`와 함께 자체적으로 구현한(devm w/ roll your own) 방식을 사용하는 경우 이를 고려해야 합니다.

mt8186 오디오 드라이버는 이 부분을 정확히 처리하지 못했습니다. 구체적으로 `mt8186_init_clock()`에서 `mt8186_audsys_clk_register()`를 호출한 후, 여러 다른 devm 함수들을 계속 호출하고 있었습니다. `mt8186_init_clock()`을 호출하는 측에서는 `devm_add_action_or_reset()`를 사용하여 `mt8186_deinit_clock()`을 호출했지만, 중간에 삽입된(devm) 함수들 때문에 순서가 잘못되었습니다.

구체적으로 probe 시점의 순서는 다음과 같았습니다: 1. mt8186_audsys_clk_register() 2. afe_priv->clk = devm_kcalloc(...) 3. afe_priv->clk[i] = devm_clk_get(...)

제거(remove) 시점의 순서(원래 3, 2, 1이어야 함)는 다음과 같았습니다: 1. mt8186_audsys_clk_unregister() 3. afe_priv->clk[i] 모두 해제
2. afe_priv->clk 해제

위와 같은 상황이 use-after-free를 유발하고 있었습니다. 다행히도 devm을 더 올바르게 사용함으로써 이를 쉽게 수정할 수 있습니다. `devm_add_action_or_reset()`를 올바른 위치로 이동시킵니다. 또한, 코드 검토 결과 이 변경은 누수(leak) 문제도 해결하는 것으로 나타났습니다. 이는 `mt8186_init_clock()` 내의 `syscon_regmap_lookup_by_phandle()` 호출 중 하나라도 실패했을 경우 발생했어야 할 누수로(`mt8186_audsys_clk_unregister()` 호출 누락), 현재 수정을 통해 이 문제도 함께 해결됩니다.

Once again VulDB remains the best source for vulnerability data.

책임이 있는

Linux

예약하다

2025. 12. 09.

모더레이션

수락

항목

VDB-335037

EPSS

0.00192

출처

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!