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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
gitea-hostmatcher-0000-ssrf — Gitea의 hostmatcher 허용 목록에서 인증된 SSRF를 시연하는 개념 증명 랩으로, http://0.0.0.1로의 웹훅이 127.0.0.1로는 도달할 수 없는 루프백 서비스에 도달한다. | Kitploit
도구/GitHubGitHub/abraxas/gitea-hostmatcher-0000-ssrf
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingLabs & Practice
GitHubabraxas/gitea-hostmatcher-0000-ssrf

gitea-hostmatcher-0000-ssrf

Gitea의 hostmatcher 허용 목록에서 인증된 SSRF를 시연하는 개념 증명 랩으로, http://0.0.0.1로의 웹훅이 127.0.0.1로는 도달할 수 없는 루프백 서비스에 도달한다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - gitea-hostmatcher-0000-ssrf

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  gitea-hostmatcher-0000-ssrf

gitea-hostmatcher-0000-ssrf

Gitea 1.27.3 - Gitea

CVE-2026-22874에서 reservedIPNets를 추가했습니다. CGNAT, TEST-NET, NAT64, Teredo, Azure WireServer. 실제 대역입니다. RFC 6890의 0.0.0.0/8, 예전 "this network" 블록이 아닙니다. IANA는 여전히 이를 공개하고 있습니다. Go의 IsGlobalUnicast는 0.0.0.1에 대해 true입니다. IsLoopback(127.0.0.0/8)이 아닙니다. IsPrivate도 아닙니다. 기본 외부 허용 목록은 이를 공용 인터넷으로 취급합니다. Linux는 해당 주소가 lo에 있으면 0.0.0.1을 로컬 소켓으로 전달합니다. 동일한 리스너, 두 개의 이름.

로그인한 사용자는 http://0.0.0.1로 웹훅을 보내고 훅 기록에서 HTTP 본문을 읽을 수 있습니다. 같은 포트의 127.0.0.1은 거부됩니다.

ID아직 CVE 없음
CWECWE-918
CVSSHigh: 7.7 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
제품Gitea
영향v1.27.3(146cc3e)까지; CVE-2026-22874의 잔여물
인증저장소 웹훅을 생성할 수 있는 로그인 사용자
라이선스GNU Affero GPL v3.0
랩127.0.0.1 전용

공격자가 할 수 있는 일

가입하고(기본 개방 가입), 저장소를 만들고, 웹훅을 http://0.0.0.1:<local-port>/로 지정하고, 테스트한 뒤 훅 기록에서 응답 본문을 읽습니다. 이는 같은 포트의 127.0.0.1로는 도달할 수 없는 루프백 HTTP입니다. Gitea의 netns에서 수신 대기 중인 것 중 루프백보다 넓게 바인딩된 모든 것, 즉 운영자가 127.0.0.0/8을 차단했기 때문에 "로컬호스트 전용"이라고 생각했던 서비스를 포함합니다.

X-Gitea-Internal-Auth를 설정하지 않습니다. 그 자체로 RCE는 아닙니다. 허용 목록이 여전히 외부라고 부르는 주소에서 온 완전한 HTTP 본문입니다.

발견 방법

v1.27.3은 2026 GHSA 물결을 닫은 빌드입니다. 그래도 저는 그 태그를 계속 지켜봤습니다. 허용 목록이나 차단 목록을 추가하는 패치는 선물입니다. 목록을 읽고, IANA에 아직 남아 있는데 목록이 잊은 것이 무엇인지 묻습니다. 이미 두 개의 잔여물이 이 트리에 랩을 가지고 있었습니다(keys IDOR와 git-redirect SSRF). 그 게시물의 잔여물 표에는 http://0.0.0.1/로의 웹훅이 지도로 나열되어 있었습니다. 이것이 SUCCESS입니다.

웹훅 전달은 HTTP 본문을 훅 기록에 저장합니다. 이는 대부분 "fetch가 작동했는가"에 불과한 git clone보다 더 나은 오라클입니다. Gitea의 netns에 포트 8080으로 오라클을 두고, NET_ADMIN으로 lo에 0.0.0.1/8을 추가하고, 두 개의 웹훅을 만들었습니다. 먼저 네거티브 컨트롤.

이미 기록된 잘못된 방향: 웹훅 생성 HTTP 201을 오라클로 취급(오라클은 기록); 127.0.0.1 전달 성공(그것은 다른 버그일 것 - 랩은 거부를 요구); X-Gitea-Internal-Auth로 /api/internal 접근; 리버스 셸. 연극. 증인은 훅 기록의 GITEA-0000-SSRF입니다.

랩

cd lab
./run.sh

대상은 오직 http://127.0.0.1:18131. 오라클은 포트 8080에서 Gitea의 netns를 공유합니다. run.sh는 lo에 0.0.0.1/8을 추가합니다.

create-hook name=neg-loopback status=201
negative-control 127.0.0.1 blocked
create-hook name=hit-0000 status=201
poll id=2 witness=True
SUCCESS GITEA-HOSTMATCHER-0000

수정

reservedIPNets에 0.0.0.0/8을 추가하거나, IsGlobalUnicast를 "다이얼해도 안전"으로 취급하는 것을 중단하십시오. 0.0.0.1은 127.0.0.1과 같은 방식으로 거부되어야 합니다.

참고

  • github.com/go-gitea/gitea 태그 v1.27.3
  • hostmatcher.go
  • 인접 패치: CVE-2026-22874
  • RFC 6890
  • CWE-918

라이선스

GNU Affero GPL v3.0. LICENSE 참조. 루프백 랩 전용. 보증 없음.

도구 다운로드