🇰🇷 한글 설명
DbGate 7.1.8 및 이전 버전의 /runners/load-reader 엔드포인트에서 functionName 파라미터에 대한 검증 미흡으로 인해 발생하는 취약점입니다. 인증된 사용자가 악성 JavaScript 코드를 주입하여 서버 권한으로 임의의 명령을 실행하거나 파일을 읽고 쓸 수 있습니다.
💡 쉬운 설명
데이터베이스 관리 도구인 DbGate에 로그인한 사용자가 서버를 마음대로 조종할 수 있는 보안 구멍이 발견되었습니다. 이를 통해 해커는 서버의 파일을 훔치거나 컴퓨터 전체를 장악할 수 있습니다.
🇺🇸 원문 (English)
DbGate is cross-platform database manager. In versions 7.1.8 and prior, the POST /runners/load-reader endpoint in DbGate accepts a functionName parameter that is directly interpolated into a JavaScript code template without any sanitization or validation. An authenticated user (with basic access, no special permissions required) can inject arbitrary JavaScript code that executes on the server with full process privileges, bypassing the require=null sandbox restriction. An authenticated user with basic access (no admin role, no run-shell-script permission required) can: execute arbitrary OS commands on the DbGate server with the privileges of the Node.js process, read/write any file accessible to the process, pivot to connected databases by reading connection credentials from DbGate's storage, and compromise the host system - in Docker deployments, this typically means root access within the container. Version 7.1.9 contains a patch.
📍 영향받는 시스템
DbGate 7.1.8 및 그 이전 모든 버전
⚔️ 공격 벡터
인증된 사용자가 조작된 functionName 파라미터를 포함한 POST 요청을 전송하여 JavaScript 코드 주입
🛡️ 대응 방법
DbGate를 최신 패치 버전인 7.1.9 이상으로 즉시 업데이트하십시오.
🔧 검증 코드
명령어 결과에 7.1.8 이하의 버전 번호가 출력되면 취약한 버전이 설치된 상태입니다.
curl -s http://localhost:PORT/version | grep -E '7\.[0-1]\.[0-8]'