🇰🇷 한글 설명
Craft CMS의 GraphQL save<Volume>Asset mutation에서 서버 측 요청 위조(SSRF) 취약점이 발견되었습니다. 검증 로직이 CGNAT 및 NAT64 범위를 누락하고 요청이 이미 실행된 후 IP를 확인하는 결함이 있어, 공격자가 내부 네트워크 정보를 탈취하거나 내부 서비스에 접근할 수 있습니다.
💡 쉬운 설명
해커가 웹사이트의 기능을 악용하여 서버가 내부 네트워크에 있는 다른 컴퓨터나 데이터에 몰래 접근하도록 명령을 내릴 수 있는 문제입니다. 이를 통해 회사의 내부 정보가 유출되거나 내부 시스템이 공격받을 위험이 있습니다.
🇺🇸 원문 (English)
Craft CMS versions >= 5.0.0-RC1 before 5.10.6 and >= 4.0.0-RC1 before 4.18.2 contain a server-side request forgery vulnerability in the GraphQL save<Volume>Asset mutation, which fetches an attacker-supplied URL server-side. The anti-SSRF validation is incomplete: validateIp() does not cover CGNAT (100.64.0.0/10) or NAT64 (64:ff9b::/96) ranges, and the only IP check runs after the request has already been issued. An attacker holding a GraphQL token scoped only to asset-creation permissions can disclose internal HTTP content from CGNAT/NAT64 targets, force outbound GET requests to internal hosts (including RFC1918, loopback, and metadata endpoints), and enumerate internal services.
📍 영향받는 시스템
Craft CMS versions >= 5.0.0-RC1 (before 5.10.6) and >= 4.0.0-RC1 (before 4.18.2)
⚔️ 공격 벡터
GraphQL 토큰을 이용해 조작된 URL을 포함한 save<Volume>Asset mutation 요청을 전송
🛡️ 대응 방법
Craft CMS를 최신 보안 패치 버전(5.10.6 이상 또는 4.18.2 이상)으로 업데이트
🔧 검증 코드
출력된 버전이 5.10.6 미만 또는 4.18.2 미만인지 확인하여 취약 여부를 판단합니다.
composer show craft/cms | grep 'versions'