🇰🇷 한글 설명
Cap-go capgo(capgo-backend) 12.128.12 이전 버전에서 Supabase PostgREST API를 통해 audit_logs 테이블에 접근할 때 인증되지 않은 서비스 거부(DoS) 취약점이 발생합니다. PostgreSQL 쿼리 플래너가 RLS(행 수준 보안) 거부 전에 비용이 많이 드는 로직을 실행하기 때문에, 필터링되지 않은 쿼리가 데이터베이스 리소스를 고갈시켜 애플리케이션 전체의 장애를 유발할 수 있습니다.
💡 쉬운 설명
해커가 특수한 요청을 계속 보내면 데이터베이스가 너무 많은 일을 하느라 지쳐서 서비스가 멈춰버리는 문제입니다. 이로 인해 정상적인 사용자들도 웹사이트를 이용할 수 없게 됩니다.
🇺🇸 원문 (English)
Cap-go capgo (capgo-backend) before 12.128.12 contains an unauthenticated denial-of-service vulnerability arising from the audit_logs table's Row-Level Security (RLS) policy when accessed via the Supabase PostgREST API. Because the PostgreSQL query planner executes costly logic before RLS rejection, unfiltered queries to the public.audit_logs endpoint using the public anon key consistently trigger statement timeouts (PostgREST error 57014). Under concurrency, this exhausts database resources and causes cascading HTTP 500 failures on unrelated endpoints (e.g. /orgs), resulting in an application-layer denial of service.
📍 영향받는 시스템
Cap-go capgo (capgo-backend) version < 12.128.12
⚔️ 공격 벡터
인증되지 않은 상태에서 public.audit_logs 엔드포인트에 필터링되지 않은 고비용 쿼리 전송
🛡️ 대응 방법
capgo-backend를 12.128.12 이상의 최신 버전으로 업데이트하십시오.
🔧 검증 코드
명령어 결과에 12.128.12 이상의 버전 번호가 나타나지 않으면 취약한 버전일 가능성이 높습니다.
curl -s http://<target-host>/version | grep -E '12\.(12[8-9]|1[2-9][0-9]|[2-9][0-9]{2,})'