CVE-2026-74506 in Linux정보

요약

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

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

afs: 메시지 전송 시 UAF(Use-After-Free) 수정

`afs_make_call()` 함수 내에서 비동기 호출 수신 및 소멸 간에 경합 조건(race condition)이 발생합니다. `call->write_iter`(FS.StoreData의 데이터 콘텐츠를 지정하는 데 사용됨)가 설정되지 않은 호출이 디스패치되면, 첫 번째 `rxrpc_kernel_send_data()` 호출은 msghdr에서 MSG_MORE 플래그를 설정하지 않습니다.

`rxrpc_send_data()`가 마지막 요청 패킷을 큐에 넣으면 응답이 언제든지 도착하여 호출 완료 및 put 작업을 유발할 수 있습니다. 그러나 `afs_make_call()`은 다시 해당 호출을 확인하여 ->write_iter 처리 여부를 판단하려 합니다. 이는 호출 자체의 참조(reference)를 보유하고 있을 때만 허용되는 작업입니다. 동기식 호출의 경우 이것이 성립하지만, FS.FetchData와 같은 비동기 호출에는 적용되지 않습니다.

또한 `afs_make_call()` 내에서 잠재적인 UAF가 발생할 수 있습니다. 이는 비동기 호출이 전송되지만 어떤 이유로든(예: 서버에서 중단됨) 실패하는 경우에 해당합니다. 문제는 `rxrpc` 전송 실패 시 `afs_make_call()`이 호출을 중단하려고 시도하지만, `rxrpc`로부터의 비동기 알림으로 인해 이미 afs_call이 해제되었을 수 있다는 점입니다.

generic/650 테스트는 CPU를 무작위로 오프라인 상태로 전환하며 상당한 지연을 유발할 수 있습니다. 이로 인해 `afs_make_call()`이 call->write_iter를 확인하기 전에 호출 객체가 할당 해제되어 UAF가 발생합니다(KASAN으로 포착됨).

BUG: KASAN: slab-use-after-free in afs_make_call+0x1c90/0x2210 [kafs]
Read of size 8 at addr ffff888035e050e8 by task fsstress/1409

이 문제를 해결하기 위해 `afs_make_op_call()` 함수가 호출자의 참조를 전달한 후 `afs_make_call()` 반환 시 참조를 해제하는 대신, op->call에 자체 참조를 부여하도록 수정했습니다.

이를 통해 `afs_make_call()` 함수는 이제 더 이상 호출 객체에 대한 자신의 참조를 잃지 않게 됩니다.

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

출처

Want to know what is going to be exploited?

We predict KEV entries!