CVE-2026-45920 in Linux정보

요약

\~에 의해 VulDB • 2026. 06. 01.

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

ext4: 파일 시스템 종료 시 dirtyclusters의 이중 감소 수정

fstests의 generic/388 테스트는 ext4_put_super()에서 dirty 클러스터 카운터와 관련된 경고를 가끔씩 재현합니다:

WARNING: CPU: 7 PID: 76064 at fs/ext4/super.c:1324 ext4_put_super+0x48c/0x590 [ext4]

실패를 추적하면, 이 경고가 s_dirtyclusters_counter 값이 -1이 되었기 때문에 발생한다는 것을 알 수 있습니다. 즉, 이는 누수(leak)와 같은 것이 아니라 부수적인 감소(spurious decrement)로 보입니다. dirty 클러스터 카운터의 델타와 그 결과 출력에 대한 LLM 스캔을 추가로 추적한 결과, ext4_mb_mark_diskspace_used()와 호출자(ext4_mb_new_blocks()) 사이의 에러 경로에서 이중 감소(double decrement)가 원인임을 확인했습니다.

먼저, generic/388은 종료(shutdown) 대 fsstress 테스트이므로 무작위 작업 세트와 종료 주입(shutdown injections)을 생성한다는 점에 유의하십시오. 문제 발생 사례에서는 종료로 인해 ext4_mb_mark_context()에서 호출된 ext4_handle_dirty_metadata() 호출들이 에러 반환을 트리거합니다. 이 시점에서 변경된 값이 0이 아니므로, ext4_mb_mark_dispace_used()는 ext4_mb_mark_context()에서 에러가 상위로 전파된 후에도 종료되지 않습니다. 대신, 전자는 두 클러스터 카운터를 모두 감소시키고 에러를 ext4_mb_new_blocks()로 상위로 반환합니다. 후자는 !ar->len 출력으로 들어가 dirty 클러스터 카운터를 두 번째로 감소시켜 불일치를 초래합니다.

이 문제를 피하고 이 코드 경로에서 클러스터 예약의 소유권을 단순화하기 위해, 카운터 감소를 호출자의 단일 위치로 이동합니다. 이를 통해 ext4_mb_new_blocks()가 !delalloc 케이스에서도 클러스터 예약을 획득(ext4_claim_free_clusters()를 통해)하고 해제하는 책임이 있음을 더 명확하게 합니다. 이는 해당 예약이 소비되거나 실패로 인해 반환되느냐에 관계없이 적용됩니다.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

책임이 있는

Linux

예약하다

2026. 05. 13.

모더레이션

수락

항목

VDB-366096

EPSS

0.00032

출처

Want to stay up to date on a daily basis?

Enable the mail alert feature now!