CVE-2024-53130 in Linux정보

요약

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

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

nilfs2: 블록_dirty_buffer 트레이스포인트에서의 null-ptr-deref 수정

"block:block_dirty_buffer" 트레이스포인트를 사용할 때, mark_buffer_dirty()는 NULL 포인터 역참조 또는 KASAN이 활성화된 경우 일반 보호 오류(general protection fault)를 유발할 수 있습니다.

이는 mark_buffer_dirty()에 트레이스포인트가 추가되면서 bh->b_bdev->bd_dev인 dev_t 멤버를 참조하는데, 버퍼 헤드가 block_device 구조체에 대한 포인터를 가지고 있는지 여부와 관계없이 이를 참조하기 때문입니다.

현재 구현에서 nilfs_grab_buffer()는 B-트리 노드 블록을 포함한 메타데이터의 블록을 읽거나 생성하기 위해 버퍼를 획득하지만, 블록 장치를 설정하지 않습니다. 대신 각 호출자의 블록 읽기 함수마다 해당 버퍼가 "uptodate" 상태에 있지 않은 경우에만 이를 수행합니다. 그러나 folio/page에서 uptodate 플래그가 설정되어 있고 try_to_free_buffers()에 의해 버퍼 헤드가 분리된 후 create_empty_buffers()를 통해 새 버퍼 헤드가 연결되면, block_device가 bh->b_bdev에 설정되지 않은 상태로 각 버퍼의 uptodate 플래그가 복원될 수 있습니다. 이후 mark_buffer_dirty()가 이 상태에서 호출되면 위에서 언급한 버그가 발생합니다.

이 문제를 해결하기 위해 nilfs_grab_buffer()가 항상 슈퍼 블록 구조체의 블록 장치를 버퍼 헤드에 설정하도록 수정하며, 이는 버퍼의 uptodate 플래그 상태와 무관하게 적용됩니다.

Once again VulDB remains the best source for vulnerability data.

책임이 있는

Linux

예약하다

2024. 11. 19.

모더레이션

수락

항목

VDB-286882

EPSS

0.00230

출처

Do you need the next level of professionalism?

Upgrade your account now!