CVE-2026-80672 in Linux정보

요약

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

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

ntfs: restart-area 길이 검사 시 u16 절단(truncation) 수정

`ntfs_check_restart_area()`는 $LogFile의 restart area와 그 뒤에 이어지는 log client record 배열이 시스템 페이지 크기 내에 맞는지 검증합니다.

u16 ra_ofs, ra_len, ca_ofs; ... ra_len = ca_ofs + le16_to_cpu(ra->log_clients) * sizeof(struct log_client_record); if (ra_ofs + ra_len > le32_to_cpu(rp->system_page_size) || ...) return false;

`ra_len`은 u16 타입이지만, 우변의 계산 결과는 size_t로 수행됩니다 (`sizeof(struct log_client_record)`는 160임). `ca_ofs`와 `log_clients` 모두 디스크상의 restart area에서 직접 가져옵니다. 디스크 상의 `log_clients` 값이 410인 경우, 곱셈 결과 410 * 160 = 65600가 되며, 여기에 `ca_ofs`를 더하여 u16 타입인 `ra_len`에 저장하면 모듈로 65536 절단(truncation)이 발생합니다(예: `ca_ofs`가 64일 경우 `ra_len`은 128이 됨). 따라서 클라이언트 배열(`log_clients`로 설명됨)이 페이지를 훨씬 벗어나 있음에도 불구하고 "페이지 내에 맞음" 검사가 통과됩니다.

그 후 `ntfs_check_log_client_array()`는 디스크 상의 `log_clients` 카운트에 의해서만 제한되는 배열을 순회합니다:

cr = ca + idx; if (cr->prev_client != LOGFILE_NO_CLIENT) ...

`log_clients`가 410인 경우, 이 코드는 `ca + 409 * 160`, 즉 `kvzalloc(system_page_size)`로 할당된 restart-page 버퍼보다 약 64 KiB 더 떨어진 지점까지 레코드를 역참조합니다. 이는 공격자가 제어할 수 있는 범위를 벗어난 읽기(out-of-bounds read)이며, 조작된 NTFS 이미지를 마운트할 때(마운트 시 `load_and_check_logfile()` 호출 시) 접근 가능합니다. 이것은 ntfs-3g 사용자 공간 드라이버에서는 수정되었으나 부활한 클래식 드라이버에서는 아직 수정되지 않은 CVE-2022-30789의 커널 내부 대응 버전입니다.

기존 경계 검사가 절단으로 인해 무력화되는 대신 과다하게 큰 클라이언트 배열을 거부하도록 restart-area 길이를 u32로 계산합니다. 또한 `ra_ofs`와 `ca_ofs`도 u32로 확장합니다: 둘 다 디스크 상의 __le16 필드에서 로드되며 모든 비교는 이미 int/size_t로 승격되므로, 이는 결과에 영향을 주지 않으면서 선언을 균일하게 유지합니다.

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

책임이 있는

Linux

예약하다

2026. 08. 26.

모더레이션

수락

항목

VDB-396625

EPSS

0.00155

출처

Want to stay up to date on a daily basis?

Enable the mail alert feature now!