🇰🇷 한글 설명
WordPress 플러그인 'The Newsletter'의 클릭 추적 REST API(`/tnp/l/`)에서 인증 정보 보호 미흡 취약점이 발견되었습니다. 공격자가 유효한 서명이 포함된 클릭 추적 URL을 획득할 경우, 해당 구독자의 원본 인증 쿠키를 탈취하여 개인정보를 유출하거나 프로필을 수정하고 구독을 해지할 수 있습니다.
💡 쉬운 설명
뉴스레터에 포함된 링크를 클릭할 때 사용하는 추적 주소가 보안에 취약하여, 이 링크를 가로챈 사람이 사용자의 계정 권한을 몰래 훔칠 수 있습니다. 이를 통해 공격자는 사용자의 개인정보를 빼가거나 계정 설정을 마음대로 바꿀 수 있습니다.
🇺🇸 원문 (English)
The Newsletter – Send awesome emails from WordPress plugin for WordPress is vulnerable to Insufficiently Protected Credentials in all versions up to, and including, 9.3.9 The plugin's public click-tracking REST route `/tnp/l/` is registered with `permission_callback => '__return_true'` and, upon receiving a valid keyed-MD5 signature, calls `set_user_cookie()`, which emits a `Set-Cookie: newsletter=<id>-<raw_token>` response header to the requester because the subscriber object loaded via `get_user()` lacks the `_trusted` property, causing `get_user_key()` to return the raw token column value instead of its MD5-masked variant. This makes it possible for unauthenticated attackers who obtain any signed click-tracking URL for a target subscriber to receive that subscriber's permanent raw authentication cookie, which they can then use to export the subscriber's full PII record via the JSON profile-export endpoint (`?na=px`), rewrite the subscriber's stored profile (`?na=ps`), and silently unsubscribe the subscriber via the RFC-8058 one-click endpoint (`?na=ocu`), none of which require a nonce, password, or email challenge. Signed tracking URLs are embedded in every external link of every newsletter delivered to a subscriber, carry no timestamp, and never expire until the site's relink key rotates, meaning that any party who observes such a URL — through a forwarded email, a shared inbox, a mail-gateway log, or Referer headers on the redirect target, which has no Referrer-Policy set — can replay it indefinitely to obtain the victim's credential.
📍 영향받는 시스템
The Newsletter WordPress plugin version 9.3.9 및 그 이하 모든 버전
⚔️ 공격 벡터
이메일에 포함된 클릭 추적 URL을 가로채어 REST API 엔드포인트에 재전송함으로써 인증 쿠키 탈취
🛡️ 대응 방법
플러그인을 최신 버전으로 업데이트하거나, 보안 패치가 적용된 버전으로 즉시 업그레이드하십시오.
🔧 검증 코드
출력된 플러그인 버전이 9.3.9 이하인지 확인하십시오.
wp plugin list --allow-root | grep -E 'the-newsletter'