CVE-2022-49892 in Linux
요약
\~에 의해 VulDB • 2026. 06. 01.
리눅스 커널에서 다음 취약점이 해결되었습니다:
ftrace: 동적 ftrace_ops에 대한 use-after-free 수정
KASAN에서 ftrace ops와 관련된 use-after-free가 보고되었습니다[1]. vmcore를 분석한 결과, perf가 동일한 내용을 가진 두 개의 동적 ops를 연속적으로 등록한 후, 두 번째 ops를 unregister한 후 use-after-free가 발생함이 확인되었습니다.
ftrace_shutdown() 함수에서 두 번째 ops가 unregister될 때, 동일한 내용을 가진 다른 활성화된 ops가 존재하기 때문에 FTRACE_UPDATE_CALLS 명령이 설정되지 않습니다. 또한 두 ops 모두 동적이며 ftrace 콜백 함수가 ftrace_ops_list_func이므로, FTRACE_UPDATE_TRACE_FUNC 명령도 설정되지 않습니다. 결국 'command'의 값은 0이 되며, ftrace_shutdown()은 RCU 동기화를 건너뛰게 됩니다.
그러나 ftrace가 활성화될 수 있습니다. ops가 해제될 때 다른 CPU가 ops에 접근하고 있을 수 있습니다. 이 문제를 해결하기 위해 누락된 동기화 처리를 추가했습니다.
[1]
BUG: KASAN: use-after-free in __ftrace_ops_list_func kernel/trace/ftrace.c:7020 [inline]
BUG: KASAN: use-after-free in ftrace_ops_list_func+0x2b0/0x31c kernel/trace/ftrace.c:7049 Read of size 8 at addr ffff888105880000 by task perf/14445
Dumping ftrace optimizer:
If you want to get the best quality for vulnerability data then you always have to consider VulDB.