WordPress 플러그인 ‘Gravity SMTP’ 취약점, 실제 공격 악용 중 — API 키 노출 주의

2026.06.20

·

✦ guniq 시각

CVSS 5.3짜리 ‘중간 등급’ 취약점이 1,700만 건의 공격을 불렀다. 수치가 낮다고 패치를 미루는 것이 얼마나 치명적인지 이번 Gravity SMTP 사태가 다시 한번 증명했다. 이메일 API 키 하나가 스팸·피싱 발송 발판이 되고, OAuth 토큰 하나가 비즈니스 이메일 계정 전체를 내어준다. WordPress 플러그인을 “설치만 하면 끝”으로 여기는 중소기업이라면 반드시 읽어야 할 사례다.

▲ 이미지 출처: The Hacker News

Sponsored

2026년 5월 말, 전 세계 10만 개 이상의 WordPress 사이트에 설치된 이메일 전송 플러그인 ‘Gravity SMTP’가 대규모 사이버 공격의 표적이 됐다. 공격자들은 단 한 줄의 HTTP GET 요청으로 사이트 운영자가 연동해 둔 이메일 서비스 API 키, OAuth 토큰, SMTP 자격증명 전체를 쓸어갈 수 있었다. 이미 3월 17일에 보안 패치가 배포됐지만 수만 개 사이트가 구버전을 유지한 채 방치됐고, 그 대가를 6월 한 달간 치렀다.

Gravity SMTP란 무엇인가 — 플러그인의 역할과 위상

Gravity SMTP는 WordPress의 기본 이메일 발송 엔진(wp_mail)을 대체해 외부 트랜잭셔널 이메일 서비스로 메일을 라우팅하는 전문 플러그인이다. Amazon SES, SendGrid, Mailgun, Google Workspace(OAuth), Mailjet, Resend, Zoho Mail 등 주요 이메일 서비스와의 통합을 GUI로 제공하며, BleepingComputer 보도에 따르면 전 세계 WordPress 사이트 10만 개 이상에 활성 설치돼 있다. 이 규모가 이번 취약점을 특히 위험하게 만든 배경이다. 이메일 서비스 연동에는 필연적으로 높은 권한의 API 키나 OAuth 토큰이 필요하며, Gravity SMTP는 이 자격증명들을 WordPress 데이터베이스에 저장해 플러그인 내부에서 관리한다.

CVE-2026-4020: 단 하나의 GET 요청이 365KB를 토해낸다

이번 취약점은 CVE-2026-4020(GHSA-jxfc-8wcq-xxcg)으로 추적된다. SentinelOne 취약점 데이터베이스는 CVSS v3.1 벡터를 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N으로 산정했으며, 이는 ‘네트워크를 통해 / 복잡도 없이 / 권한 없이 / 사용자 조작 없이’ 기밀 정보를 고강도로 탈취할 수 있음을 의미한다. Wordfence 공식 발표 기준으로는 CVSS 5.3(중간)이 부여됐지만, 실제 공격 파급력은 점수와 크게 괴리됐다.

근본 원인은 코드 한 줄에 있다. Gravity SMTP는 WordPress REST API에 테스트·진단용 엔드포인트 /wp-json/gravitysmtp/v1/tests/mock-data를 등록하면서, 접근 권한 검사 함수(permission_callback)가 무조건 true를 반환하도록 구현됐다. Freshy Sites 보안 공지에 따르면, “An unauthenticated visitor can trigger the endpoint to return a large JSON system report” — 인증 절차가 전혀 없기 때문에 누구나 이 엔드포인트에 접근할 수 있었다.

여기에 쿼리 파라미터 ?page=gravitysmtp-settings를 덧붙이면 플러그인 내부의 register_connector_data() 메서드가 동작해 커넥터 데이터 전체를 메모리에 적재한다. 결과적으로 반환되는 JSON은 약 365KB에 달하는 ‘시스템 리포트’ 전문이며, 여기에는 다음이 모두 포함된다: PHP 버전·로드된 확장 모듈·문서 루트 경로, 웹서버 버전, 데이터베이스 플랫폼·버전·테이블명, WordPress 버전·활성 플러그인 전체 목록·활성 테마, WordPress 설정 상수, 그리고 플러그인에 구성된 모든 이메일 서비스의 API 키·시크릿·OAuth 토큰. CrowdSec 취약점 추적 보고서는 이를 “The exposed report is useful because it helps attackers decide how to come back with something worse”라고 평가했다 — 이 리포트 자체가 2차 공격의 정찰 데이터가 된다는 뜻이다.

“Unauthenticated attackers can retrieve sensitive system configuration data including PHP version, loaded extensions, web server version, document root path, database server type and version, WordPress version, all active plugins with versions, active theme, WordPress configuration details, database table names, and any API keys/tokens configured in the plugin.”

SentinelOne Vulnerability Database, CVE-2026-4020

취약점 공개부터 대규모 악용까지: 2개월 간의 타임라인

이번 사태의 흐름을 날짜별로 정리하면 패치 공개 이후에도 얼마나 많은 사이트가 무방비 상태로 남아있었는지가 선명하게 드러난다.

  • 2026년 3월 17일 — Gravity SMTP 2.1.5 패치 릴리스. 취약한 엔드포인트의 permission_callback 수정.
  • 2026년 3월 31일CVE-2026-4020 공식 게재(NVD 등재).
  • 2026년 5월 22일CrowdSec 탐지 룰 릴리스.
  • 2026년 5월 27일 — 야생(in-the-wild) 최초 악용 공격 관측. 5월 말까지 412개 이상의 공격 출처 IP가 식별됨.
  • 2026년 6월 6~7일 — 공격량 급등. Wordfence는 6월 7일 하루에만 400만 건 이상의 시도를 차단했다.
  • 2026년 6월 22일 — Wordfence 공식 발표 시점까지 총 1,700만 건 이상의 공격 시도 차단 집계.

패치가 나온 지 2개월이 지난 시점에 대규모 공격이 집중됐다는 사실은 두 가지를 시사한다. 첫째, 공격자들은 패치 공개 이후 익스플로잇을 자동화하고 대상을 스캔하는 데 수주가 걸린다. 둘째, 그 수주 사이에 업데이트하지 않은 사이트들이 표적이 된다. CrowdSec 분석에 따르면 공격 대상의 55%는 커머스 환경, 39%는 소호(SOHO) 배포 환경이었으며, 공격 목표의 83%는 ‘인프라 탈취’로 분류됐다.

API 키가 털리면 무슨 일이 벌어지나 — 연쇄 피해 시나리오

이 취약점이 CVSS 5.3이라는 수치보다 훨씬 위험한 이유는 노출된 자격증명이 즉시 2차 공격의 수단으로 전환된다는 점이다. Threat-Modeling.com 분석은 구체적인 공격 체인을 다음과 같이 설명한다: “With valid SMTP credentials, attackers can connect to the mail server and send emails that appear to originate from the legitimate domain, bypassing SPF, DKIM, and DMARC controls.” — 정상 도메인에서 발송된 것처럼 보이는 이메일이 이메일 인증 체계 전체를 우회한다는 뜻이다.

실제 피해 시나리오는 이메일 서비스별로 다르게 전개된다. SendGrid·Mailgun API 키를 탈취한 공격자는 해당 계정의 이메일 발송 쿼터를 모두 소진하는 스팸·피싱 캠페인을 즉시 구동할 수 있다. 피해는 이메일 서비스 요금 폭탄으로 나타나고, 도메인 평판이 훼손되어 정상 이메일이 스팸함으로 분류되기 시작한다. Google OAuth 토큰이 노출된 경우, 공격자는 Google Workspace 이메일함에 접근해 수신된 메일을 열람하거나 규칙을 추가해 특정 메일을 포워딩할 수 있다. 고객사 계약서, 직원 개인정보, 금융 명세서까지 유출될 수 있다. Amazon SES 자격증명은 AWS 계정 자체로의 추가 침투 발판이 될 수 있으며, SES 발송 한도 초과로 인한 계정 정지까지 이어진다.

더 나아가 365KB 시스템 리포트에 포함된 WordPress 플러그인 전체 목록과 버전 정보는 공격자에게 완벽한 공격 지도를 제공한다. 구버전 플러그인의 다른 취약점을 이어서 공략하는 ‘체인 공격’이 가능해지는 것이다.

동시에 발견된 두 번째 취약점 CVE-2026-4162 — 권한 검사 누락

Gravity SMTP 2.1.4 이하 버전에는 CVE-2026-4020 외에도 CVE-2026-4162(GHSA-66q3-hgw9-jr5j)가 함께 발견됐다. CVSS v3.1 점수 7.1, 벡터 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L로 분류된 이 취약점은 인증된 사용자라면 ‘구독자(Subscriber)’ 등급의 낮은 권한만으로도 Gravity SMTP 플러그인을 비활성화하거나 제거하고 플러그인 설정 전체를 삭제할 수 있게 한다. 멤버십 사이트나 WooCommerce 스토어처럼 일반 회원 계정이 존재하는 환경에서는 이메일 발송 시스템 자체를 내부자가 무력화하는 서비스 방해 공격이 가능하다. 두 취약점 모두 2026년 3월 17일 출시된 버전 2.1.5에서 패치됐다.

CVSS 점수의 함정 — ‘중간 등급’이 1,700만 건의 공격을 부른 이유

이번 사태에서 가장 주목해야 할 교훈은 CVSS 점수와 실제 비즈니스 위험의 괴리다. Wordfence가 부여한 CVSS 5.3은 표준 공식에 따른 수치지만, 이 공식은 ‘자격증명이 노출됐을 때 그것으로 할 수 있는 것’을 완전히 반영하지 못한다. CVSS는 취약점 자체의 특성을 측정하지만, 노출된 API 키가 다른 시스템에서 어떤 권한을 갖는지는 맥락(Context)의 문제이기 때문이다.

예를 들어, Amazon SES API 키의 IAM 정책이 ‘Full SES Access’로 설정돼 있다면, 그 키를 탈취한 공격자는 월 수천만 건의 메일 발송 권한을 얻는다. Mailgun API 키에 ‘Domain Sending’이 아닌 ‘Admin’ 권한이 부여돼 있다면, 도메인 설정 변경·삭제까지 가능하다. 이 세부 권한 구성은 CVSS 점수에 반영되지 않는다. 따라서 이메일 API 키처럼 타 시스템 접근 권한과 직결되는 자격증명이 노출되는 취약점은 실질 위험도가 점수보다 훨씬 높을 수 있다.

중소기업·WordPress 운영자를 위한 즉각 대응 체크리스트

아직 조치를 취하지 않은 사이트 운영자라면 지금 당장 다음 순서대로 실행해야 한다.

  • Gravity SMTP 즉시 업데이트 — WordPress 관리자 → 플러그인 → Gravity SMTP를 버전 2.1.5 이상으로 업데이트. 업데이트가 불가능한 경우 일시 비활성화.
  • 이메일 서비스 API 키 전면 재발급 — SendGrid, Mailgun, Amazon SES, Resend, Zoho, Mailjet 등 연동된 모든 서비스의 관리 콘솔에서 기존 API 키를 즉시 비활성화하고 새 키를 발급. Gravity SMTP에 새 키 재입력.
  • Google OAuth 접근 권한 재검토 — Google 계정 → 보안 → 타사 앱 접근에서 Gravity SMTP 연결을 삭제하고 재인증.
  • 서버 접근 로그 분석/wp-json/gravitysmtp/v1/tests/mock-data 엔드포인트에 대한 요청 기록을 확인. 특히 ?page=gravitysmtp-settings 파라미터를 포함한 GET 요청이 있다면 자격증명이 노출된 것으로 간주.
  • 이메일 발송 로그 점검 — 이메일 서비스 콘솔에서 비정상적인 대량 발송, 낯선 수신 도메인으로의 발송 여부 확인.
  • API 키 최소 권한 원칙 적용 — 이번 기회에 이메일 서비스 API 키를 발송 전용 최소 권한으로 재설정. Admin 권한 API 키는 플러그인 연동에 사용하지 않는다.
  • WordPress 자동 업데이트 활성화 — 보안 릴리스에 한해 자동 업데이트를 켜두면 다음 유사 사태에서 노출 기간을 단축할 수 있다.

출처: The Hacker News  |  BleepingComputer  |  GitHub Advisory GHSA-jxfc-8wcq-xxcg  |  GitHub Advisory GHSA-66q3-hgw9-jr5j  |  CrowdSec  |  SentinelOne  |  Freshy Sites  |  Threat-Modeling.com  |  작성자: Ravie Lakshmanan (원문)  |  발행일: 2026-06-20


MORE POSTS

다른 글 보기

테크 랩

GroupFlow 콜센터 통합 – 06. 통화 녹취, 금융사만 하는 거 아닙니다: 일반 기업이 녹취를 남겨야 하는 이유

통화 녹취는 금융사만? 일반 기업의 녹취 필요성과, 쌓아만 두지 않고 STT로 검색하는 녹취 관리.
2026.09.18
테크 랩

GroupFlow 콜센터 통합 – 05. 부재중 전화, 그냥 사라지고 있지 않나요: 통화 추적과 후속 관리 자동화

부재중 전화를 놓치지 않는 통화 추적·후속 관리 자동화 — 처리상태 태그·후속 필터·대시보드·문자 후속.
2026.09.17
테크 랩

GroupFlow 콜센터 통합 – 04. 교환기는 있는데 소프트폰만 쓰나요: LG U+ DCS를 그룹웨어에 연동하다

LG U+ DCS 같은 IP-PBX 교환기를 교체하지 않고 그룹웨어에 연동 — 레거시 소프트폰을 무중단으로 대체하는 방법.
2026.09.16

프로젝트 문의 환영합니다

기획부터 개발, 운영까지 함께 만들어 드립니다.

무료 3분 자가진단

우리 회사, 자체 클라우드가 답일까?

AWS vs 자체 인프라 · 11개 항목 3분 체크