Gitea Actions 아티팩트 업로드 취약점을 통한 저장형 교차 사이트 스크립팅(Stored XSS) 및 CSP 우회 취약점 (CVE-2026-113429)
실무자 핵심 요약 (Executive Summary)
SECOPS ASSESSMENTGitea v28.3.0 미만 버전에서 Gitea Actions 기능이 활성화된 환경
Actions 실행 권한을 가진 공격자가 악성 HTML 아티팩트를 업로드하여, 이를 다운로드하는 사용자의 세션 권한(관리자 포함)을 탈취하고 인스턴스를 완전히 장악할 수 있습니다
Gitea 인스턴스를 최신 패치 버전인 v28.3.0 이상으로 즉시 업그레이드하십시오
영향받는 제품 및 버전 범위
권장 패치 및 임시 완화(Workaround) 가이드
패치 및 우회 명령어1. 공식 보안 패치 및 버전 업그레이드 명령어
Gitea 공식 보안 패치가 적용된 v28.3.0 이상 버전으로 업그레이드를 수행하십시오.
Docker 환경 업그레이드 예시:
# Docker Compose 환경에서 이미지 버전 업데이트 및 재시작
sed -i 's/gitea\/gitea:.*/gitea\/gitea:28.3.0/g' docker-compose.yml
docker compose pull
docker compose up -d2. 패치 전 임시 완화(Workaround) 및 접근 제어 설정
즉각적인 패치가 어려운 경우, Gitea 설정 파일(app.ini)에서 Actions 아티팩트 기능을 비활성화하거나 CSP 헤더를 리버스 프록시 수준에서 강제 적용하십시오.
Nginx 리버스 프록시 설정 보완 예시:
# Gitea 아티팩트 다운로드 경로에 대해 강력한 CSP 헤더 강제 적용
location ~* ^/([^/]+)/([^/]+)/actions/runs/.*$ {
proxy_pass http://localhost:3000;
add_header Content-Security-Policy "default-src 'none'; sandbox;" always;
}3. 침해 흔적(IoC) 및 로그·버전 점검 스크립트
Gitea 데이터베이스에서 레거시 아티팩트 테이블의 비정상적인 Content-Type/Encoding 설정을 점검하는 SQL 쿼리 예시입니다.
# PostgreSQL 기준: 아티팩트 테이블에서 video/ 또는 audio/로 시작하는 비정상 레코드 조회
psql -U gitea -d giteadb -c "SELECT * FROM action_artifact WHERE content_type LIKE 'video/%' OR content_type LIKE 'audio/%';"코드 수정 전에도 가상 패치(Virtual Patching)로 웹 공격을 즉시 차단하세요
서버 재시작이나 긴급 패치가 어려운 운영 환경이라면 클라우드 WAF 관리형 룰셋을 활성화하여 SQLi, RCE, XSS 익스플로잇 페이로드를 엣지에서 1분 만에 차단할 수 있습니다.
취약점 발생 원리 및 공격 메커니즘
1. 취약점 개요 및 발생 원인 (Root Cause)
본 취약점은 Gitea의 레거시(v1~v3) Actions 아티팩트 업로드 처리 로직에서 발생합니다. Gitea Actions 워크플로우 실행 중 아티팩트를 업로드할 때, 서버는 클라이언트가 전송한 요청의 Content-Encoding 헤더 값을 검증 없이 데이터베이스 컬럼에 저장합니다. 이후 해당 아티팩트를 다운로드할 때 이 값이 Content-Type 헤더로 클라이언트에게 그대로 반환되는 설계 결함이 존재합니다. 또한, 반환되는 헤더 값이 video/ 또는 audio/로 시작하는 경우, 브라우저의 샌드박싱을 강제하는 Content-Security-Policy(CSP) 헤더가 제거되는 취약한 예외 처리 로직이 작동합니다.
2. 공격 메커니즘 및 익스플로잇 시나리오
Gitea Actions 실행 권한을 가진 공격자는 악성 자바스크립트가 포함된 HTML 파일을 아티팩트로 업로드하는 워크플로우를 작성합니다. 이때 업로드 API 요청의 Content-Encoding 헤더를 video/mp4 또는 audio/mpeg와 같이 video/ 또는 audio/로 시작하도록 조작합니다. 이후 피해자가 공개 저장소의 아티팩트 직접 다운로드 링크를 클릭하면, Gitea 서버는 CSP 헤더를 제거한 상태로 해당 파일을 브라우저에 전달합니다. 브라우저는 이를 HTML 콘텐츠로 해석하여 렌더링하게 되며, 결과적으로 Gitea 도메인(Origin) 컨텍스트 내에서 공격자가 삽입한 악성 스크립트가 실행됩니다.
3. 비즈니스 및 인프라 파급 영향
이 취약점은 동일 출처 정책(Same-Origin Policy)을 우회하므로, 악성 스크립트가 피해자의 브라우저 세션 쿠키 및 API 토큰에 접근할 수 있게 만듭니다. 특히 Gitea 관리자 권한을 가진 사용자가 해당 링크를 열람할 경우, 공격자는 관리자 세션을 탈취하여 전체 Gitea 인스턴스를 완전히 장악하고 소스 코드 유출, 악성 코드 주입 등의 심각한 공급망 공격을 수행할 수 있습니다.
공식 보안 권고문 및 참조 링크
Legacy (v1 to v3) Actions artifact uploads stored the request's `Content-Encoding` header unchecked in the column that is served as the artifact's `Content-Type` on download, and a value starting with `video/` or `audio/` also removed the sandboxing Content-Security-Policy. A user who can run an Actions job could upload an artifact that a browser renders as HTML on the Gitea origin when the direct artifact download URL is opened, and the URL is reachable anonymously on public repositories. A victim who opens the link runs the attacker's script with their own session, which for an administrator means control of the instance. Legacy uploads now store only the `gzip` marker, and the special serve headers are chosen only for valid media types.
자주 묻는 실무 질문 (FAQ — CVE-2026-113429)
FAQQ1. CVE-2026-113429 취약점의 위험도와 실제 악용 가능성은 어느 정도입니까?
CVE-2026-113429의 기본 점수는 CVSS 5.4 (MEDIUM)이며, 향후 30일 내 실제 악용 확률을 나타내는 EPSS 점수는 0.2%입니다. 외부 네트워크 노출 여부에 따라 선제적인 패치 및 접근 제어가 권장됩니다.
Q2. CVE-2026-113429에 영향을 받는 벤더와 제품은 무엇입니까?
주요 영향 벤더는 gitea이며, 대상 컴포넌트는 gitea입니다. 상세 영향 범위: Gitea v28.3.0 미만 모든 버전 (Gitea Actions 아티팩트 기능 활성화 시 영향 받음)
Q3. 서버 재기동이나 정규 패치 전 즉시 적용할 수 있는 완화 조치(Workaround)는 무엇입니까?
[권장 조치] Gitea 인스턴스를 최신 패치 버전인 v28.3.0 이상으로 즉시 업그레이드하십시오 본문의 패치 및 우회 명령어 섹션과 자가 점검 체크리스트를 참고하여 외부 노출 포트를 차단하거나 WAF 탐지 규칙을 선적용하십시오.
CVE-2026-113429 사내 보안 패치 공지문 · CISO 경영진 보고서 초안 자동 생성
클릭 한 번으로 사내 이메일·노션·결재 문서에 바로 붙여넣을 수 있는 공식 보고서 양식을 생성합니다.
🔗 함께 점검해야 할 동일 벤더·스택 연관 취약점 (gitea)
동일 카테고리 전체 보기 →Gitea diffpatch API 및 Git Hook 악용 원격 코드 실행(RCE) 취약점 보안 권고 (CVE-2026-60004)
[영향 대상] Gitea 1.27.1 미만 버전
Gitea API 히트맵 엔드포인트 정보 노출 취약점 (CVE-2026-114199)
[영향 대상] Gitea v28.3.0 미만 버전
Gitea Actions 작업 토큰 권한 검증 미흡으로 인한 전체 비공개 저장소 메타데이터 유출 취약점 (CVE-2026-112887)
[영향 대상] Gitea Actions가 활성화된 Gitea v28.3.0 미만 버전
Microsoft Exchange Server 교차 사이트 스크립팅(XSS) 및 스푸핑 취약점 보안 권고 (CVE-2026-42897)
[영향 대상] Microsoft Exchange Server 전체 온프레미스 환경.
일간 취약점 브리핑 및 긴급 Zero-Day 경보 구독
보안 실무자와 인프라·백엔드 엔지니어를 위해 매일 아침 주요 취약점과 패치 우선순위를 요약해 발송합니다.