🇰🇷 한글 설명
Appsmith 2.1 미만 버전에서 번들로 포함된 Caddy 리버스 프록시의 관리 API가 인증 없이 0.0.0.0:2019에 바인딩되어 있습니다. 권한이 낮은 인증된 사용자가 SSRF 취약점을 이용해 이 API에 접근함으로써 Caddy 설정을 완전히 교체하고 리버스 프록시를 장악할 수 있습니다.
💡 쉬운 설명
앱 관리 도구 내부의 설정 관리 기능이 암호 없이 열려 있어, 해커가 이를 조작할 수 있는 상태입니다. 이를 통해 공격자는 웹사이트의 통제권을 완전히 빼앗을 수 있습니다.
🇺🇸 원문 (English)
Appsmith is a platform to build admin panels, internal tools, and dashboards. Prior to 2.1, the bundled Caddy reverse-proxy's admin API — which has no authentication by default — is bound on 0.0.0.0:2019 inside the container. While this listener is not directly published to the host by docker-compose.yml, it is reachable from the Appsmith server process itself or a SSRF vulnerability. An authenticated low-privileged user can therefore drive the SSRF to issue POST /load (or any other admin-API call) against http://0.0.0.0:2019/, fully replacing the live Caddy configuration and taking over the reverse proxy. This vulnerability is fixed in 2.1.
📍 영향받는 시스템
Appsmith versions prior to 2.1
⚔️ 공격 벡터
Authenticated low-privileged user exploiting SSRF to access the unauthenticated Caddy admin API
🛡️ 대응 방법
Update Appsmith to version 2.1 or later
🔧 검증 코드
명령어 실행 결과 'API reachable'이 출력되면 취약한 상태이며, 오류 메시지가 나오면 안전한 상태입니다.
curl -s http://localhost:2019/admin/config | grep -q 'error' && echo 'API reachable' || echo 'API not reachable'