
이메일 마케팅·CRM 서비스 Brevo의 소스코드에 하드코딩(고정 저장)된 Cloudflare API 키가 공격자에게 탈취되어, 2026년 9월 14일 약 5시간 30분 동안 공급망 공격이 발생했습니다. 공격자는 이 키를 이용해 CDN(콘텐츠 전송 네트워크) 엣지에서 Brevo의 스크립트를 변조하고, Brevo를 사용하는 고객 사이트 방문자에게 가짜 Cloudflare 인증 페이지와 ClickFix(악성 명령 실행을 유도하는 수법) 화면을 표시했습니다. WordPress 관리자 계정으로 로그인한 상태에서 해당 사이트를 방문한 경우, 백도어 기능을 가진 악성 플러그인이 자동으로 설치되어 공격자 서버와 지속 통신하는 추가 피해가 발생했습니다. 최대 100,000개의 웹사이트가 영향을 받았을 수 있으며, 9월 14일 해당 사이트를 WordPress 관리자로 방문했다면 즉시 플러그인 점검과 비밀번호 교체가 필요합니다.
Brevo 소스코드에 하드코딩된 전체 권한 Cloudflare API 키가 탈취되어, 공격자가 악성 Cloudflare Worker를 생성하고 CDN 엣지에서 Brevo 스크립트에 ClickFix 악성코드를 주입했다. Brevo 자체 도메인과 고객 사이트에 임베드된 폼·위젯·SDK 스크립트가 모두 변조됐다.
2026년 9월 14일 UTC 16:07~20:30 약 5시간 30분 동안 최대 100,000개 고객 사이트에 악성 스크립트가 배포됐고, WordPress 관리자 권한으로 방문한 이용자는 백도어 플러그인(Web Media Optimizer)이 자동 설치되는 추가 피해를 입었다. 직전 SSO 침해 사건과 연계하여 Trezor 고객 347,000명 이메일이 피싱 피해를 입기도 했다.
애플리케이션 소스코드에 전체 계정 권한을 가진 Cloudflare API 키가 하드코딩되어 있었으며, 공격자는 이를 탈취해 CDN 엣지에서 Content-Security-Policy(콘텐츠 보안 정책) 등 보안 헤더를 제거하는 Worker를 생성했다. 원본 서버와 파일은 변조되지 않아 일반적인 무결성 검사로는 탐지되지 않았다.
Brevo는 악성 Worker와 라우트를 즉시 제거하고, 탈취된 키 및 파생 자격증명을 모두 폐기했으며 소스코드 내 하드코딩 자격증명을 삭제하고 엣지 캐시를 초기화했다. app.brevo.com, API, 이메일 발송 인프라, 고객 계정 데이터는 영향 없다고 밝혔다.
9월 14일 Brevo 임베드 스크립트가 포함된 사이트를 WordPress 관리자 계정으로 방문했다면, 해당 날짜 설치·활성화된 이상 플러그인을 즉시 점검·삭제하고 관리자 비밀번호를 교체해야 한다. 근본 원인인 소스코드 내 API 키·시크릿 하드코딩 관행을 전사적으로 재점검하고, Secrets Manager 등 안전한 자격증명 관리 체계 도입이 필요하다.
본문
Brevo는 공격자가 Cloudflare API 키를 탈취하여 악성 ClickFix 스크립트를 자사 웹사이트와 고객 사이트에 임베드된 JavaScript 파일에 주입해 악성코드를 배포했다고 확인했다.
이 고객 관계 관리(CRM)·디지털 마케팅 기업에 따르면, 공격자는 탈취한 API 키를 이용해 악성 Cloudflare Worker를 생성하고 9월 14일 약 5시간 30분 동안 CDN 엣지에서 콘텐츠를 변조했다.
이번 공격은 brevo.com, sendinblue.com, login/account/my/onboarding.brevo.com, sibforms.com 페이지에 영향을 미쳤다. 또한 해당 Cloudflare Worker는 고객이 자신의 웹사이트에 임베드하는 Brevo 폼 스크립트, Brevo Conversations 위젯, Brevo SDK 로더 스크립트도 변조했다.
오늘 공개된 사후 분석 보고서에서 Brevo는 공격자가 애플리케이션 소스코드에 하드코딩된, 전체 계정 권한을 가진 장기 유효 Cloudflare API 키를 입수했다고 설명했다. 이를 통해 공격자는 경보를 발생시키지 않고 Brevo의 전체 존(zone)에 걸쳐 Cloudflare Worker, 라우트, DNS 레코드를 자유롭게 생성할 수 있었다.
"Worker가 엣지에서 응답을 재작성하고 Content-Security-Policy(콘텐츠 보안 정책) 등 보안 헤더를 제거했기 때문에, 원본 서버와 파일은 변조되지 않았으며 일반적인 무결성 검사로는 변화를 감지할 수 없었습니다."라고 Brevo는 설명했다.
회사 측은 해당 키가 이르면 8월 말에 이미 유출됐을 수 있지만, 이전의 악의적인 활동 정황은 발견되지 않았다고 밝혔다.
침해 사실을 인지한 즉시 Brevo는 Worker와 라우트를 제거했으며, 노출 시간대를 UTC 16:07~20:30으로 확정했다.
이후 몇 시간 동안 회사는 탈취된 키와 이를 통해 생성된 자격증명을 폐기하고, 소스코드에서 하드코딩된 자격증명을 제거했으며, 공격자가 만든 호스트명을 삭제하고 엣지 캐시를 초기화했다.
Brevo는 app.brevo.com, API, 이메일 발송 인프라, 고객 계정 데이터는 영향을 받지 않았다고 밝혔다.
ClickFix 공격에 악용
이 사건은 보안 기업 Sansec이 처음 보고했으며, Sansec은 영향을 받은 Brevo 구성 요소를 사용하는 최대 100,000개의 웹사이트가 피해를 입었을 수 있다고 밝혔다.
Sansec에 따르면 사건은 2026년 9월 14일 UTC 16:05~20:13 사이에 발생했으며, 9월 15일부로 모든 악성 서브도메인의 응답이 중단됐고 Brevo 파일도 현재는 정상임을 확인했다.
해당 웹사이트 방문자에게는 가짜 Cloudflare 인증 페이지가 표시됐고, 이어서 Windows에서 명령어를 실행하도록 유도하는 ClickFix 안내가 나타났다.
영향을 받은 Brevo 위젯이 임베드된 WordPress 웹사이트에서는 스크립트가 방문자의 관리자 로그인 여부를 확인하고, https://cdn10.sendibt1[.]com/p/wm.zip에서 악성 플러그인을 업로드하려 시도하기도 했다.
Sansec은 해당 아카이브를 직접 수집하지는 못했지만, BleepingComputer가 VirusTotal에 업로드된 파일을 확인한 결과 "Web Media Optimizer"라는 이름의 WordPress 플러그인으로 위장하고 있으나 실제로는 지속형 백도어 및 JavaScript 로더로 동작하는 악성코드임을 확인했다.
BleepingComputer가 확인한 악성 WordPress 플러그인 및 스크립트를 배포하는 다른 도메인으로는 https://yelahaye[.]surf와 https://boiseno[.]club이 있다.
설치 후 이 플러그인은 WordPress 플러그인 목록에서 자신을 숨기고, 영속성을 위해 must-use 플러그인 디렉터리에 자신을 복사하며, 공격자가 통제하는 'https://glegchner.com/ads.php' 서버에 주기적으로 접속한다.
인증 자격증명이 편집 처리된 악성 Web Media Optimizer 플러그인
출처: BleepingComputer
현재 해당 URL은 Base64로 인코딩된 URL을 반환하고 있으며, 플러그인은 이 URL이 가리키는 JavaScript를 방문자 페이지에 주입한다. Base64로 인코딩된 현재 URL을 디코딩하면 https://corralos[.]beer/a412dkoq.js가 나오며, 사이트는 이를 통해 ClickFix 유인 화면을 표시하는 스크립트를 불러온다.
또한 이 플러그인은 마지막으로 유효했던 JavaScript URL의 백업 사본을 저장하여, 원격 서버가 불가용 상태가 되어도 악성 코드를 계속 로드할 수 있도록 한다.
마지막으로, 이 플러그인에는 하드코딩된 인증 키가 포함되어 있어, 공격자가 계정 비밀번호를 몰라도 WordPress 관리자 계정의 유효한 로그인 세션을 생성할 수 있다.
9월 10일, Brevo는 SSO(단일 로그인) 관련 별개의 침해 사건을 공개한 바 있다. 당시 공격자는 고객 계정을 탈취하고 Brevo를 사용하는 기업의 고객들을 대상으로 피싱 공격을 감행했다.
대표적인 피해 사례로는 암호화폐 지갑 제조사 Trezor가 있으며, Trezor는 9월 11일 347,000명의 사용자 이메일 주소로 피싱 공격이 발생했고 최소 2,500명의 계정이 실제로 침해됐다고 보고했다.
Brevo는 SSO 침해 사건과 이번 Cloudflare 침해 사건의 연관성에 대한 BleepingComputer의 질문에 답하지 않았다.
9월 14일 영향을 받은 사이트를 WordPress 관리자 계정으로 방문한 관리자는 해당 날짜에 설치되거나 활성화된 이상 플러그인을 확인하고 제거해야 한다. 플러그인이 발견된 경우 관리자 비밀번호도 함께 교체해야 한다.
관련 투런 솔루션
이 뉴스의 취약점·위협, 투런 솔루션으로 대응하세요.






