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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-19478 — GitLab CE/EE에서 CVE-2026-19478을 탐지합니다. 비파괴적 Nuclei 템플릿을 사용하여 touch를 통한 GraphQL 폴백 필드 메서드 호출을 트리거하고, 파괴적 호출 없이 취약한 인스턴스를 확인합니다. | Kitploit
도구/GitHubGitHub/renzi25031469/cve-2026-19478
Web Vulnerability ScannersVulnerability AnalysisWeb Application ExploitationAPI Security TestingInformation GatheringWeb SecurityPenetration Testing
GitHubrenzi25031469/cve-2026-19478

CVE-2026-19478

GitLab CE/EE에서 CVE-2026-19478을 탐지합니다. 비파괴적 Nuclei 템플릿을 사용하여 touch를 통한 GraphQL 폴백 필드 메서드 호출을 트리거하고, 파괴적 호출 없이 취약한 인스턴스를 확인합니다.

저장소 보기
1621일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-19478 — GitLab GraphQL 폴백 필드 임의 메서드 호출 — Nuclei 탐지 템플릿

CVE Severity Nuclei Target License

CVE-2026-19478 — Nuclei 템플릿

CVE-2026-19478에 대한 비파괴적 Nuclei 탐지 템플릿입니다. 이 취약점은 GitLab GraphQL API의 인증되지 않은 임의 메서드 호출 결함으로, 심각도(CVSS 9.4) 등급이며 GitLab에서 2026년 8월 17일에 패치했습니다.

TL;DR

GitLab의 GraphQL 스키마는 필드를 특정 최소 GitLab 버전으로 제한하는 @gl_introduced(version: "X.Y.Z") 디렉티브를 지원합니다. 디렉티브가 실행 중인 인스턴스보다 버전을 참조하면, GitLab은 (다른 방식으로는 알 수 없는) 필드 이름에 대한 를 생성합니다. 이 폴백 리졸버는 기본 Ruby 객체(, 등)에서 을 직접 호출합니다.

최신
폴백 필드(fallback field)
Project
User
object.public_send(method_name)
권한 재확인 없이

결과적으로 /api/graphql에 도달할 수 있고 공개 프로젝트의 fullPath(또는 공개 프로필의 사용자 이름)를 아는 인증되지 않은 공격자는 해당 객체에서 공개된 인자 없는 메서드를 호출할 수 있습니다. 여기에는 touch 같은 읽기 전용 메서드뿐 아니라 destroy / delete 같은 파괴적 메서드와 deactivate / block / ban 같은 상태 변경 메서드도 포함됩니다.

이 저장소의 템플릿은 오직 touch만 호출합니다(updated_at를 갱신하고 true를 반환). 자세한 내용은 아래의 안전성(Safety)를 참조하세요.

영향받는 버전

트랙영향받는 버전수정 버전
18.2.x – 18.11.x>= 18.2, < 18.11.1118.11.11
19.0.x< 19.0.819.0.8
19.1.x< 19.1.619.1.6
19.2.x< 19.2.419.2.4

셀프 매니지드 GitLab CE/EE에만 해당됩니다. GitLab.com과 GitLab Dedicated는 영향을 받지 않았습니다.

안전성

이 템플릿은 테스트할 권한이 있는 서버들을 스캔할 수 있도록 의도적으로 무해화(defanged)되어 있습니다.

  • 폴백 필드를 통해 **touch**만 호출합니다(단순히 updated_at을 올리고 true를 반환하는 ActiveRecord 메서드).
  • destroy, delete, deactivate, block, ban은 절대 호출하지 않습니다. 이들 모두 동일한 버그로 접근 가능하며 실제로 파괴적입니다.
  • 탐지는 기회주의적으로 작동합니다. REST API를 통해 공개 프로젝트 하나를 열거하고, 보이지 않으면 기본 root 사용자 프로필을 탐지합니다. 둘 다 접근할 수 없으면 추측하지 않고 단순히 "탐지되지 않음"으로 보고합니다.

소유하지 않았거나 테스트에 대한 명시적 서면 승인을 받지 않은 시스템에 대해 돌연변이(mutating) 메서드를 호출하기 위해 이 템플릿의 GraphQL 쿼리를 다른 용도로 사용하지 마십시오.

탐지 작동 방식

단계요청목적
1GET /api/v4/projects?visibility=public무해한 대상으로 사용할 공개 프로젝트를 찾습니다
2POST /api/graphql — 해당 프로젝트에 touch @gl_introduced(version: "999.0.0")폴백 필드 리졸버를 트리거합니다. 취약한 인스턴스는 "touch": true를 반환합니다
3 (대체)POST /api/graphql — user(username: "root")에 대해 동일한 쿼리1단계에서 공개 프로젝트를 찾지 못한 경우에만 사용됩니다

패치된 인스턴스는 알 수 없는 필드를 완전히 거부하므로("... doesn't exist on type ..."), 템플릿의 매처는 touch 양성 신호 및 해당 거부 메시지가 없음을 요구합니다.

사용법

root@kitploit:~
# 단일 대상
nuclei -t CVE-2026-19478.yaml -u https://gitlab.example.com

# 템플릿 자체 검증
nuclei -t CVE-2026-19478.yaml -validate

# 대상 목록, JSON 출력
nuclei -t CVE-2026-19478.yaml -l targets.txt -j -o results.json

nuclei v3가 필요합니다(이 템플릿은 v3 템플릿 엔진에서 도입된 http: 프로토콜 블록과 jq 스타일 json 추출기를 사용하므로 nuclei v2.x에서는 로드되지 않습니다).

예제 출력

root@kitploit:~
[CVE-2026-19478] [http] [critical] https://gitlab.example.com/api/graphql

해결 방법

18.11.11, 19.0.8, 19.1.6, 19.2.4(또는 이후 버전)로 업그레이드하세요. 전체 보안 권고는 GitLab의 19.2.4 패치 릴리스 노트를 참조하세요.

참고 자료

  • GitLab 19.2.4 패치 릴리스 노트
  • The Hacker News — 인증되지 않은 공격자가 공개 프로젝트를 삭제할 수 있는 치명적인 GitLab GraphQL 결함
  • Rescana — CVE-2026-19478 기술 분석
  • PoC (davkharrr/CVE-2026-19478-PoC)

면책 조항

이 템플릿은 방어적 보안 목적으로 게시되었습니다 — 소유하거나 명시적으로 테스트 권한을 받은 인프라를 스캔하기 위한 것입니다. 승인 없이 시스템에 실행(또는 링크된 PoC 실행)하는 것은 대부분의 국가에서 불법입니다. 작성자는 오용에 대한 책임을 지지 않습니다.

라이선스

MIT

도구 다운로드