🔍 CVE-2026-103667

5.4
CVSS Score
MEDIUM
2026-10-06
2026-10-15 02:25
✅ 완료

🇰🇷 한글 설명

Gitea의 컨테이너 레지스트리가 이미지 매니페스트에 선언된 미디어 타입을 그대로 Content-Type으로 사용하여 발생하는 취약점입니다. 공격자가 HTML과 JavaScript가 포함된 블롭(blob)을 업로드하고 피해자가 이를 브라우저로 열 경우, Gitea 권한으로 스크립트가 실행되어 API 토큰 생성 등의 악의적인 동작을 수행할 수 있습니다.

💡 쉬운 설명

공격자가 악성 코드가 담긴 가짜 파일을 서버에 올린 뒤, 사용자가 그 파일을 클릭하게 유도하여 사용자의 계정 권한을 탈취하는 공격입니다. 사용자가 로그인된 상태에서 파일을 열면 사용자의 이름으로 몰래 명령을 내릴 수 있습니다.

🇺🇸 원문 (English)

Gitea's container registry served blob downloads with a `Content-Type` taken from the media type declared in pushed image manifests, without a `Content-Disposition` or restrictive content security policy. A user who can push container images can publish a blob containing HTML and JavaScript with a `text/html` media type. When a victim who is authenticated to the instance opens the blob URL in a browser, the script runs on the Gitea origin and can perform actions as the victim, such as creating API tokens.

📍 영향받는 시스템

Gitea Container Registry 기능을 사용하는 버전

⚔️ 공격 벡터

공격자가 악성 HTML/JS가 포함된 컨테이너 이미지를 푸시한 후, 인증된 사용자가 해당 블롭 URL을 브라우저로 방문하도록 유도

🛡️ 대응 방법

Gitea를 최신 보안 패치가 적용된 버전으로 업데이트하고, Content-Disposition 헤더 설정 및 CSP(콘텐츠 보안 정책)를 강화해야 합니다.

🔧 검증 코드

응답 헤더에 Content-Type이 text/html로 나타나거나 Content-Disposition이 없을 경우 취약할 가능성이 높습니다.

Shell / Script
curl -I -X GET [GITEA_URL]/v2/[IMAGE_NAME]/blobs/[DIGEST] | grep -E 'Content-Type|Content-Disposition'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N