🔍 CVE-2025-47909

7.3
CVSS Score
HIGH
2025-08-29
2026-10-19 17:10
✅ 완료

🇰🇷 한글 설명

TrustedOrigins에 등록된 호스트는 스키마 검증을 무시하고 HTTP와 HTTPS 출처를 모두 허용하여 CSRF 공격을 가능하게 합니다. 공격자가 신뢰된 도메인의 HTTP 버전에서 폼을 배치하면, 사용자가 접속할 때 HTTPS 서버로 위조된 요청을 전송할 수 있습니다.

💡 쉬운 설명

웹사이트가 신뢰 목록에 추가한 도메인의 암호화되지 않은 버전(HTTP)도 함께 신뢰하게 되어, 공격자가 이를 악용해 사용자 모르게 요청을 조작할 수 있습니다. 이는 사용자가 의도하지 않은 작업(송금, 설정 변경 등)을 실행하게 하는 공격입니다.

🇺🇸 원문 (English)

Hosts listed in TrustedOrigins implicitly allow requests from the corresponding HTTP origins, allowing network MitMs to perform CSRF attacks. After the CVE-2025-24358 fix, a network attacker that places a form at http://example.com can't get it to submit to https://example.com because the Origin header is checked with sameOrigin against a synthetic URL. However, if a host is added to TrustedOrigins, both its HTTP and HTTPS origins will be allowed, because the schema of the synthetic URL is ignored and only the host is checked. For example, if an application is hosted on https://example.com and adds example.net to TrustedOrigins, a network attacker can serve a form at http://example.net to perform the attack. Applications should migrate to net/http.CrossOriginProtection, introduced in Go 1.25. If that is not an option, a backport is available as a module at filippo.io/csrf, and a drop-in replacement for the github.com/gorilla/csrf API is available at filippo.io/csrf/gorilla.

📍 영향받는 시스템

Go 1.25 미만 버전의 net/http.Server 및 gorilla/csrf 등 기반 애플리케이션

⚔️ 공격 벡터

공격자가 신뢰된 도메인의 HTTP 사이트에 숨겨진 폼을 배치하여 사용자가 접속했을 때 HTTPS 서버의 다른 도메인으로 위조 요청 전송

🛡️ 대응 방법

Go 1.25 이상으로 업그레이드하여 net/http.CrossOriginProtection 사용, 또는 filippo.io/csrf 모듈 적용

🔧 검증 코드

Safe가 출력되면 Go 1.25 이상(안전), Vulnerable이 출력되면 업그레이드 필요. Go가 설치되지 않았으면 grep으로 소스코드에서 TrustedOrigins 사용 여부 확인

Shell / Script
go version 2>/dev/null | grep -E 'go1\.(2[5-9]|[3-9][0-9])' && echo 'Safe' || echo 'Vulnerable'

📊 CVSS Vector String

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

💻 영향받는 소프트웨어

Git