---
id: "CVE-2026-104743"
kind: "vulnerability"
aliases: ["CVE-2026-104743"]
title: "Tainacan WordPress plugin: directory traversal lets editors read server files"
severity: "medium"
cvss: 4.9
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["package", "self-hosted", "tainacan", "wordpress"]
not_affected_if: ["no-untrusted-editors", "patched-version", "plugin-not-installed"]
published_at: "2026-10-28T07:16:43+00:00"
first_seen_at: "2026-10-28T07:31:37+00:00"
updated_at: "2026-10-28T07:33:25+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-104743", "first_seen_at": "2026-10-28T07:31:37+00:00"}]
---

# Tainacan WordPress plugin: directory traversal lets editors read server files

The Tainacan plugin for WordPress up to and including 1.3.0 accepts a crafted 'tmp_file' parameter that is stored and later passed to fopen() and fgetcsv(), so the path is not restricted. An authenticated editor can read arbitrary files on the server, which may include sensitive configuration or credentials, and the contents are returned in the REST response.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed Tainacan plugin version in the WordPress admin Plugins page; versions `1.3.0` and earlier are affected.
- Review the Tainacan importer data stored in the database for unusual paths in the 'tmp_file' value.
- unknown

## Fix

- Update the Tainacan plugin to a version later than `1.3.0`, if a fixed release is available; the sources do not name one.
- Until patched, restrict editor-level accounts on WordPress to trusted users.

## Timeline

- 2026-10-28T07:31:37+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-104743

## From the sources

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.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
