Linux Kernel 3.10.28/3.12.9/3.13.1 net/compat.c compat_sys_recvmmsg 권한 상승

CVSS 메타 임시 점수현재 익스플로잇 가격 (≈)CTI 관심 점수
7.0$0-$5k0.00

요약정보

취약점이 비판적인로 분류되어 Linux Kernel 3.10.28/3.12.9/3.13.1에서 발견되었습니다. 해당 사항은 함수 compat_sys_recvmmsg 파일 net/compat.c의에 해당합니다. 이 조작 권한 상승을(를) 발생시킵니다. 이 취약점은 CVE-2014-0038로 거래됩니다. 공격은 로컬 환경에서 접근해야 합니다. 또한, 익스플로잇이 존재합니다. 이 문제를 수정하기 위해 패치를 적용하는 것이 좋습니다.

세부정보

취약점이 비판적인로 분류되어 Linux Kernel 3.10.28/3.12.9/3.13.1에서 발견되었습니다. 해당 사항은 함수 compat_sys_recvmmsg 파일 net/compat.c의에 해당합니다. 이 조작 권한 상승을(를) 발생시킵니다. CWE를 사용하여 문제를 선언하면 CWE-20로 연결됩니다. 2014. 01. 31. 에 버그가 발견되었습니다. 이 취약성은 공개되었습니다 2014. 01. 28. pageexec에 의해 Bug 338594로 Mailinglist Post로 (oss-sec). 권고는 seclists.org에서 다운로드용으로 공유되었습니다.

이 취약점은 CVE-2014-0038로 거래됩니다. 2013. 12. 03. 에 CVE가 할당되었습니다. 공격은 로컬 환경에서 접근해야 합니다. 기술적 정보가 있습니다. 이 취약점은 평균보다 더 많이 알려져 있습니다. 또한, 익스플로잇이 존재합니다. 해당 익스플로잇이 공개되어 악용될 수 있습니다. 현재 시점에서 익스플로잇의 가격은 대략 USD $0-$5k 일 수 있습니다. 이 취약점은 다음 코드 부분으로 인해 발생했습니다:

asmlinkage long compat_sys_recvmmsg(int fd,
   struct compat_mmsghdr __user *mmsg,
   unsigned int vlen, unsigned int flags,
   struct compat_timespec __user *timeout)
{
   int datagrams;
   struct timespec ktspec;

if (flags & MSG_CMSG_COMPAT) return -EINVAL;

if (COMPAT_USE_64BIT_TIME) return __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen, flags | MSG_CMSG_COMPAT, (struct timespec *) timeout);

권고문에서는 다음과 같이 지적하고 있습니다:
The timeout pointer parameter is provided by userland (hence the __user annotation) but for x32 syscalls it's simply cast to a kernel pointer and is passed to __sys_recvmmsg which will eventually directly dereference it for both reading and writing. Other callers to __sys_recvmmsg properly copy from userland to the kernel first. The impact is a sort of arbitrary kernel write-where-what primitive by unprivileged users where the to-be-written area must contain valid timespec data initially (the first 64 bit long field must be positive and the second one must be < 1G).

고기능성로 지정됩니다. exploit-db.com에서 익스플로잇이 공유되어 다운로드가 가능합니다. 0-day 당시의 지하 추정가는 약 $5k-$25k였습니다. Nessus에서 72591 플러그인 ID를 가진 플러그인을 제공합니다. Slackware Local Security Checks 패밀리에 속합니다. 플러그인은 l 타입 컨텍스트에서 실행되고 있습니다. 0 포트에 의존하고 있습니다. 상용 취약점 스캐너 Qualys는 이 문제를 166761 플러그인으로 테스트할 수 있습니다 (OpenSuSE Security Update for Kernel (openSUSE-SU-2014:0204-1)).

버그 수정은 seclists.org에서 다운로드할 수 있습니다. 이 문제를 수정하기 위해 패치를 적용하는 것이 좋습니다. 취약점이 공개된 이후 4 주 후에 가능한 대응 방안이 공개되었습니다. 아래 소스 코드로 해당 취약점이 해결됩니다:

--- a/net/compat.c  2014-01-20 12:36:54.372997752 +0100
+++ b/net/compat.c      2014-01-28 02:06:59.265506171 +0100
@ -780,22 +780,25 @
    if (flags & MSG_CMSG_COMPAT)
       return -EINVAL;

- if (COMPAT_USE_64BIT_TIME) - return __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen, - flags | MSG_CMSG_COMPAT, - (struct timespec *) timeout); - if (timeout == NULL) return __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen, flags | MSG_CMSG_COMPAT, NULL);

- if (get_compat_timespec(&ktspec, timeout)) + if (COMPAT_USE_64BIT_TIME) { + if (copy_from_user(&ktspec, timeout, sizeof(ktspec))) + return -EFAULT; + } else if (get_compat_timespec(&ktspec, timeout)) return -EFAULT;

datagrams = __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen, flags | MSG_CMSG_COMPAT, &ktspec); - if (datagrams > 0 && put_compat_timespec(&ktspec, timeout)) - datagrams = -EFAULT; + if (datagrams > 0) { + if (COMPAT_USE_64BIT_TIME) { + if (copy_to_user(timeout, &ktspec, sizeof(ktspec))) + datagrams = -EFAULT; + } else if (put_compat_timespec(&ktspec, timeout)) + datagrams = -EFAULT; + }

return datagrams; }

권고문에 다음과 같은 내용이 있습니다:
The bug was introduced by commit http://git.kernel.org/linus/ee4fa23c4b (other uses of COMPAT_USE_64BIT_TIME seem fine) and should affect all kernels since 3.4 (and perhaps vendor kernels if they backported x32 support along with this code). Note that CONFIG_X86_X32_ABI gets enabled at build time and only if CONFIG_X86_X32 is enabled and ld can build x32 executables.

이 취약점은 다음의 다른 취약점 데이터베이스에도 문서화되어 있습니다: SecurityFocus (BID 64781), Secunia (SA56549) , Tenable (72591).

제품정보

유형

공급 업체

이름

버전

특허

웹사이트

CPE 2.3정보

CPE 2.2정보

동영상

CVSSv4정보

VulDB 벡터: 🔍
VulDB 신뢰성: 🔍

CVSSv3정보

VulDB 메타 베이스 점수: 7.8
VulDB 메타 임시 점수: 7.0

VulDB 기본 점수: 7.8
VulDB 임시 점수: 7.0
VulDB 벡터: 🔍
VulDB 신뢰성: 🔍

CVSSv2정보

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
벡터복잡성인증기밀성진실성유효성
잠금 해제하다잠금 해제하다잠금 해제하다잠금 해제하다잠금 해제하다잠금 해제하다
잠금 해제하다잠금 해제하다잠금 해제하다잠금 해제하다잠금 해제하다잠금 해제하다
잠금 해제하다잠금 해제하다잠금 해제하다잠금 해제하다잠금 해제하다잠금 해제하다

VulDB 기본 점수: 🔍
VulDB 임시 점수: 🔍
VulDB 신뢰성: 🔍

NVD 기본 점수: 🔍

악용정보

수업: 권한 상승
CWE: CWE-20
CAPEC: 🔍
ATT&CK: 🔍

물리적인: 부분적으로
현지: 네
원격: 아니요

유효성: 🔍
접근: 공개
상태: 고기능성
저자: pageexec
프로그래밍 언어: 🔍
다운로드: 🔍

EPSS Score: 🔍
EPSS Percentile: 🔍

가격 예측: 🔍
현재 가격 추정: 🔍

0-Day잠금 해제하다잠금 해제하다잠금 해제하다잠금 해제하다
오늘잠금 해제하다잠금 해제하다잠금 해제하다잠금 해제하다

Nessus ID: 72591
Nessus 이름: Slackware 14.1 : kernel (SSA:2014-050-03)
Nessus 파일: 🔍
Nessus 위험: 🔍
Nessus 가족: 🔍
Nessus Context: 🔍
Nessus Port: 🔍

OpenVAS ID: 850566
OpenVAS 이름: SuSE Update for kernel openSUSE-SU-2014:0204-1 (kernel)
OpenVAS 파일: 🔍
OpenVAS 가족: 🔍

Qualys ID: 🔍
Qualys 이름: 🔍

MetaSploit ID: recvmmsg_priv_esc.rb
MetaSploit 이름: Linux Kernel recvmmsg Privilege Escalation
MetaSploit 파일: 🔍

Exploit-DB: 🔍

위협 인텔리전스정보

관심: 🔍
활성 배우: 🔍
활성 APT 그룹: 🔍

대책정보

추천: 패치
상태: 🔍

반응 시간: 🔍
0일 시간: 🔍
노출 시간: 🔍
익스플로잇 지연 시간: 🔍

패치: seclists.org

타임라인정보

2013. 12. 03. 🔍
2013. 12. 28. +25 날 🔍
2014. 01. 28. +31 날 🔍
2014. 01. 28. +0 날 🔍
2014. 01. 31. +3 날 🔍
2014. 02. 03. +3 날 🔍
2014. 02. 06. +3 날 🔍
2014. 02. 20. +14 날 🔍
2014. 02. 20. +0 날 🔍
2024. 11. 22. +3928 날 🔍

출처정보

공급 업체: kernel.org

권고: Bug 338594
연구원: pageexec
상태: 확인됨
확인: 🔍

CVE: CVE-2014-0038 (🔍)
GCVE (CVE): GCVE-0-2014-0038
GCVE (VulDB): GCVE-100-12137

OVAL: 🔍

SecurityFocus: 64781 - Linux Kernel 'fpu-internal.h' Local Denial of Service Vulnerability
Secunia: 56549
OSVDB: 102749 - CVE-2014-0038 - Linux - Privilege Escalation Issue

scip Labs: https://www.scip.ch/en/?labs.20161013
또한 보십시오: 🔍

항목정보

만들어진: 2014. 02. 03. AM 08:57
업데이트됨: 2024. 11. 22. PM 04:32
변경 사항: 2014. 02. 03. AM 08:57 (92), 2019. 07. 29. PM 08:37 (6), 2024. 11. 22. PM 04:32 (19)
완벽한: 🔍
Cache ID: 216:35D:103

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

논의

아직 댓글이 없습니다. 언어: ko + en.

댓글을 작성하려면 로그인하세요.

Want to know what is going to be exploited?

We predict KEV entries!