🇰🇷 한글 설명
listmonk 6.2.0 미만 버전에서 발생하는 취약점으로, 특정 API 엔드포인트가 사용자 입력값을 적절히 검증하지 않아 SQL 인젝션이 가능합니다. 권한을 가진 인증된 사용자가 데이터베이스의 임의 테이블을 조회하거나 데이터를 수정하는 CTE를 실행할 수 있습니다.
💡 쉬운 설명
뉴스레터 관리 프로그램의 특정 기능에 보안 구멍이 있어, 권한이 있는 사용자가 데이터베이스의 중요한 정보를 몰래 훔쳐보거나 내용을 바꿀 수 있습니다. 이는 마치 허가된 직원이 금고의 비밀번호를 마음대로 조작할 수 있는 것과 같습니다.
🇺🇸 원문 (English)
listmonk is a standalone, self-hosted, newsletter and mailing list manager. Prior to 6.2.0, listmonk’s GET /api/subscribers/export endpoint injects the user-controlled query parameter into QuerySubscribersForExport in internal/core/subscribers.go without calling validateQueryTables, unlike GET /api/subscribers, allowing an authenticated user with subscribers:sql_query and subscribers:get_all to read arbitrary database tables such as users and settings and execute data-modifying PostgreSQL CTEs. This issue is fixed in version 6.2.0.
📍 영향받는 시스템
listmonk 6.2.0 미만 모든 버전
⚔️ 공격 벡터
인증된 사용자가 GET /api/subscribers/export 엔드포인트의 쿼리 파라미터에 악의적인 SQL 구문을 삽입하여 공격
🛡️ 대응 방법
listmonk를 최신 보안 패치가 적용된 6.2.0 버전 이상으로 업데이트
🔧 검증 코드
명령어 결과에 6.2.0 이상의 버전 번호가 출력되면 취약점이 해결된 상태입니다.
curl -s http://<target-ip>/api/version | grep -E '6.2.0'