Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as editor or higher
-
DeliveryPoison importer tmp_file with traversal path
-
ExploitPersist path to database
-
ExecutionRequest /source_info REST endpoint
-
ImpactRead arbitrary server file contents
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V5 - File Handling Path canonicalization, traversal prevention
MITRE ATT&CK
2 techniques across 2 tactics: Discovery, Collection The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated account with editor-level privileges or above (PR:H) on a site running the Tainacan plugin ≤1.3.0, and use of the plugin's importer feature: the attacker must first create/update an importer session via the REST importers controller (update_item) to persist an attacker-controlled 'tmp_file' path containing directory-traversal sequences, then issue a separate GET request to the /source_info endpoint which passes that path to fopen() and fgetcsv(). Limiting factors: the editor-level authentication requirement sharply narrows who can exploit this (not anonymous/public); exploitation depends on the vulnerable importer/CSV code path present in versions up to and including 1.3.0, fixed in 1.4.0 where paths are constrained via resolve_allowed_tmp_file() to existing files inside the WordPress uploads directory. |
| Impact | This is a moderate-severity information-disclosure issue, not an emergency. The CVSS 3.1 vector (AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N, base 4.9) shows network-reachable, low-complexity exploitation but requires high privileges - the description confirms editor-level access and above, consistent with PR:H. Impact is confined to confidentiality (arbitrary file read); there is no integrity or availability effect. The vuln.today decision label is 'this_month' (not act_now/emergency), aligning with a privileged-only file-read. No EPSS score is provided in the input, the CVE is not listed in CISA KEV, and no working exploit code is referenced - the available links are the Wordfence advisory, WordPress trac source lines, and the fixing GitHub commit, i.e. patch/source evidence rather than an exploit. The practical risk is therefore an authenticated insider or a compromised editor account reading sensitive server files (e.g. wp-config.php); the PR:H requirement meaningfully limits mass exploitation. Signals are internally consistent - no conflict between the CVSS vector and the description, both indicating authenticated (editor+) remote access with confidentiality-only impact. |
| Exploit ScenarioDerived | An attacker who has obtained editor-level (or higher) access to a WordPress site running Tainacan ≤1.3.0 sends a REST request that stores a traversal path (e.g. ../../../../wp-config.php) in the 'tmp_file' parameter of an importer session, persisting it to the database. A subsequent GET request to the /source_info endpoint passes that attacker-controlled path to fopen()/fgetcsv() and returns the parsed file contents in the REST response, disclosing arbitrary server files. No working exploit code is referenced in the available sources; the low attack complexity (AC:L) means the request itself is simple once editor access is held. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
Authenticated users with editor-level access or higher on WordPress sites running the Tainacan plugin through version 1.3.0 can read arbitrary files on the web server by planting a directory-traversal path in an importer session and then triggering it through a separate REST request. The tampered 'tmp_file' value is persisted to the database via the importers REST controller and later handed to fopen() and fgetcsv() by the /source_info endpoint, which returns the parsed file contents in the REST response - exposing configuration files, credentials and other sensitive data readable by the PHP process. Severity is moderate (CVSS 4.9, PR:H with C:H/I:N/A:N), the exploit path is gated behind editor-level authentication rather than being anonymous, no public exploit code has been identified at time of analysis, and the flaw is fixed in Tainacan 1.4.0.
RemediationAI
Upgrade the Tainacan plugin to version 1.4.0 or later, which is the release containing the upstream commit that restricts importer attributes to an explicit allow-list and validates 'tmp_file' via resolve_allowed_tmp_file() so only existing files inside the WordPress uploads directory (confirmed by realpath()) can be opened; the 1.4.0 controller source and the Wordfence threat-intel advisory (https://www.wordfence.com/threat-intel/vulnerabilities/id/e16bda6d-0818-468b-9114-82a8f5f68caf?source=cve) document the change, and the raw diff is at https://github.com/tainacan/tainacan/commit/1cc2c179d213670ae4bd378473d6fecbc35c6357. If upgrading cannot be done immediately, the practical compensating control is to reduce the number of accounts holding editor-level or higher privileges on sites running Tainacan 1.3.0, since that role is the prerequisite for reaching the importer REST endpoints - the trade-off is that editors lose the ability to manage collections and run imports, and any remaining editor account can still exploit the issue. Deactivating the plugin removes the vulnerable REST routes but also disables all repository and collection functionality; restricting access to the /wp-json Tainacan importer routes at the web-server or WAF layer narrows exposure but will break legitimate importer workflows.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-22 path traversal in the Tainacan importer subsystem, a CSV/background-import pipeline implemented in classes/background-process/importer/class-tainacan-csv.php and class-tainacan-importer.php and exposed through classes/api/endpoints/class-tainacan-rest-importers-controller.php. In versions up to and including 1.3.0, the update_item() REST handler iterated over arbitrary body attributes and invoked a dynamic 'set_' . sanitize_key($att) method if it existed, so an attacker with editor privileges could call set_tmp_file() with traversal sequences and have that value saved in the importer session record. The stored path was later consumed without validation: get_tmp_file() returned $this->tmp_file directly, and the CSV importer passed it to fopen() and fgetcsv(), with the parsed rows surfaced by the /source_info endpoint. The 1.4.0 fix (commit 1cc2c179d213670ae4bd378473d6fecbc35c6357) replaces the generic setter loop with an explicit allow-list that only accepts 'url', 'options' and 'collection' attributes (all sanitized and type-checked), and introduces resolve_allowed_tmp_file(), which uses realpath() to require that the path be an existing file inside the WordPress uploads directory - the location media_handle_sideload() writes to - before any file handle is opened.
Know when Tainacan gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:N/A:N
Remotely reachable REST endpoint (AV:N) with simple requests (AC:L) but requires editor-level account (PR:H), no user interaction, yielding arbitrary file read so C:H and I:N/A:N.
Primary rating from Vendor (Wordfence).
CVSS VectorVendor: Wordfence
DescriptionCVE.org
The Tainacan plugin for WordPress is vulnerable to Directory Traversal in all versions up to, and including, 1.3.0 via the 'tmp_file' parameter parameter. This makes it possible for authenticated attackers, with editor-level access and above, to read the contents of arbitrary files on the server, which can contain sensitive information. The poisoned importer path is persisted to the database and later triggered via a separate GET request to the /source_info endpoint, which passes the attacker-controlled path to fopen() and fgetcsv() and returns parsed file contents in the REST response.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.
Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection') vulnerability in tainacan Tainacan
Information disclosure in the Tainacan WordPress plugin before 1.4.0 lets any authenticated subscriber-level user read t
SQL injection in the Tainacan WordPress plugin (versions ≤ 1.0.3) lets unauthenticated attackers exfiltrate database con
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in tainacan Tainacan
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in Tainacan.Org Taina
SQL injection in the Tainacan WordPress plugin through version 1.2.0 lets an attacker with an authenticated Subscriber-l
Authenticated file disclosure in the Tainacan WordPress plugin (all versions up to and including 1.3.0) allows any logge
Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting') vulnerability in tainacan Tainacan
The Tainacan plugin for WordPress is vulnerable to unauthorized access of data due to a missing capability check on the
The Tainacan plugin for WordPress is vulnerable to Reflected Cross-Site Scripting due to the use of add_query_arg withou
Missing Authorization vulnerability in tainacan Tainacan tainacan.20.7. Rated medium severity (CVSS 5.3), this vulnerabi
Insertion of Sensitive Information Into Sent Data vulnerability in tainacan Tainacan tainacan.20.6. Rated medium severit
EUVD-2026-111612
GHSA-hjqg-w7m7-3cch
NVD
CVE.org
EPSS
Exploit-DB