CVE-2026-109997: Ninja Forms 인증 없는 저장형 XSS 취약점이란?

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 사이트에 영향을 미쳤습니다.

공격자들은 다음과 같은 정교한 공격 체인으로 사이트를 장악했습니다:

  1. 저장형 XSS로 관리자의 nonces(일회성 토큰)를 탈취합니다.
  2. ‘WP Smart Thumbnails’라는 이름으로 위장한 백도어 플러그인을 강제로 설치합니다.
  3. 숨겨진 관리자 계정을 만들어 지속적인 접근 권한(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 플러그인을 사용 중인 사이트 관리자와 보안 담당자는 아래 사항을 점검하기 바랍니다.

  1. 버전 업데이트: 3.15.5 이하 버전을 사용 중이라면 즉시 최신 버전으로 업데이트하세요. 참고로 Ninja Forms tag 3.15.7 버전의 readme.txt 기준 요구 PHP 버전은 7.4입니다.
  2. 비정상 플러그인 점검: CVE-2026-94504 사례처럼 ‘WP Smart Thumbnails’ 같은 의심스러운 이름의 플러그인이 설치돼 있는지, 혹은 알 수 없는 관리자 계정이 만들어져 있는지 전수 조사가 필요합니다.

인증되지 않은 상태에서도 공격이 가능하다는 점은 공격 진입 장벽이 매우 낮다는 뜻입니다. 신속한 패치 적용이 최선의 방어책입니다.

댓글 남기기