
개발팀이 사내 코드 저장소로 자주 쓰는 오픈소스 도구 Gitea. 이 Gitea를 Docker로 띄워 운영 중이라면, 로그인 절차 자체를 건너뛰고 관리자 계정을 통째로 가져갈 수 있는 결함이 실제 공격에 쓰이고 있다는 사실이 최근 확인됐습니다. 이번 결함(CVE-2026-20896)은 별도의 비밀번호나 인증 토큰 없이, HTTP 요청에 헤더 한 줄만 심으면 뚫린다는 점에서 보안 업계가 특히 주목하고 있습니다.
Gitea Docker, 왜 헤더 한 줄로 뚫리나
이번 결함은 CVSS 9.8점(10점 만점)에 해당하는 심각한 인증 우회 취약점입니다. 원인은 복잡한 해킹 기법이 아니라 ‘기본 설정 실수’에 가깝습니다. Gitea의 공식 Docker 이미지는 리버스 프록시를 통한 인증 기능을 켰을 때 어떤 IP에서 온 요청이든 신뢰하도록 기본값이 설정돼 있었습니다. 원래대로라면 로컬호스트(127.0.0.1)만 신뢰해야 하는데, 와일드카드 값이 하드코딩돼 있었던 것입니다.
그 결과 리버스 프록시 인증 기능이 켜진 Gitea 서버라면, 외부에서 컨테이너의 HTTP 포트에 직접 접근할 수 있는 누구든 ‘X-WEBAUTH-USER’라는 헤더에 admin 같은 계정명만 적어 보내는 것만으로 그 계정으로 로그인한 것처럼 인식됩니다. 비밀번호도, 토큰도 필요 없습니다.
Gitea 결함 공개 13일 만에 벌어진 일
이 결함은 지난달 하순 보안 권고와 함께 공개됐고, 곧이어 나온 1.26.3·1.26.4 버전에서 리버스 프록시 인증이 ‘기본 꺼짐, 선택적 사용’으로 바뀌며 패치됐습니다. 그런데 이달 6일, 보안업체 Sysdig는 공개된 지 정확히 13일 만에 실제 공격 시도를 처음 포착했다고 밝혔습니다. 공격 시도는 ProtonVPN 출구 노드를 거쳐 들어왔고, 아직은 정찰 단계에 머물러 있다고 합니다. Sysdig에 따르면 현재 인터넷에 노출된 Gitea 인스턴스는 약 6200대로, 이 중 몇 대가 실제로 취약한 버전인지는 파악되지 않았습니다.
Gitea 취약점이 유독 찜찜한 이유
Gitea 서버 하나가 뚫리면 단순히 소스코드 유출로 끝나지 않습니다. 저장소 안에는 개발자가 실수로 커밋한 API 키, 데이터베이스 접속 정보, CI/CD 설정, 배포용 키 같은 민감한 값이 함께 들어있는 경우가 많습니다. 코드 저장소 하나가 곧 회사 인프라 전체로 가는 열쇠 꾸러미인 셈이라, 이번처럼 ‘설정값 하나’로 뚫리는 구조는 파급력이 클 수밖에 없습니다.
Gitea 운영자가 지금 확인할 것
- Docker로 Gitea를 운영 중이라면 버전이 1.26.3 또는 1.26.4 이상인지 확인하세요.
- 업데이트가 어렵다면 리버스 프록시 인증 기능을 끄거나, 컨테이너의 HTTP 포트가 외부에서 직접 접근되지 않도록 방화벽·프록시 설정을 점검하세요.
- 이미 인터넷에 노출된 상태로 운영해왔다면, 저장소 내 API 키·DB 비밀번호 등 하드코딩된 값을 새로 발급해 교체하는 걸 권장합니다.
- 최근 admin 등 관리자 계정의 낯선 로그인 이력이 없는지 서버 로그를 한 번 확인해보세요.
필자 노트
이번 사건은 어려운 제로데이가 아니라 ‘문서화된 안전 설정값을 실제 배포판이 따르지 않았다’는, 비교적 단순한 실수에서 비롯됐습니다. 무료로 편하게 쓰는 오픈소스 도구일수록 기본 설정을 그대로 켜두기 쉬운데, 그 기본값이 실제로 안전한지는 별개의 문제라는 걸 이번 사례가 보여줍니다. 사내에서 쓰는 오픈소스 인프라가 있다면, 공식 문서의 ‘권장 설정값’과 실제 운영 설정이 일치하는지 한 번쯤 대조해볼 필요가 있어 보입니다.