🔍 CVE-2023-52464

7.8
CVSS Score
HIGH
2024-02-23
2026-10-15 01:17
✅ 완료

🇰🇷 한글 설명

Linux 커널의 EDAC/thunderx 드라이버에서 strncat() 함수 사용 시 경계 검사 오류로 인해 발생하는 Out-of-bounds(OOB) 취약점입니다. 개발자가 strncat()의 동작 방식을 strlcat()과 혼동하여 버퍼 크기를 적절히 제한하지 않아 발생했습니다.

💡 쉬운 설명

데이터를 복사하는 과정에서 정해진 그릇의 크기를 넘어서는 데이터를 넣으려고 시도하는 오류입니다. 이로 인해 프로그램이 예기치 않게 종료되거나 시스템 보안이 뚫릴 위험이 있습니다.

🇺🇸 원문 (English)

In the Linux kernel, the following vulnerability has been resolved: EDAC/thunderx: Fix possible out-of-bounds string access Enabling -Wstringop-overflow globally exposes a warning for a common bug in the usage of strncat(): drivers/edac/thunderx_edac.c: In function 'thunderx_ocx_com_threaded_isr': drivers/edac/thunderx_edac.c:1136:17: error: 'strncat' specified bound 1024 equals destination size [-Werror=stringop-overflow=] 1136 | strncat(msg, other, OCX_MESSAGE_SIZE); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ... 1145 | strncat(msg, other, OCX_MESSAGE_SIZE); ... 1150 | strncat(msg, other, OCX_MESSAGE_SIZE); ... Apparently the author of this driver expected strncat() to behave the way that strlcat() does, which uses the size of the destination buffer as its third argument rather than the length of the source buffer. The result is that there is no check on the size of the allocated buffer. Change it to strlcat(). [ bp: Trim compiler output, fixup commit message. ]

📍 영향받는 시스템

Linux Kernel (EDAC/thunderx 드라이버를 사용하는 시스템)

⚔️ 공격 벡터

조작된 데이터를 통해 드라이버의 메모리 경계를 넘어서는 문자열을 입력하여 메모리 오염 유도

🛡️ 대응 방법

Linux 커널을 최신 보안 패치가 적용된 버전으로 업데이트하거나 해당 드라이버 코드를 strlcat()을 사용하도록 수정

🔧 검증 코드

출력된 커널 버전이 취약점이 해결된 최신 패치 버전인지 확인

Shell / Script
uname -r

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Linux Kernel