Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/rockrid3r/cve-2023-5178
Privilege EscalationMemory ForensicsVulnerability AnalysisExploitationLearning & EducationBinary Exploitation
GitHubrockrid3r/cve-2023-5178

CVE-2023-5178

Exploit for CVE-2023-5178

저장소 보기
72년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2023-5178

다음에 대한 익스플로잇: CVE-2023-5178: NVMe-oF-TCP 취약점, 이는 손상된 Initialize Connection Request를 처리하는 과정에서 NVMe-oF-TCP 드라이버의 논리 오류입니다. 이로 인해 **kmalloc-96에서 레이스 조건에 의한 이중 해제(double-free)**가 발생하며, LPE를 획득하는 데 악용될 수 있습니다(아래 데모 참조).

익스플로잇은 6.5.0-9-generic 커널이 탑재된 Ubuntu 23.10(영향을 받는 최신 커널 버전)을 대상으로 합니다.

  • 이전 v6 커널로의 백포팅은 커널 심볼을 변경하고 롭체인(ropchain)을 조정하여 쉽게 수행할 수 있습니다.
  • 커널 버전 v5로의 백포팅은 약간의 수정이 필요하며, 이에 대해서는 writeup에서 다루겠습니다. 커널 v5에서의 익스플로잇은 더 쉽고 (writeup에서 논의) 더 안정적입니다.

이 버그는 Alon Zahavi가 발견했습니다. 그는 이 openwall 기사에서 취약점에 대한 좋은 설명을 게시했습니다.

데모

동영상은 여기에서 볼 수 있습니다. 데모 사진 1 데모 사진 2

요구 사항

  • nvmet, nvmet-tcp 모듈이 커널에 로드되어 있어야 합니다.
  • libfuse3-dev가 설치되어 있는지 확인하십시오 (Ubuntu에서는 기본적으로 설치되어 있지만 어쨌든). 만약 없다면, github에서 릴리스를 다운로드하여 컴파일하는 것이 가장 좋습니다. 저는 3.14.0을 사용했지만, 다른 버전에서도 작동해야 합니다.
  • 현재 익스플로잇은 1 CPU 코어가 있는 머신에서만 작동합니다. 이는 SLUB의 작동 방식에 관한 것이지만, 경쟁 조건(race condition)이 상황을 약간 까다롭게 만듭니다. 어쨌든, writeup에서 다중 CPU 머신을 처리하도록 개선하는 방법을 설명하겠습니다.

설정

root@kitploit:~
git clone https://github.com/rockrid3r/CVE-2023-5178
cd CVE-2023-5178
make
./build/xpl # run the exploit
  • libfuse3-dev가 없다면, 컴파일된 libfuse를 수동으로 링크해야 합니다. 컴파일 방법은 Makefile을 참조하십시오. -lfuse3를 -l:path-to-libfuse.so로 바꾸십시오. -I /path/to/libfuse-headers/로 헤더 경로를 추가하는 것을 잊지 마십시오. 다음 명령으로 익스플로잇을 실행하십시오:
root@kitploit:~
LD_PRELOAD_PATH=/path/to/libfuse.so ./build/exploit

POC

자신의 시스템에 취약점이 존재하는지 테스트하고 싶은 분들을 위해, 간단히 버그를 트리거하는 src/poc.c 파일이 있습니다. 이 파일은 시스템에서 NVMe-oF-TCP의 기본 IP/포트 구성을 가정합니다. 기본값이 아닌 경우 조정해야 합니다:

root@kitploit:~
#define NVME_SERVER_IP      "0.0.0.0"   // ip of vulnerable host in LAN (localhost here).
#define NVME_SERVER_PORT    4420        // port on which NVMe-oF-TCP is set up on vulnerable host

다음 명령으로 컴파일하고 실행하십시오:

root@kitploit:~
make build/poc
./build/poc

그냥 실행하면 됩니다(여러 번 실행할 수도 있음) 그런 다음 잠시 기다리십시오. 취약점이 존재하면 시스템이 충돌합니다.

상세 분석

전체 상세 분석은 여기에서 확인하십시오.

도구 다운로드