🇰🇷 한글 설명
Adminer 4.16.0부터 6.0.1 버전의 Elasticsearch 드라이버에서 인증되지 않은 사용자가 SSRF 공격을 수행할 수 있는 취약점이 발견되었습니다. 공격자는 조작된 인증 파라미터를 통해 서버가 임의의 내부 호스트 및 포트로 HTTP 요청을 보내도록 유도할 수 있으며, 이를 통해 내부 네트워크 정찰 및 서비스 지문 인식이 가능합니다.
💡 쉬운 설명
해커가 로그인하지 않은 상태에서도 관리 도구를 이용해 서버 내부 네트워크를 몰래 훔쳐볼 수 있는 취약점입니다. 서버가 공격자가 지정한 내부 주소로 대신 접속하게 만들어 내부 정보를 캐낼 수 있습니다.
🇺🇸 원문 (English)
Adminer 4.16.0 through 6.0.1 contain a pre-authentication Server-Side Request Forgery (SSRF) vulnerability in the optional Elasticsearch driver (plugins/drivers/elastic.php), fixed in 6.0.2. Because adminer/include/auth.inc.php invokes Driver::connect() before the login result is validated, an unauthenticated attacker who submits crafted auth[server], auth[username], and auth[password] parameters can cause the Adminer server to issue an HTTP GET request (via get_url()/file_get_contents()) to an arbitrary reachable host and port. The driver validates only general server syntax and does not block loopback, private, link-local, or other reserved addresses; if no port is given it appends the default 9200, and Adminer's generic port check rejects ports below 1024. Selected JSON error fields from non-2xx Elasticsearch-style responses, as well as connection failures, are rendered on the login page, providing a port-scanning oracle and enabling internal network reconnaissance and service fingerprinting. Exploitation requires that the optional Elasticsearch driver be explicitly deployed (e.g., via the adminer/elastic.php template or an adminer_object() configuration; it is not loaded in a default build) and that PHP allow_url_fopen be enabled.
📍 영향받는 시스템
Adminer 4.16.0 ~ 6.0.1 (Elasticsearch 드라이버가 활성화된 경우)
⚔️ 공격 벡터
조작된 auth[server] 등의 파라미터를 전송하여 서버가 내부 네트워크로 HTTP GET 요청을 보내도록 유도
🛡️ 대응 방법
Adminer를 6.0.2 버전 이상으로 업데이트하거나, 사용하지 않는 Elasticsearch 드라이버를 제거하십시오.
🔧 검증 코드
Adminer 설치 디렉토리 내의 소스 코드 버전 정보를 확인하여 6.0.2 미만인지 점검하십시오.
php -r 'echo "Adminer version check";' # 실제 버전 확인은 설치된 파일의 소스 코드를 직접 확인해야 함