🇰🇷 한글 설명
Vitess 24.0.2 및 이전 버전에서 /debug/vrlog 엔드포인트에 적절한 접근 제어(ACL)가 누락되어 발생합니다. 공격자가 vttablet 디버그 HTTP 포트에 접근할 수 있다면 보안 정책을 우회하여 SQL 문과 애플리케이션 데이터가 포함된 VrLogStats 데이터를 스트리밍할 수 있습니다.
💡 쉬운 설명
데이터베이스 관리 도구의 특정 페이지에 비밀번호 확인 절차가 빠져 있는 상태입니다. 이를 통해 해커가 데이터베이스에서 실행되는 중요한 SQL 명령어나 민감한 정보를 몰래 훔쳐볼 수 있습니다.
🇺🇸 원문 (English)
Vitess is a database clustering system for horizontal scaling of MySQL. In 24.0.2 and earlier, the /debug/vrlog endpoint registered by addHttpEndpoint() in go/vt/vttablet/tabletmanager/vreplication/vrlog.go invokes vrlogStatsHandler() without acl.CheckAccessHTTP(r, acl.DEBUGGING), unlike comparable debug endpoints. A remote caller who can reach the vttablet debug HTTP port can bypass the configured security policy and stream VrLogStats data produced from NewVrLogStats().Send(), including literal SQL statements and bound application values from MoveTables, Reshard, Materialize, and vitess-strategy Online DDL workflows
📍 영향받는 시스템
Vitess 24.0.2 및 그 이전 모든 버전
⚔️ 공격 벡터
vttablet 디버그 HTTP 포트에 접근 가능한 원격 공격자가 인증 없이 엔드포인트 호출
🛡️ 대응 방법
Vitess를 최신 보안 패치가 적용된 버전으로 업데이트하거나 디버그 HTTP 포트의 접근 제어를 강화하십시오.
🔧 검증 코드
명령어 결과로 HTTP 200 OK가 반환된다면 인증 없이 데이터에 접근 가능한 취약한 상태입니다.
curl -s -I http://<vttablet-ip>:<debug-port>/debug/vrlog | grep -E 'HTTP/1.1 200 OK'