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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-35196 — Second CVE still Remote Code Execution | Kitploit
도구/GitHubGitHub/kx00007/cve-2026-35196
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubkx00007/cve-2026-35196

CVE-2026-35196

Second CVE still Remote Code Execution

저장소 보기
2개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-35196 · Chamilo LMS · OS 명령 삽입 → RCE


CVE CVSS CWE Auth Type Shell



연구자: K
공개 유형: 책임 있는 공개
상태: 패치됨
영향받는 제품: Chamilo LMS < 2.0 (v1.11.32에서 확인됨)


📋 취약점 요약


🔍 설명

Chamilo LMS v1.11.32의 main/inc/ajax/gradebook.ajax.php에 있는 export_all_certificates 액션에 심각한 OS 명령 삽입 취약점이 존재합니다.

애플리케이션은 api_get_course_id()를 통해 과정 코드를 검색하며, 이는 $_SESSION['_cid']에서 직접 읽어옵니다. 이 세션에서 파생된 값은 정제되지 않은 채 shell_exec() 호출에 연결됩니다 — escapeshellarg()나 화이트리스트 검증, 타입 강제가 없습니다.

세션의 _cid 변수를 조작하거나 오염시킬 수 있는 공격자(세션 오염, IDOR 체이닝 또는 기타 세션 조작 프리미티브를 통해)는 임의의 셸 메타 문자를 삽입하고 웹 서버 사용자(www-data)로 완전한 원격 코드 실행을 달성할 수 있습니다.


🧩 근본 원인 분석

취약한 파일: main/inc/ajax/gradebook.ajax.php
취약한 함수: export_all_certificates

사용자가 export_all_certificates 액션을 트리거하면, 스크립트는 인증서 처리를 위해 백그라운드 프로세스를 실행하려고 시도합니다:

root@kitploit:~
$courseCode = api_get_course_id(); // Retrieves the value from $_SESSION['_cid']
$sessionId = api_get_session_id();
// ...
$commandScript = api_get_path(SYS_CODE_PATH).'gradebook/cli/export_all_certificates.php';
$userList = implode(',', $userList);

// Flaw: Variables like $courseCode are passed directly to the shell without escapeshellarg()
shell_exec("php $commandScript $courseCode $sessionId $categoryId $userList > /dev/null &");

애플리케이션이 세션 변수의 내용을 암묵적으로 신뢰하고 시스템 셸로 보내기 전에 적절히 이스케이프하지 못하기 때문에, 조작된 세션을 가진 공격자는 악의적인 명령을 추가하여 실행할 수 있습니다. 예를 들어, _cid에 "; touch /tmp/remote_code_by_k; #"가 포함되어 있으면, bash/sh 셸이 해석하는 명령은 다음과 같습니다:

root@kitploit:~
php /var/www/chamilo/main/gradebook/cli/export_all_certificates.php ; touch /tmp/remote_code_by_k; # ... > /dev/null &

셸은 CLI 스크립트를 실행한 후, 주입된 페이로드를 실행하고 의도된 명령 문자열의 나머지 부분은 무시합니다.

💣 개념 증명

  1. 세션 오염: 공격자는 먼저 $_SESSION['_cid'] 변수에 영향을 주어야 합니다. 이는 세션 오염 취약점과 결합하거나, 애플리케이션의 다른 곳에서 IDOR 또는 안전하지 않은 매개변수 처리를 통해 과정 코드 값을 조작하여 세션 컨텍스트를 업데이트함으로써 달성할 수 있습니다.
  2. 페이로드 삽입: _cid 세션 변수를 다음과 같이 설정: "; [MALICIOUS_COMMAND]; #"
  3. 실행: 오염된 세션 쿠키와 함께 /main/inc/ajax/gradebook.ajax.php?a=export_all_certificates&cat_id=1로 GET 요청을 보냅니다.
  4. 결과: 서버는 웹 애플리케이션 사용자(www-data)의 권한으로 주입된 명령을 맹목적으로 실행합니다.

📊 영향 분석


🛡️ 권장 사항

  • escapeshellarg() 적용: $courseCode, $sessionId, $userList와 같은 모든 사용자 유래 변수를 shell_exec()에 전달하기 전에 PHP의 escapeshellarg()로 감싸서 임의의 OS 메타 문자를 무력화하십시오.
  • 엄격한 세션 검증: 세션 상태에 저장된 변수(예: $_SESSION['_cid'])가 엄격하게 타입이 지정되고 정제되어 잠재적인 "세션 오염" 또는 IDOR 체이닝 공격이 진입점에서 차단되도록 하십시오.
  • 최소 권한 적용: 웹 서버 서비스(www-data)에 제한적인 파일 시스템 쓰기 권한을 설정하고, 애플리케이션이 필수 Linux 셸 바이너리에만 접근할 수 있도록 제한하여 사후 악용 능력을 완화하십시오.

🧪 환경

📎 참고 자료

  • Chamilo LMS Official Repository
  • CWE-78: OS Command Injection
  • OWASP: Command Injection
  • CVE-2026-29041 — 이전 Chamilo RCE (CWE-434, CVSS 8.8) (동일 연구자)

👤 연구자

root@kitploit:~
핸들   : K
GitHub  : https://github.com/kx00007
초점   : 서버 측 취약점 RCE, CVE 사냥, 취약점 연구, 익스플로잇 개발
이전   : CVE-2026-29041 (Chamilo LMS — 파일 업로드를 통한 인증된 RCE)

⚡Try Harder.

도구 다운로드
필드세부 사항
제품Chamilo LMS
영향받는 버전< 2.0 (v1.11.32에서 확인됨)
취약점OS 명령 삽입
CWECWE-78 — OS 명령에 사용되는 특수 요소의 부적절한 중립화
CVSSv3.1 점수8.8 (높음)
벡터CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
인증 필요예 (세션이 오염된 모든 인증된 사용자)
익스플로잇 유형인증된 원격 코드 실행
취약한 파일main/inc/ajax/gradebook.ajax.php
차원
영향
기밀성전체 읽기 액세스 — 소스 코드, 설정 파일, DB 자격 증명, /etc/passwd
무결성임의 파일 쓰기, 웹쉘 배포, 데이터베이스 조작
가용성서비스 중단, 파일 시스템 파괴, 랜섬웨어 배포
범위웹 서버 프로세스(www-data); 자격 증명 노출을 통한 수평 이동 가능성
구성 요소세부 사항
OSUbuntu Server (Docker)
웹 서버Apache / Nginx
PHP7.x / 8.x
앱Chamilo LMS v1.11.32-v2.0
셸/bin/sh → bash