Ninja Forms 플러그인에서 발생한 CVE-2026-109997 취약점은 인증되지 않은 공격자가 ‘extra’ 파라미터와 메타데이터 키 정규화 과정을 악용해 악성 스크립트를 서버에 저장하는 인증 없는 저장형 XSS입니다.
CVE-2026-109997: ‘extra’ 파라미터를 이용한 인증 없는 저장형 XSS
WordPress 사이트 관리자들이 널리 쓰는 Ninja Forms 플러그인에서 심각한 보안 결함이 발견됐습니다. 식별 번호 CVE-2026-109997은 Wordfence가 발급했습니다.
취약점의 기술적 메커니즘
이 취약점은 인증되지 않은 저장형 크로스 사이트 스크립팅(Unauthenticated Stored Cross-Site Scripting) 유형입니다. 공격자는 별다른 인증 절차 없이 시스템에 접근해 악성 스크립트를 심습니다.
이번 취약점의 핵심 처리 요소로 지목된 것은 ‘extra’ 파라미터와 메타데이터 키 정규화(Metadata Key Normalization) 과정입니다. 입력값을 제대로 검증하거나 필터링하지 않아 정규화 과정에서 공격자가 의도한 스크립트가 그대로 데이터베이스에 저장되고, 이후 페이지 렌더링 때 실행되는 구조적 결함입니다.
영향 범위 및 대상 버전
이 취약점에 노출되는 대상은 WordPress Ninja Forms 플러그인이며, 영향 버전은 3.15.5 이하입니다. 지금 운영 중인 플러그인 버전이 이 범위에 드는지 바로 확인해 보세요.
CVE-2026-94504: 레거시 제출 편집기 취약점 및 실제 악용 사례
Ninja Forms 플러그인에는 CVE-2026-109997 외에도 비슷한 저장형 XSS 취약점인 CVE-2026-94504가 보고돼 있습니다. 같은 플러그인에서 취약점이 되풀이됐고, 실제 공격 사례까지 나오면서 위험성이 입증됐습니다.
CVE-2026-94504의 상세 내용
CVE-2026-94504는 Ninja Forms 3.15.3 이하 버전의 레거시 제출 편집기에서 발생합니다. 익명의 사용자가 입력한 non-RTE textarea 값이 HTML 인코딩 처리 없이 그대로 렌더링되면서 저장형 XSS로 이어집니다.
야생(In-the-wild) 공격 분석 및 피해 규모
CVE-2026-94504는 이론상 위험에 그치지 않고 실제 대규모 공격 캠페인에 이용됐습니다. 분석 결과, 이 취약점을 악용한 공격은 전 세계 53만 개 이상의 WordPress 사이트에 영향을 미쳤습니다.
공격자들은 다음과 같은 정교한 공격 체인으로 사이트를 장악했습니다:
- 저장형 XSS로 관리자의 nonces(일회성 토큰)를 탈취합니다.
- ‘WP Smart Thumbnails’라는 이름으로 위장한 백도어 플러그인을 강제로 설치합니다.
- 숨겨진 관리자 계정을 만들어 지속적인 접근 권한(Persistence)을 확보합니다.
저장형 XSS가 단순한 스크립트 실행을 넘어 사이트 전체의 관리 권한 상실과 백도어 설치라는 치명적인 결과로 이어질 수 있음을 보여 주는 사례입니다.
Ninja Forms 버전별 영향 범위 및 업데이트 권고
Ninja Forms 플러그인을 사용하는 관리자는 아래 취약점 정보를 바탕으로 신속한 조치가 필요합니다.
| CVE 식별 번호 | 영향 버전 | 취약점 유형 | 핵심 원인/요소 |
|---|---|---|---|
| CVE-2026-109997 | 3.15.5 이하 | 인증 없는 저장형 XSS | ‘extra’ 파라미터, 메타데이터 키 정규화 |
| CVE-2026-94504 | 3.15.3 이하 | 저장형 XSS | 레거시 제출 편집기 내 textarea HTML 인코딩 부재 |
보안 관리자 대응 가이드
현재 Ninja Forms 플러그인을 사용 중인 사이트 관리자와 보안 담당자는 아래 사항을 점검하기 바랍니다.
- 버전 업데이트: 3.15.5 이하 버전을 사용 중이라면 즉시 최신 버전으로 업데이트하세요. 참고로 Ninja Forms tag 3.15.7 버전의 readme.txt 기준 요구 PHP 버전은 7.4입니다.
- 비정상 플러그인 점검: CVE-2026-94504 사례처럼 ‘WP Smart Thumbnails’ 같은 의심스러운 이름의 플러그인이 설치돼 있는지, 혹은 알 수 없는 관리자 계정이 만들어져 있는지 전수 조사가 필요합니다.
인증되지 않은 상태에서도 공격이 가능하다는 점은 공격 진입 장벽이 매우 낮다는 뜻입니다. 신속한 패치 적용이 최선의 방어책입니다.