Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/abraxas/cve-2026-13447
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityCryptographyPenetration TestingAuthenticationLabs & Practice
GitHubabraxas/cve-2026-13447

CVE-2026-13447

CVE-2026-13447에 대한 개념 증명 익스플로잇으로, 위조된 Firebase JWT 토큰을 통해 WordPress MStore API 플러그인의 치명적인 인증 우회를 악용하며, 로컬 랩 재현을 포함합니다.

저장소 보기
5시간 20분 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs — CVE-2026-13447 — WordPress

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  CVE-2026-13447

CVE-2026-13447 — WordPress

WordPress — MStore API 4.18.4 — inspireui

WordPress용 Mstore Api 플러그인은 4.20.0 이하 버전에서 JWT 위조를 통한 인증 우회에 취약합니다. 이는 FirebasePhoneAuthHelper::verify_id_token() 함수에서 암호화 서명 검증이 누락되어 있기 때문이며, 이 함수는 Firebase ID 토큰 클레임(alg, kid, aud, iss)을 디코딩하고 검증하지만 Google의 실제 공개 키 인증서에 대해 JWT 서명을 검증하기 위해 openssl_verify() 또는 이에 상응하는 함수를 호출하지 않습니다. 이로 인해 인증되지 않은 공격자가 자체 생성한 RSA 키 쌍으로 서명된 Firebase Phone Auth JWT를 위조하고 임의의 전화번호를 사칭할 수 있으며, 그 결과 기존 WordPress 계정에 대한 무단 접근이나 새로운 임의 계정 생성이 가능해집니다.

CVECVE-2026-13447 · CVE.org
CWECWE-287
CVSSCritical: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
ProductWordPress — MStore API
Affected4.20.0까지 모든 버전 (lab 4.18.4; 4.20.0 zip 없음)
Patched4.21.1 이상
Auth없음 (소스 맵 참조)
LicenseGNU Affero GPL v3.0
Lab127.0.0.1 전용 · 벤더/클라이언트 공개 패키지, 스캐너 아님

권고 (소스 맵에서 발췌)

verify_id_token이 싱크입니다. HTTP는 JSON id_token을 사용하는 POST firebase_sms_v2이며, verify_id_token이라는 쿼리 파라미터가 아닙니다.


진입점

  • Method: POST
  • Path: /wp-json/api/flutter_user/firebase_sms_v2
  • Router: POST /wp-json/api/flutter_user/firebase_sms_v2 (또한 /?rest_route=/api/flutter_user/firebase_sms_v2). FlutterUserController의 permission_callback인 isPurchaseCodeVerified는 항상 true입니다. firebase_sms_verify_id_token은 php://input의 id_token을 읽습니다. FirebasePhoneAuthHelper::verify_id_token은 alg, Google 키 목록의 kid, 업로드된 firebase json의 aud/iss를 확인하고 phone_number를 반환합니다. firebase_sms_login_v2는 registered_phone_number를 조회하고 generateCookieByUserId를 반환합니다. 4.21.1에서 서명 검증이 추가되었습니다.
  • Notes: CVE-2026-13447 CWE-287 MStore API 4.18.4 (NVD는 4.20.0까지; 4.20.0 zip 없음). JSON의 Witness POCWitness13447. 리버스 셸이 아닙니다.

호출 체인

  • GET Google x509 metadata, pick a kid
  • Build unsigned-verify JWT RS256 kid=that, aud=poc13447, iss=https://securetoken.google.com/poc13447, phone_number=+15551213447
  • POST /wp-json/api/flutter_user/firebase_sms_v2 {id_token}
  • verify_id_token skips openssl_verify, returns +15551213447
  • firebase_sms_login_v2 get_users registered_phone_number=that phone -> user 1
  • JSON cookie + displayname POCWitness13447

Lab 사전 조건

  • MStore API 4.18.4
  • uploads/flutter_firebase/poc13447.json project_id=poc13447, option mstore_firebase_file_name
  • admin registered_phone_number=+15551213447 display_name=POCWitness13447
  • lab 호스트가 Google x509를 GET할 수 있어야 함 (kid가 해당 목록에 있어야 함)

Witness

POST JSON 본문에 POCWitness13447 (admin displayname)과 cookie가 포함됩니다. 해당 문자열이 없는 일반 200 응답은 해당되지 않습니다.

성공 아님

  • id_token이 유효하지 않음
  • Firebase private key 파일을 찾을 수 없음
  • 사용자가 존재하지 않음
  • POCWitness13447이 없는 200
  • Google kid 가져오기 외의 리버스 셸 또는 아웃바운드 연결

패치 / 완화

먼저 할 일: MStore API를 4.21.1 이상으로 업데이트하십시오.

업그레이드 후 확인

  • 패치된 빌드에 대해 CVE-2026-13447-Abraxas-Labs.py를 다시 실행하십시오: 매핑된 witness가 나타나지 않아야 합니다.
  • 배포된 트리에서 벤더 권고 / 변경 집합을 확인하십시오 (참조 참조).
  • WAF 시그니처는 지연일 뿐 패치가 아닙니다.

즉시 업데이트할 수 없는 경우

  • 영향을 받는 구성 요소를 비활성화하거나 격리하십시오.
  • 프로덕션에서 witness 조건을 탐색하십시오 (새로운 권한 사용자, 예상치 못한 파일, 주입된 행 — 이 CVE의 맵이 명시하는 모든 것).

재현 (승인된 lab)

오직 http://127.0.0.1:8088 (또는 바인딩한 루프백)만 대상으로 하십시오. 이 스크립트를 인터넷을 향해 지정하지 마십시오.

root@kitploit:~
python3 CVE-2026-13447-Abraxas-Labs.py

성공은 응답 본문에 위의 witness가 있는 것입니다. 일반 200 HTML은 해당되지 않습니다.


Lab 이미지

재현에 사용된 루프백 스택. 이 폴더의 Dockerfile이 소스에서 빌드하지 않는 한 공식 이미지입니다.

  • lab/docker-compose.yml
  • lab/docker-compose.override.yml
  • lab/Dockerfile
root@kitploit:~
cd lab
docker compose up --force-recreate

YAML이 로컬 디렉터리를 마운트하는 경우 (버전 표의 플러그인 zip / 소스 태그) 취약한 제품 트리를 Compose 옆에 바인딩하십시오. 127.0.0.1 외에는 아무것도 게시하지 마십시오.


참조

  • CVE-2026-13447 · NVD

  • CVE-2026-13447 · CVE.org

  • plugins.trac.wordpress.org/browser/mstore-api/tags/4.18.4/controllers/flutter-user.php#L829

  • plugins.trac.wordpress.org/browser/mstore-api/tags/4.18.4/controllers/flutter-user.php#L940

  • plugins.trac.wordpress.org/browser/mstore-api/tags/4.18.4/controllers/helpers/firebase-phone-auth-helper.php#L5

  • plugins.trac.wordpress.org/browser/mstore-api/trunk/controllers/flutter-user.php#L829

  • plugins.trac.wordpress.org/browser/mstore-api/trunk/controllers/flutter-user.php#L940

  • plugins.trac.wordpress.org/browser/mstore-api/trunk/controllers/helpers/firebase-phone-auth-helper.php#L5

  • www.wordfence.com/threat-intel/vulnerabilities/id/4a1127af-74f6-4748-9aee-5a8c6c2766a4?source=cve

  • github.com/advisories/GHSA-6wfp-pwm3-667v

  • nvd.nist.gov/vuln/detail/CVE-2026-13447

  • Plugin directory: mstore-api

  • Trac browser: plugins.trac.wordpress.org/mstore-api

  • SVN tags: plugins.svn.wordpress.org/mstore-api

  • Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null


기록 (구조화)

root@kitploit:~
# CVE-2026-13447  (structured records)

- input: `https://nvd.nist.gov/vuln/detail/CVE-2026-13447`
- CWE: CWE-287
- published: 2026-09-05T06:17:09.403

## NVD description

The Mstore Api plugin for WordPress is vulnerable to Authentication Bypass via JWT Forgery in versions up to, and including, 4.20.0 This is due to missing cryptographic signature verification in the FirebasePhoneAuthHelper::verify_id_token() function, which decodes and validates Firebase ID token claims (alg, kid, aud, iss) but never calls openssl_verify() or any equivalent to validate the JWT signature against Google's actual public key certificates. This makes it possible for unauthenticated attackers to forge a Firebase Phone Auth JWT signed with a self-generated RSA key pair and impersonate any phone number, resulting in unauthorized access to existing WordPress accounts or creation of new arbitrary accounts.

## MITRE description

The Mstore Api plugin for WordPress is vulnerable to Authentication Bypass via JWT Forgery in versions up to, and including, 4.20.0 This is due to missing cryptographic signature verification in the FirebasePhoneAuthHelper::verify_id_token() function, which decodes and validates Firebase ID token claims (alg, kid, aud, iss) but never calls openssl_verify() or any equivalent to validate the JWT signature against Google's actual public key certificates. This makes it possible for unauthenticated attackers to forge a Firebase Phone Auth JWT signed with a self-generated RSA key pair and impersonate any phone number, resulting in unauthorized access to existing WordPress accounts or creation of new arbitrary accounts.

## Affected

- inspireui MStore API – Create Native Android & iOS Apps On The Cloud 0 affected

## References (JSON sources only)

- https://plugins.trac.wordpress.org/browser/mstore-api/tags/4.18.4/controllers/flutter-user.php#L829
- https://plugins.trac.wordpress.org/browser/mstore-api/tags/4.18.4/controllers/flutter-user.php#L940
- https://plugins.trac.wordpress.org/browser/mstore-api/tags/4.18.4/controllers/helpers/firebase-phone-auth-helper.php#L5
- https://plugins.trac.wordpress.org/browser/mstore-api/trunk/controllers/flutter-user.php#L829
- https://plugins.trac.wordpress.org/browser/mstore-api/trunk/controllers/flutter-user.php#L940
- https://plugins.trac.wordpress.org/browser/mstore-api/trunk/controllers/helpers/firebase-phone-auth-helper.php#L5
- https://www.wordfence.com/threat-intel/vulnerabilities/id/4a1127af-74f6-4748-9aee-5a8c6c2766a4?source=cve
- https://github.com/advisories/GHSA-6wfp-pwm3-667v
- https://nvd.nist.gov/vuln/detail/CVE-2026-13447

## GitHub advisory

The Mstore Api plugin for WordPress is vulnerable to Authentication Bypass via JWT Forgery in...

The Mstore Api plugin for WordPress is vulnerable to Authentication Bypass via JWT Forgery in versions up to, and including, 4.20.0 This is due to missing cryptographic signature verification in the FirebasePhoneAuthHelper::verify_id_token() function, which decodes and validates Firebase ID token claims (alg, kid, aud, iss) but never calls openssl_verify() or any equivalent to validate the JWT signature against Google's actual public key certificates. This makes it possible for unauthenticated attackers to forge a Firebase Phone Auth JWT signed with a self-generated RSA key pair and impersonate any phone number, resulting in unauthorized access to existing WordPress accounts or creation of new arbitrary accounts.

라이선스

이 공개 패키지는 GNU Affero General Public License v3.0에 따라 라이선스가 부여됩니다. LICENSE를 참조하십시오.


면책 조항

이 패키지는 벤더, 사이트 소유자, 라이선스된 lab을 위한 것입니다. 스크립트는 127.0.0.1과 통신합니다. 소유하지 않은 시스템에 사용하는 것은 Abraxas Labs에 의해 승인되지 않습니다. 보증은 없습니다.

abraxaslabs.tech · github.com/abraxas · @abraxas_null

도구 다운로드