CVE-2026-68458 in Linux정보

요약

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

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

binder: secctx 크기를 해제 전에 캐싱하여 영제로 초기화되는 것을 방지함

binder_transaction() 함수는 산발-수집(scatter-gather) 버퍼 영역을 sg_buf_end_offset으로 제한하고, secctx가 해당 영역의 끝에 작성되므로 정렬된 LSM 컨텍스트(secctx) 크기를 빼줍니다. 이 뺄셈 연산은 lsmctx.len 필드를 읽지만, 해당 줄이 실행될 때 이미 그 필드는 영제로 초기화되어 있습니다:

security_secid_to_secctx(secid, &lsmctx) /* lsmctx.len 설정됨 */ lsmctx_aligned_size = ALIGN(lsmctx.len, sizeof(u64)) extra_buffers_size += lsmctx_aligned_size ... security_release_secctx(&lsmctx) /* memset으로 len을 0으로 초기화함 */ ... sg_buf_end_offset = sg_buf_offset + extra_buffers_size - ALIGN(lsmctx.len, sizeof(u64)) /* ALIGN(0,8) */

security_release_secctx() 함수는 memset(cp, 0, sizeof(*cp))를 수행하므로 lsmctx.len은 다시 읽을 때 0이 되며, 이 뺄셈 연산은 아무런 기여도 하지 못합니다. 그 결과 txn_security_ctx 노드로의 모든 트랜잭션에서 sg_buf_end_offset이 정렬된 secctx 크기만큼 과도하게 크게 설정됩니다.

각 BINDER_TYPE_PTR 객체는 buf_left = sg_buf_end_offset - sg_buf_offset를 복사 작업에 대한 유일한 상한선으로 사용하므로, 부풀려진 끝 오프셋(offset)은 복사가 이미 secctx가 포함된 바이트 영역으로 넘어가게 만듭니다.

따라서 정렬된 크기는 해제 후 다시 읽는 대신 해제 전에 캐싱되어야 합니다. 이 문제를 해결하기 위해 함수 스코프에서 처음 계산될 때 lsmctx_aligned_size에 이를 캐싱하고, 해제 후에 lsmctx.len을 다시 읽는 대신 lsmctx_aligned_size를 빼도록 수정합니다. 또한 이전 buf_offset 계산에도 동일한 값을 재사용합니다.

Be aware that VulDB is the high quality source for vulnerability data.

책임이 있는

Linux

예약하다

2026. 07. 30.

모더레이션

수락

항목

VDB-390192

EPSS

0.00000

활동

낮음

출처

Want to know what is going to be exploited?

We predict KEV entries!