
# CVE-2026-19089 연구 저장소 Tyche Softwares의 WooCommerce Product Input Fields에서 발견된 원격 명령 실행 취약점인 CVE-2026-19089에 대한 연구 저장소입니다. 승인된 실험실 테스트를 위한 초안 연구 스크립트와 메모가 포함되어 있습니다.

Product Input Fields for WooCommerce < 2.0.2 - 인증되지 않은 임의 파일 업로드
Tyche Softwares의 Product Input Fields for WooCommerce 플러그인은 필드의 허용 유형 설정이 비어 있을 때 업로드된 파일 유형을 검증하지 않습니다(자체 문서에서 이를 "모든 파일 허용"으로 광고하고 있습니다). 인증되지 않은 게스트가 장바구니 담기 시 임의 파일을 첨부하고, 결제를 완료한 후 플러그인 업로드 디렉터리에서 해당 객체를 검색할 수 있습니다. 해당 트리를 PHP로 실행하는 호스트에서는 동일한 경로가 원격 코드 실행이 됩니다.
| CVE | CVE-2026-19089 |
| CWE | CWE-434: 위험한 유형의 파일 무제한 업로드 |
| CVSS 3.1 | 9.8 심각 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) |
| 공급업체 | Tyche Softwares |
| 제품 | Product Input Fields for WooCommerce (product-input-fields-for-woocommerce) |
| 영향받는 버전 | 2.0.0 ~ 2.0.1 (2.0.2 이전 플러그인) |
| 패치됨 | 2.0.2 |
| 관련 | CVE-2024-13359 (1.12.0까지 제한된 AFU) |
| CNA | WPScan |
이 저장소는 승인된 테스트 전용 Abraxas Labs 개념 증명을 보관합니다 - 공급업체 공개, 실험실 재현, 또는 평가 권한을 서면으로 받은 호스트에 한합니다.
저는 Product Input Fields 2.0.1, 게스트 결제 및 대금 상환, 허용 유형이 비어 있는 전역 File 필드가 있는 로컬 WooCommerce 상점에 대해 클라이언트를 실행했습니다. 스크립트는 업로드와 결제를 준비하며, 웹셸을 포함하지 않습니다.
File 유형의 제품 입력 필드는 alg_wc_pif_global_* / alg_wc_pif_local_*로 상점 장바구니 담기 양식에 바인딩됩니다. 허용 파일 유형이 비어 있으면 플러그인은 게스트가 게시한 모든 것을 저장합니다. 주문이 성공하면 파일은 wp-content/uploads/product_input_fields/ 아래에 지속되며, 일반적으로 {item_id}_{original_filename}로 명명됩니다.
다음 모두가 참일 때 사이트가 노출됩니다:
이러한 조건에서 영향은 웹 사용자로서의 임의 파일 쓰기입니다. 업로드 디렉터리가 실행 가능하면 사이트 탈취입니다.
클라이언트는 상점에 머무릅니다. PHP 웹셸이나 리버스 셸을 포함하지 않습니다.
GET하고, PIF 파일 필드 이름과 add-to-cart 제품 ID를 수집합니다.image/png)로 장바구니 담기를 POST합니다. 기본 파일 이름은 pifx.php이므로 실험실에서 플러그인이 위험한 확장자를 허용했는지 확인할 수 있습니다. 마커는 실행 가능한 PHP가 아닙니다./?wc-ajax=checkout으로 수행합니다.redirect가 있으면 따라가고, wp-content/uploads/product_input_fields/{1..499}_{name} 및 POST x를 스윕하여 SHELL_OK 증인을 찾습니다. [ LIVE ]는 해당 증인이 반환될 때만 출력됩니다.CVE-2026-19089-WooCommerce-Tyche-Abraxas-Labs.py는 작은 Python 3 클라이언트입니다: 컬러 figlet 배너, 그런 다음 위의 네 단계를 수행합니다. 명령줄에서 전달한 URL에만 통신합니다.
requestsHomebrew Python(PEP 668)이 있는 macOS에서는 시스템 pip install 대신 venv를 사용하세요:
python3 -m venv .venv
.venv/bin/pip install requests
CVE-2026-19089-WooCommerce-Tyche-Abraxas-Labs.py <base_url> <product_url> [shell_name]
.venv/bin/python3 CVE-2026-19089-WooCommerce-Tyche-Abraxas-Labs.py \
https://shop.example \
https://shop.example/product/demo/
세 번째 인수는 업로드된 파일 이름을 설정하며, 기본값은 pifx.php입니다.
인수가 두 개 미만이면 스크립트는 배너와 사용법을 출력한 후 1로 종료합니다. 이는 클라이언트가 시작되는지 확인하는 안전한 방법입니다.
게스트 결제와 사용 가능한 게이트웨이(클라이언트는 payment_method=cod를 전송)가 있는 WooCommerce, Product Input Fields 2.0.2 이전, 그리고 File 필드가 모든 유형을 허용하는 게시된 제품. 2.0.2+ 또는 엄격한 허용 목록이 있는 필드에 대해서는 객체가 .php 업로드로 도착하지 않아야 합니다.
소유하지 않았거나 테스트에 대한 서면 권한이 없는 호스트를 대상으로 이 도구를 사용하지 마세요.
wp-content/uploads/product_input_fields/(및 일부 레이아웃에서는 woocommerce_uploads/alg_uploads/product_input_fields/)를 검사하고, 예상치 못한 객체를 제거하며, wp-admin의 비밀을 교체하세요.연구 및 교육용으로만 사용하세요. 이 저장소를 호스팅하는 당사자와 대상 시스템 소유자 모두로부터 명시적인 서면 허가를 받지 않은 한, 이 자료를 어떤 호스트에 대해서도 실행, 배포 또는 사용하지 마세요.
Abraxas Labs · abraxaslabs.tech · github.com/abraxas · @abraxas_null