CVE-2026-43073 in Linux정보

요약

\~에 의해 VulDB • 2026. 05. 21.

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

x86-64: 오해의 소지가 있는 '__copy_user_nocache()' 함수 이름 변경

이 함수는 여러 가지 역사적 이유로 인해 명명 방식이 매우 부적절했습니다.

이 함수는 비캐시된 사용자 공간 복사(non-cached user copy)를 수행한다고 주장했지만, 실제로는 그 중 어느 것도 아닙니다. 이는 대상(디스틴이션)에는 비시계열 저장(non-temporal stores)을 사용하지만 소스에는 사용하지 않으며, 소스와 대상 모두에 대한 예외 처리(exception handling)를 수행하는 특수 목적의 메모리 복사 루틴입니다.

또한 정렬되지 않은(unaligned) 대상에서도 작동하지만, x86 아키텍처에서는 단어(word)와 쿼드워드(quadword) 단위에서만 비시계열 저장이 가능하므로, 시작 부분이나 끝 부분의 정렬되지 않은 영역은 비시계열 저장을 사용하지 않습니다.

예외 처리 기능이 포함되어 있기 때문에 이 함수는 사용자 공간 접근(user space accesses)에 사용될 수 있지만, 단독으로는 사용할 수 없습니다. 이를 위해서는 주변에 일반적인 "사용자 공간 접근 시작" 로직이 필요합니다.

일반적으로 사용자 공간 접근은 비시계열 대상이 아닌 소스(source)로 사용됩니다. 이것이 원래 의도했던 사용 사례로, 대상은 기계 검사 예외(machine check exceptions)를 동기적으로 포착하고 우아하게 처리하기 위해 비시계열 저장이 필요한 취약한 영구 메모리 대상이었습니다.

따라서 설명력이 부족한 이름이 붙게 된 것입니다: 하나의 사용 사례는 사용자 공간에서 비캐시된 커널 버퍼로 복사하는 것이었습니다. 그러나 기존 사용자들은 이러한 의도된 사용 사례와 성능 개선을 위해 단순히 이 함수를 사용한 몇몇 무작위 드라이버들이 혼합되어 있습니다.

그중 일부 무작위 드라이버들은 예외 처리에 전혀 신경 쓰지 않고 단순히 비시계열 대상을 위해, 이 인터페이스의 사용자 복사 버전(STAC/CLAC 포함)을 커널 복사용으로 적극적으로 오용했습니다.

이제 이를 반쯤 정상적인 상태로 만들기 위한 첫 번째 작은 단계로 함수 이름을 변경하고, 프로토타입을 더 일반적 형태로 수정합니다. 호출자가 적절한 변환을 수행하지 않은 한 사용자 포인터를 받지 않으며, 인수 크기는 전체 size_t가 됩니다(한 번에 4GB 이상을 실제로 복사하지는 않지만, 호출자에서 크기 인수를 묵시적으로 절단할 이유도 없습니다).

마지막으로 NTB 코드에서 이제 이름이 정상적으로 변경된 이 함수를 사용합니다. NTB 코드는 이 인터페이스가 실제로 사용자 복사 기능이 아님에도 불구하고, 이 인터페이스의 사용자 복사 버전(STAC/CLAC 포함)을 오용하고 있었습니다.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

책임이 있는

Linux

예약하다

2026. 05. 01.

모더레이션

수락

항목

VDB-361209

EPSS

0.00013

출처

Might our Artificial Intelligence support you?

Check our Alexa App!