🇰🇷 한글 설명
WordPress의 Advanced Import 플러그인 1.4.6 이하 버전에서 서버 측 요청 위조(SSRF) 취약점이 발견되었습니다. demo_download_and_unzip() 함수가 사용자 입력 URL을 검증 없이 wp_remote_get()으로 호출하여 내부 네트워크 자원이나 클라우드 메타데이터에 접근할 수 있습니다. 권한이 있는 공격자는 이를 통해 웹 애플리케이션을 경유하여 내부 서비스 데이터를 조회할 수 있습니다.
💡 쉬운 설명
해커가 웹사이트의 기능을 악용하여 서버가 내부 네트워크의 비밀 정보나 다른 컴퓨터에 접속하도록 명령을 내릴 수 있는 문제입니다. 이를 통해 서버 내부의 민감한 데이터가 유출될 위험이 있습니다.
🇺🇸 원문 (English)
The Advanced Import plugin for WordPress is vulnerable to Server-Side Request Forgery in all versions up to, and including, 1.4.6. This is due to the plugin using wp_remote_get() to fetch a user-supplied URL without validating that the URL does not point to internal or private network resources in the demo_download_and_unzip() function. The 'demo_file' parameter from $_POST is passed through sanitize_text_field() (which only handles XSS-related sanitization) and then directly into wp_remote_get() when 'demo_file_type' is set to 'url'. Notably, the plugin uses wp_safe_remote_get() in other locations (theme template libraries) which would provide SSRF protection, but fails to use it in this critical AJAX handler. This makes it possible for authenticated attackers, with Author-level access and above (upload_files capability), to make web requests to arbitrary locations originating from the web application, which can be used to query and view data from internal services, including cloud instance metadata endpoints.
📍 영향받는 시스템
WordPress Advanced Import plugin (버전 1.4.6 및 그 이하 모든 버전)
⚔️ 공격 벡터
인증된 공격자(Author 권한 이상)가 'demo_file' 파라미터에 내부 네트워크 URL을 입력하여 AJAX 요청을 전송
🛡️ 대응 방법
플러그인을 최신 버전으로 업데이트하거나, wp_remote_get() 대신 wp_safe_remote_get()을 사용하도록 코드를 수정해야 합니다.
🔧 검증 코드
출력된 플러그인 목록에서 advanced-import의 버전이 1.4.6 이하인지 확인합니다.
wp plugin list --all | grep -E 'advanced-import'