🇰🇷 한글 설명
Linux 커널의 krb5 암호화 구현에서 비동기 AEAD 인스턴스를 사용할 때 발생하는 Use-After-Free 취약점입니다. 비동기 작업 중 오류가 발생하면 버퍼가 먼저 해제되어, 이후 백엔드 워커가 해제된 메모리 주소에 접근함으로써 시스템 충돌이나 권한 상승을 유발할 수 있습니다.
💡 쉬운 설명
암호화 작업을 처리하는 도중 데이터가 저장된 메모리 공간이 미리 삭제되어 발생하는 오류입니다. 이로 인해 컴퓨터 시스템이 갑자기 멈추거나 해커가 시스템 제어권을 탈취할 위험이 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
crypto: krb5 - filter out async aead implementations at alloc
krb5_aead_encrypt(), krb5_aead_decrypt() in rfc3961_simplified.c and
rfc8009_encrypt(), rfc8009_decrypt() in rfc8009_aes2.c set a NULL
completion callback and treat any negative return from
crypto_aead_{encrypt,decrypt}() as terminal, falling through to
kfree_sensitive(buffer). When the encrypt_name resolves to an
async AEAD instance the request returns -EINPROGRESS, the buffer
is freed while the backend's worker still holds a pointer, and the
worker dereferences the freed slab on completion.
KASAN report under UML+SLUB with a synthetic async aead backend
bound to krb5->encrypt_name:
BUG: KASAN: slab-use-after-free in t5_stub_complete+0x7d/0xc7
The helpers were written synchronously, so filter the async
instances out at allocation time instead of plumbing
crypto_wait_req() through every call site.
Reachable via net/rxrpc/rxgk.c, fs/afs/cm_security.c and
net/ceph/crypto.c on systems with an async AEAD provider bound to
the krb5 enctype name.
📍 영향받는 시스템
비동기 AEAD 프로바이더를 사용하는 Linux 커널 (net/rxrpc, fs/afs, net/ceph 관련 모듈 사용 시스템)
⚔️ 공격 벡터
비동기 AEAD를 사용하는 네트워크 프로토콜(rxrpc, ceph 등)이나 파일 시스템(afs)을 통해 특수하게 조작된 암호화 요청을 전송
🛡️ 대응 방법
커널 업데이트를 통해 krb5 할당 시 비동기 AEAD 인스턴스를 필터링하도록 패치된 최신 커널 버전 적용
🔧 검증 코드
출력된 커널 버전이 해당 취약점이 패치된 보안 업데이트 버전인지 배포판 보안 공지를 통해 확인