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

| CVSS 메타 임시 점수 | 현재 익스플로잇 가격 (≈) | CTI 관심 점수 |
|---|---|---|
| 7.0 | $0-$5k | 0.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).
제품
유형
공급 업체
이름
버전
특허
웹사이트
- 공급 업체: https://www.kernel.org/
CPE 2.3
CPE 2.2
동영상

CVSSv4
VulDB 벡터: 🔍VulDB 신뢰성: 🔍
CVSSv3
VulDB 메타 베이스 점수: 7.8VulDB 메타 임시 점수: 7.0
VulDB 기본 점수: 7.8
VulDB 임시 점수: 7.0
VulDB 벡터: 🔍
VulDB 신뢰성: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 벡터 | 복잡성 | 인증 | 기밀성 | 진실성 | 유효성 |
|---|---|---|---|---|---|
| 잠금 해제하다 | 잠금 해제하다 | 잠금 해제하다 | 잠금 해제하다 | 잠금 해제하다 | 잠금 해제하다 |
| 잠금 해제하다 | 잠금 해제하다 | 잠금 해제하다 | 잠금 해제하다 | 잠금 해제하다 | 잠금 해제하다 |
| 잠금 해제하다 | 잠금 해제하다 | 잠금 해제하다 | 잠금 해제하다 | 잠금 해제하다 | 잠금 해제하다 |
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. 🔍
2014. 01. 28. 🔍
2014. 01. 28. 🔍
2014. 01. 31. 🔍
2014. 02. 03. 🔍
2014. 02. 06. 🔍
2014. 02. 20. 🔍
2014. 02. 20. 🔍
2024. 11. 22. 🔍
출처
공급 업체: 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.
댓글을 작성하려면 로그인하세요.