☠️
EXFILTRATING
DATA...
01010111 10110010 00101001 11000110 01101100 10011011 00010001 11100101 01000010 10101111
[ <-- BACK_TO_SEARCH ]
[ VENDOR STATS ]
CVSS: 5.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N 🐛 CWE-200
👁️
Common Weakness Enumeration - Identifies the specific category of software weakness or flaw.

CVE-2025-12747

CVE-2025-12747 Security Advisory in Tainacan
📅 PUBLISHED: 2025-11-21 16:28 UTC 🔄 UPDATED: 2026-08-12 14:53 UTC
[ PATCH UNDER REVIEW ↓ ] Remains UNDER REVIEW until an independent source confirms the fix
[ DEFENSE PATCH ↓ ]
💣 PoC: Public
👁️
Proof of Concept - Indicates if functional exploit code is publicly available, drastically increasing the risk of immediate attacks.
🎯 EPSS: 0.06%
👁️
0.06% probability
1.6× above the median CVE
Tier: LOW
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1030
👁️
MITRE ATT&CK Tactic - Describes the strategy hackers use to execute this attack.
VULNERABLE: version not auto-detected — verify your deployed version locally
CVSS VECTOR BREAKDOWN 5.3
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: N User Interaction None
S: U Scope Unchanged
C: L Confidentiality Low
I: N Integrity None
A: N Availability None
5.3
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2025-12747 is a vulnerability in the Tainacan WordPress plugin, affecting all versions up to and including 1.0.0. The flaw allows unauthenticated attackers to access files that were marked as private by the plugin. These files are stored in the wp-content/uploads/tainacan directory without adequate access controls, leading to an Information Exposure (CWE-200). The CVSS score is 5.3 (Medium), with a low confidentiality impact. No public exploit code or patch is currently available, and the EPSS score is 0.0%, indicating low exploitation likelihood at this time.

⚡ AUTOMATE YOUR CVE INTELLIGENCE

This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.

›Patch confidence — UNVERIFIED to CONFIRMED, cross-referenced NVD + RHSA + Debian
›Exploit & PoC — poc_status, poc_url, has_exploit. Not in NVD.
›Shodan dorks — ready-made queries to find exposed vulnerable systems
›Detection rules — YARA · Wazuh · Elastic (all plans) · Sigma (Pro)
›pending_fields — know exactly which of 7 fields NVD hasn't processed yet
›Free backfill — data incomplete when you paid? Re-check within 30 days = 0 credits
PAYG €0.08/lookup Standard €19/mo (was €29) · 5k credits Pro €65/mo (was €99) · 20k credits FOUNDING PRICE · LOCKED FOR LIFE · ENDS 31 DEC 2026
[ FROM €19/MO ]
Free sandbox key available
No signup required

WordPress Ecosystem Context

This vulnerability is specific to the Tainacan WordPress plugin. It does not affect the core WordPress application or other server components like Apache or Nginx. The issue lies in how the plugin handles file uploads and permissions.

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
  • Base Score: 5.3 (Medium)
  • Attack Vector: Network (AV:N) – The vulnerability can be exploited remotely.
  • Attack Complexity: Low (AC:L) – No special conditions are required.
  • Privileges Required: None (PR:N) – No authentication needed.
  • User Interaction: None (UI:N) – No user action is required.
  • Scope: Unchanged (S:U) – The impact is confined to the vulnerable component.
  • Confidentiality Impact: Low (C:L) – Only limited information is exposed.
  • Integrity Impact: None (I:N) – No data modification is possible.
  • Availability Impact: None (A:N) – No denial of service.

Threat Level: Medium. The vulnerability is easy to exploit but only exposes file metadata or content, not system-level access.

Deep Dive & Mechanics

The Tainacan plugin allows users to upload files and mark them as private. However, the plugin stores these files in the standard WordPress uploads directory (wp-content/uploads/tainacan/) without implementing proper access control mechanisms (e.g., .htaccess rules, token-based authentication, or direct file serving through PHP). As a result, any unauthenticated visitor can directly access the file URL if they know or guess the filename.

Root Cause: The plugin fails to enforce access restrictions on uploaded files. Instead of serving private files through a PHP script that checks permissions, it stores them in a publicly accessible directory.

Attack Vector: An attacker can enumerate or guess file paths (e.g., wp-content/uploads/tainacan/2025/01/private-file.pdf) and retrieve sensitive data such as user-submitted documents, images, or other private content.

Vulnerable vs. Patched Code

Since no patch is available, the vulnerable code pattern is described conceptually.

Vulnerable Code (Conceptual):

// In Tainacan plugin, file upload handler
$upload_dir = wp_upload_dir();
$file_path = $upload_dir['basedir'] . '/tainacan/' . $filename;
move_uploaded_file($tmp_name, $file_path);
// No permission check when serving the file

Patched Code (Expected):

// Patched version would serve files through a PHP endpoint
function serve_private_file($file_id) {
    if (!current_user_can('read_private_tainacan_files')) {
        wp_die('Unauthorized');
    }
    $file_path = get_attached_file($file_id);
    header('Content-Type: ' . wp_get_mime_type($file_path));
    readfile($file_path);
    exit;
}

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • A WordPress site with Tainacan plugin version <= 1.0.0 installed and active.
  • At least one file marked as private uploaded by a user.

Exploitation Steps:

  1. Identify the Tainacan upload directory: wp-content/uploads/tainacan/.
  2. Enumerate files by guessing common patterns (e.g., private-document.pdf, report.docx).
  3. Directly access the file URL in a browser or via curl:
    curl -O http://target.com/wp-content/uploads/tainacan/2025/01/private-file.pdf
    
  4. If successful, the file is downloaded without authentication.

No public exploit code is available.

Blue Team (Detection & Prevention)

Detection:

  • Monitor web server logs for direct access to wp-content/uploads/tainacan/ by unauthenticated users.
  • Look for unusual file enumeration patterns (e.g., 404 errors followed by 200 on similar paths).

Prevention:

  • Implement a Web Application Firewall (WAF) rule to block direct access to the Tainacan upload directory for unauthenticated users.
  • Use a .htaccess file in the uploads directory to deny all access and serve files via a PHP proxy:
    # .htaccess in wp-content/uploads/tainacan/
    Deny from all
    
  • Alternatively, move private files outside the web root.

Indicators of Compromise (IOCs)

  • File Paths: wp-content/uploads/tainacan/*
  • HTTP Requests: GET requests to /wp-content/uploads/tainacan/ without authentication.
  • Log Entries: Apache/Nginx access logs showing direct file access to the Tainacan directory.
  • Network Traffic: Outbound data transfers of files from the Tainacan directory.

Detection Engineering

YARA Rule

rule Detect_Tainacan_Private_File_Exposure {
    meta:
        description = "Detects direct access to Tainacan private files in web logs"
        author = "Valters IT"
        date = "2025-04-10"
        reference = "CVE-2025-12747"
    strings:
        $tainacan_path = /wp-content\/uploads\/tainacan\//
        $private_file = /\.(pdf|docx|xlsx|zip|txt)$/i
    condition:
        $tainacan_path and $private_file
}

Sigma Rule

title: Tainacan Private File Exposure
id: 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d
status: experimental
description: Detects unauthenticated access to Tainacan private files
author: Valters IT
logsource:
    category: webserver
    product: apache
detection:
    selection:
        cs-method: 'GET'
        cs-uri-stem|contains: '/wp-content/uploads/tainacan/'
    condition: selection
falsepositives:
    - Legitimate authenticated users (if access control is misconfigured)
level: medium

Suricata Rule

alert http any any -> any any (msg:"CVE-2025-12747 Tainacan Private File Exposure"; flow:to_server,established; http.method; content:"GET"; http.uri; content:"/wp-content/uploads/tainacan/"; nocase; classtype:attempted-recon; sid:1000001; rev:1;)

Remediation & Mitigation

Immediate Actions:

  1. Disable the Tainacan plugin until a patch is released.
  2. Restrict access to the wp-content/uploads/tainacan/ directory via .htaccess or server configuration:
    <Directory /var/www/html/wp-content/uploads/tainacan/>
        Require all denied
    </Directory>
    
  3. Audit existing files in the Tainacan upload directory and remove any sensitive data.

Long-term Fix:

  • Apply a patch from the vendor when available.
  • Implement a file serving proxy that checks user permissions before delivering private files.

Workaround:

  • Use a WordPress security plugin (e.g., Wordfence) to block direct access to the uploads directory for unauthenticated users.

Valters IT
DevSecOps & Cyber Threat Intelligence

👁️ SHODAN DORKS (THREAT HUNTING)

What is this? Security researchers use these exact search queries on Shodan.io (a search engine for internet-connected devices) to find vulnerable systems globally. You can copy these dorks to see if your organization's IP space is exposed.

http.title:"Tainacan"
http.html:"wp-content/uploads/tainacan"

💣 PoC CODE AVAILABLE

Exploit code for this CVE is tracked in our database. Access poc_code via API Pro.

[ API_PRO ] →
◈ SOURCE Analysis & enrichment: valtersit.com/cve/CVE-2025-12747/ · CVE data: NVD/MITRE (public domain) · © 2026 ValtersIT Hub
>_ SYSTEM_CORE: INTEL_ACTIVE
90% TEAM-CURATED // 10% AUTOMATED INGESTION.
ALL PATCH REFERENCES AND VERSION DATA SOURCED FROM NVD + OSV OFFICIAL REGISTRIES.