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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
gitea-CVE-2026-28699 — CVE-2026-28699 실습 및 분석: HTTP Basic 인증을 통한 Gitea OAuth2 스코프 적용 우회 | Kitploit
도구/GitHubGitHub/alardiians/gitea-cve-2026-28699
Authentication & AuthorizationVulnerability AnalysisExploitationWeb Application ExploitationCTFPenetration TestingLearning & EducationLabs & Practice
GitHubalardiians/gitea-cve-2026-28699

gitea-CVE-2026-28699

CVE-2026-28699 실습 및 분석: HTTP Basic 인증을 통한 Gitea OAuth2 스코프 적용 우회

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-28699: Gitea OAuth2 범위 우회 (HTTP Basic Auth를 통한)

오직 read:user로 범위가 지정된 Gitea OAuth2 액세스 토큰이 Bearer 토큰 대신 Authorization: Basic base64(<token>:x-oauth-basic)으로 전송될 때 전체 쓰기 작업을 수행할 수 있습니다. Basic 인증을 통해 제시된 모든 토큰에 대해 범위 검사가 건너뛰어집니다.

영향받는 버전: <= 1.26.1. 1.26.2에서 수정됨. 권고: GHSA-9r5x-wg6m-x2rc. CWE-863. 심각도 높음.

전체 분석: WRITEUP.md

빠른 시작

pip install -r requirements.txt   # requests
python fetch_binaries.py          # pulls vulnerable 1.26.1 + patched 1.26.2 for your OS
python poc.py 1.26.1              # vulnerable: Basic-auth write succeeds (scope bypassed)
python poc.py 1.26.2              # patched: Basic-auth write blocked (403)

poc.py는 시스템 임시 디렉터리에 SQLite를 사용하여 임시 Gitea를 구축하고, OAuth2 인증 코드 흐름을 실행하여 read:user 전용 토큰을 생성한 다음, Bearer 및 Basic을 통해 쓰기 엔드포인트를 호출하고 결과를 출력합니다. POC_DEBUG=1을 설정하면 인증 흐름 단계를 확인할 수 있습니다.

예상 출력

취약한 1.26.1:

[Bearer] PATCH /api/v1/user/settings -> HTTP 403   (blocked)
[Basic ] PATCH /api/v1/user/settings -> HTTP 200   (ALLOWED -- scope BYPASSED)
>>> VULNERABLE: read:user token performed a write via Basic auth.

패치된 1.26.2:

[Bearer] PATCH /api/v1/user/settings -> HTTP 403   (blocked)
[Basic ] PATCH /api/v1/user/settings -> HTTP 403   (blocked)
>>> PATCHED: scope enforced on both Bearer and Basic.

한눈에 보는 근본 원인

인증 방식IsApiTokenApiTokenScope범위 적용?
OAuth2 토큰 (Bearer)true설정됨예
OAuth2 토큰 (Basic)true누락됨아니요 (열림 실패)
개인 액세스 토큰true설정됨예

services/auth/basic.go는 OAuth2 토큰에 대해 IsApiToken을 설정했지만 ApiTokenScope는 설정하지 않았습니다. tokenRequiresScopes 미들웨어는 범위가 없으면 조기에 반환되므로 아무 것도 확인되지 않습니다. 1.26.2 수정에서는 누락된 store.GetData()["ApiTokenScope"] = accessTokenScope를 추가했습니다.

파일

파일목적
WRITEUP.md근본 원인 분석, 영향, 수정, 탐지
fetch_binaries.py사용자의 OS/아키텍처에 맞는 1.26.1 / 1.26.2 바이너리를 다운로드합니다
poc.pyGitea를 프로비저닝하고, read:user 토큰을 생성하며, Bearer vs Basic을 테스트합니다
requirements.txtrequests

승인된 사용만 허용

교육 및 승인된 보안 테스트용: 자신의 연구실, CTF 및 HTB 환경, 범위 내 버그 바운티 대상. PoC는 자체 임시 Gitea를 실행하므로 소유하지 않은 대상에는 사용하지 마십시오.

도구 다운로드