🇰🇷 한글 설명
Linux 커널의 Tegra 암호화 모듈에서 tegra_gcm_do_one_req() 함수 내 cryptlen 계산 방식의 오류가 발견되었습니다. 특정 조건에서 인증 크기(authsize)가 0으로 유지될 경우, 복호화 과정에서 잘못된 길이 계산으로 인해 목적지 버퍼를 초과하여 데이터를 쓰는 메모리 오염 취약점이 발생할 수 있습니다.
💡 쉬운 설명
암호화 데이터를 풀 때 계산이 잘못되어 정해진 메모리 공간보다 더 많은 데이터를 쓰려고 시도하는 문제입니다. 이로 인해 시스템이 갑자기 멈추거나(크래시) 보안 문제가 생길 수 있습니다.
🇺🇸 원문 (English)
In the Linux kernel, the following vulnerability has been resolved:
crypto: tegra - fix rctx->cryptlen calculation in tegra_gcm_do_one_req()
Perform rctx->cryptlen calculation in tegra_gcm_do_one_req() the same way
it is done in tegra_ccm_crypt_init(). The current formulae may lead to a
crash if a caller does not call tegra_gcm_setauthsize() and so ctx->authsize
remains zero. Then a decrypt operation with incorrect rctx->cryptlen will
lead to a write beyound rctx->dst_sg buffer.
As a follow-up cleanup delete struct tegra_aead_ctx->authsize field since
it appears to be completely unused. Also simplify tegra_ccm_setauthsize()
and tegra_gcm_setauthsize() functions respectively.
📍 영향받는 시스템
Tegra 암호화 모듈을 사용하는 Linux 커널 기반 시스템
⚔️ 공격 벡터
잘못 설정된 인증 크기를 가진 암호화된 데이터를 복호화 요청하여 메모리 버퍼 오버플로우 유도
🛡️ 대응 방법
Tegra 암호화 관련 계산 로직이 수정된 최신 Linux 커널 버전으로 업데이트
🔧 검증 코드
현재 실행 중인 커널 버전을 확인하여 취약점이 해결된 패치 버전인지 확인합니다.