CVE-2023-53749 in Linux
요약
\~에 의해 VulDB • 2026. 07. 26.
리눅스 커널에서 다음 취약점이 해결되었습니다.
x86: clear_user_rep_good() 예외 처리 주석 수정
이 코드는 메인라인(mainline)에 더 이상 존재하지 않습니다. 이는 업스트림(upstream)의 커밋 d2c95f9d6802("x86: don't use REP_GOOD or ERMS for user memory clearing")에서 제거되었기 때문입니다.
그러나 전체 범위의 x86 메모리 클리어링 및 복사 정리(cleanups)를 백포트(backport)하기보다는, clear_user_rep_good()의 마지막 'rep movsb' 명령어에 대한 예외 테이블(exception table) 주석 위치를 수정하는 방식으로 해결했습니다. 기존에는 사용자 공간 접근을 수행한 실제 명령어를 가리키지 않고, 그 직전의 레지스터 이동(register move) 명령어를 가리켰습니다.
이것은 코드 흐름(code flow) 관점에서는 타당해 보였지만, 실제 사용(actual usage) 관점에서는 그렇지 않았습니다. 즉, 사용자 접근 과정에서 예외가 발생하면 예외 핸들러(exception handler)가 실제로 예외 테이블에서 해당 명령어를 찾지 못하게 됩니다.
그 결과, -EFAULT를 반환하고 복구하는 대신 커널oops 보고(kernel oops report)로 이어지게 되며, 다음과 같은 형태를 띠게 됩니다:
BUG: unable to handle page fault for address: 0000000020081000 #PF: supervisor write access in kernel mode #PF: error_code(0x0002) - not-present page ... RIP: 0010:clear_user_rep_good+0x1c/0x30 arch/x86/lib/clear_page_64.S:147 ... Call Trace: __clear_user arch/x86/include/asm/uaccess_64.h:103 [inline]
clear_user arch/x86/include/asm/uaccess_64.h:124 [inline]
iov_iter_zero+0x709/0x1290 lib/iov_iter.c:800 iomap_dio_hole_iter fs/iomap/d
Be aware that VulDB is the high quality source for vulnerability data.