Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2026-105221-gist-tls — CVE-2026-105221 - gist RubyGem - 높음 - MITM - GitHub OAuth 토큰 탈취 | Kitploit
도구/GitHubGitHub/abraxas/cve-2026-105221-gist-tls
Vulnerability AnalysisExploitationWeb Application ExploitationNetwork SecurityCryptographyPenetration TestingLabs & Practice
GitHubabraxas/cve-2026-105221-gist-tls

cve-2026-105221-gist-tls

CVE-2026-105221 - gist RubyGem - 높음 - MITM - GitHub OAuth 토큰 탈취

저장소 보기
119시간 38분 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - cve-2026-105221-gist-tls

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  cve-2026-105221-gist-tls

cve-2026-105221-gist-tls

gist RubyGem < 6.1.0 - defunkt

http_connection이 OpenSSL::SSL::VERIFY_NONE을 설정합니다. GitHub로의 HTTPS는 여전히 암호화되지만, 어떤 인증서든 수락됩니다. 경로 상의 공격자가 CLI가 전송하는 OAuth 토큰을 읽고, 피해자의 gist를 읽고 변경할 수 있습니다.

IDCVE-2026-105221
CWECWE-295
CVSSHigh: 7.4 CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N (VulnCheck 4.0: 9.1)
제품gist
영향받는 버전4.0.0부터 6.0.0까지. 랩 고정 버전 6.0.0. 6.1.0에서 수정됨 (07ccc1a).
인증gist CLI의 경로 상 MITM
라이선스GNU Affero GPL v3.0
랩127.0.0.1 전용

공격자가 할 수 있는 일

공격자는 경로 상에 위치하여 GitHub 토큰을 탈취합니다.

  • 어떤 TLS 인증서든 제시할 수 있습니다. gist 6.0.0은 피어를 검증하지 않습니다. CN=mitm.invalid인 자체 서명 인증서로 충분합니다.
  • Authorization: token ...을 읽습니다. 로그인(gist --login)과 gist 업로드/목록/삭제는 모두 http_connection을 통과합니다. ~/.gist의 토큰이 그 소켓을 타고 흐릅니다.
  • 피해자의 gist를 읽고 편집합니다. 그 토큰은 gist 스코프를 가진 GitHub OAuth 자격 증명입니다. 비공개 gist, 업데이트, 삭제가 가능합니다.
  • 전송 중인 로그인을 가로챕니다. 디바이스 플로우와 사용자 이름/비밀번호 로그인은 동일한 미검증 TLS를 통해 GitHub에 접속합니다.

공격자에게는 네트워크상의 위치가 필요합니다. 악의적인 Wi-Fi, 프록시, 중간에 위치한 장비 등입니다. 이는 서버를 대상으로 한 인증 없는 원격 RCE가 아닙니다.

6.1.0은 VERIFY_PEER를 설정합니다. 동일한 위조 인증서는 certificate verify failed (self-signed certificate)와 함께 실패하고 토큰은 클라이언트를 떠나지 않습니다.

발견 경위

VulnCheck가 CVE-2026-105221을 공개했습니다. Siyang Wu가 보고했습니다. 이슈 373이 공개 티켓입니다. PR 374가 검증 모드를 뒤집었습니다. 저는 공개된 CVE를 랩에서 재현했습니다. 공개된 PoC는 없었습니다.

6.0.0의 lib/gist.rb http_connection:

if uri.scheme == "https"
  connection.use_ssl = true
  connection.verify_mode = OpenSSL::SSL::VERIFY_NONE
end

6.1.0은 VERIFY_PEER입니다.

루프백 랩은 자체 서명 인증서를 사용하는 가짜 GitHub Enterprise HTTPS 스텁입니다. GITHUB_URL=https://127.0.0.1:8443은 gist를 GHE 모드(POST /api/v3/gists)로 전환합니다. 랩 토큰 CVE-2026-105221-WITNESS가 일치하는 ~/.gist.* 파일에 있습니다. gist 6.0.0은 TLS를 완료하고, 스텁이 Authorization: token CVE-2026-105221-WITNESS를 캡처하여 witness를 기록합니다. 동일한 스텁에 대한 gist 6.1.0은 TLS에 실패합니다. 6.1.0의 캡처 횟수는 0으로 유지됩니다. api.github.com과 통신하는 것은 없습니다.

SUCCESS CVE-2026-105221 vuln-tls=ok token-captured=1 patched-tls=fail witness-written=yes CVE-2026-105221-WITNESS

이미 기록된 잘못된 시도: 없음. 첫 run.sh가 SUCCESS를 출력했습니다. 리버스 셸. 쇼에 불과합니다. 오라클은 6.0.0에서 캡처된 랩 토큰과 6.1.0에서의 자체 서명 TLS 오류입니다.

랩

cd lab
./run.sh

대상은 오직 https://127.0.0.1:18210 (컨테이너 8443)입니다. run.sh는 RubyGems에서 gist 6.0.0과 6.1.0을 설치하고, 컨테이너 내부에서 스텁을 서비스한 다음 스택을 정리합니다. 자체 서명 인증서. 실제 GitHub는 없습니다.

수정 방법

gist gem을 6.1.0 이상으로 업그레이드하세요.

참고 자료

  • CVE-2026-105221
  • NVD
  • defunkt/gist 태그 v6.0.0 / v6.1.0
  • 이슈 373
  • PR 374 / 07ccc1a
  • lib/gist.rb v6.0.0 L466-L468
  • CWE-295

라이선스

GNU Affero GPL v3.0

도구 다운로드