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

CVE-2023-47848

CVE-2023-47848 — WordPress Tainacan Plugin <= 0.20.4 is vulnerable to Cross Site Scripting (XSS)
📅 PUBLISHED: 2023-11-30 00:00 UTC 🔄 UPDATED: 2026-08-18 18:54 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.41%
👁️
0.41% probability
10.3× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1059.007
👁️
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 7.1
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: N Privileges Required None
UI: R User Interaction Required
S: C Scope Changed
C: L Confidentiality Low
I: L Integrity Low
A: L Availability Low
7.1
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2023-47848 is a Reflected Cross-Site Scripting (XSS) vulnerability affecting the Tainacan WordPress plugin in versions up to and including 0.20.4. Tainacan is a digital repository management plugin for WordPress, used primarily by museums, archives, and cultural institutions to publish and manage collections online. The vulnerability arises from improper neutralization of user-supplied input during web page generation, allowing an attacker to inject malicious scripts that execute in the context of a victim's browser session.

With a CVSS score of 7.1 (high severity), this vulnerability requires user interaction but can be exploited remotely without authentication. The EPSS score of 0.00412 indicates a relatively low probability of active exploitation in the wild, and the CISA KEV catalog does not list this CVE. However, given the plugin's deployment in institutional and academic settings, successful exploitation could lead to account compromise, data theft, and reputational damage. The vendor (Patchstack CNA) claims a patch exists in version 0.20.5, though this has not been independently confirmed.

⚡ 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

Technical Analysis

The vulnerability is classified as CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting'). The NVD description specifically identifies this as Reflected XSS, which distinguishes it from stored or DOM-based variants. In a reflected XSS scenario, the malicious payload is embedded in a crafted URL or request, and the server reflects that payload back in the HTTP response without proper sanitization or encoding.

Attack Mechanism:

The underlying flaw involves the Tainacan plugin's failure to properly sanitize or escape user-controlled parameters before including them in dynamically generated web pages. When a user clicks a crafted link (e.g., delivered via phishing email, social engineering, or a compromised third-party site), the malicious JavaScript payload is included in the HTTP request. The WordPress server processes the request, and the Tainacan plugin reflects the payload in the response page without neutralizing HTML/JavaScript metacharacters such as <, >, ", ', or &.

Because WordPress executes PHP-based templates and plugins on the server side, the reflected payload can be injected into any response page that includes Tainacan-related content or template functions that fail to escape query string parameters. The vulnerability affects the Tainacan plugin's front-end components that process user input and incorporate it into HTML output.

Attack Surface:

  • Vector: Network (remote exploitation possible)
  • Attack Complexity: Low — the attacker does not require special conditions beyond crafting a malicious URL
  • Privileges Required: None — unauthenticated attackers can exploit this
  • User Interaction: Required — the victim must click the crafted link

Code-Level Analysis:

While specific vulnerable function names, file paths, and parameter names are not provided in the NVD description, the vulnerability class is well-understood. Typical WordPress plugin vulnerabilities of this nature involve the use of unsanitized $_GET, $_POST, or $_REQUEST superglobals passed directly to output functions. In this case, the Tainacan plugin likely fails to apply WordPress's built-in escaping functions (esc_html(), esc_attr(), esc_url(), or similar) to reflected data, or it uses WordPress's echo or print functions without a sanitization layer.

Technical impact: An attacker who successfully exploits this vulnerability can execute arbitrary JavaScript in the victim's browser. This enables session hijacking (if session cookies lack HttpOnly flag), credential theft via keylogging or form injection, unauthorized actions on behalf of the authenticated user, and in some cases, WordPress admin account takeover if the victim holds elevated privileges.


Exploitation Scenarios

No public PoC or exploit code is currently available for CVE-2023-47848, and no Nuclei template exists. The attack chain below is inferred from the vulnerability class (Reflected XSS) and standard exploitation patterns for WordPress plugin vulnerabilities.

Step 1: Reconnaissance and Target Identification

The attacker identifies websites running the Tainacan plugin. Techniques include:

  • Using search engines with dorks like inurl:"wp-content/plugins/tainacan" or site:edu inurl:tainacan
  • Scanning the WordPress installation for the Tainacan plugin by querying wp-json API endpoints or checking plugin version fingerprints in page source
  • Using Shodan or Censys to identify WordPress instances with Tainacan-related HTTP headers or meta tags
  • Monitoring WordPress vulnerability feeds for CVE-2023-47848 to identify potentially affected sites

Step 2: Flaw Class Triggering

The attacker crafts a malicious URL containing the XSS payload in a query string parameter that the Tainacan plugin reflects without sanitization. The payload is URL-encoded and typically contains JavaScript wrapped in HTML tags, such as <script>alert(1)</script> or more sophisticated obfuscated payloads. The attacker then delivers this URL to a target user via phishing email, social media direct message, chat application, or by embedding it in a webpage that redirects to the vulnerable URL.

Step 3: Payload Execution

When the victim clicks the crafted link, the browser sends an HTTP request to the WordPress server. The Tainacan plugin processes the request and includes the unescaped payload in the HTML response. The victim's browser renders the response, and the browser's HTML parser interprets the attacker's script tags as JavaScript code, executing the payload in the same-origin context of the WordPress site.

Step 4: Post-Exploitation Impact

Depending on the payload, the attacker can:

  • Steal session cookies (if not HttpOnly) and hijack the victim's authenticated session, potentially gaining admin access if the victim is an administrator
  • Redirect the victim to a credential harvesting page impersonating the WordPress login screen
  • Perform actions on behalf of the victim via the WordPress REST API or admin-ajax.php endpoint (e.g., creating new admin users, modifying content, deploying backdoors)
  • Exfiltrate sensitive data from the page DOM, including digital repository metadata or user profile information
  • Spread the attack to other users by injecting malicious content into the Tainacan repository interface

Active exploitation landscape: No evidence of in-the-wild exploitation or known threat actor campaigns has been reported as of this writing. The EPSS score of 0.00412 (34.1st percentile) reflects a low but non-zero probability of exploitation, consistent with a recently disclosed vulnerability without public PoC.


Impact Assessment

Business Impact:

Tainacan is used by museums, cultural institutions, universities, and libraries to manage digital collections. A successful XSS attack against this plugin carries significant institutional risk:

  • Reputational damage: If public-facing collection pages serve malicious content, visitors may distrust the institution's digital presence
  • Data integrity: Attackers could modify collection metadata or create misleading content within the repository
  • User account compromise: Researchers, curators, and administrators with accounts could have their sessions hijacked, leading to unauthorized content changes or data exfiltration

CVSS Breakdown (Score: 7.1):

  • Attack Vector (AV): Network — exploitable remotely
  • Attack Complexity (AC): Low — no special conditions required
  • Privileges Required (PR): None — unauthenticated exploitation
  • User Interaction (UI): Required — victim must click a crafted link
  • Scope (S): Changed — the vulnerability affects a component outside the plugin's security scope, meaning impact extends to the broader WordPress application
  • Confidentiality (C): Low — limited data exposure via script execution
  • Integrity (I): Low — limited ability to modify data
  • Availability (A): Low — limited impact on system availability

Blast Radius:

The affected component is the Tainacan plugin, but the blast radius extends to the entire WordPress instance. Since reflected XSS executes in the browser context of the victim, the impact is user-scoped but can propagate if an admin is targeted. The plugin's typical deployment in institutional environments means that successful exploitation could compromise curator accounts, potentially allowing an attacker to manipulate collection data presented to the public — a serious integrity concern for digital archives and museums.

Affected Systems:

  • WordPress sites running Tainacan plugin version ≤ 0.20.4
  • OSV Package data indicates the package is affected from 0→unfixed, suggesting the fix is applied in patch releases rather than backported

Detection Guidance

The following detection rules are designed to identify potential exploitation attempts or malicious traffic targeting CVE-2023-47848. These rules focus on identifying suspicious query string parameters, XSS payload signatures, and abnormal WordPress plugin traffic.

Sigma Rule

title: Tainacan WordPress Plugin Reflected XSS Attempt (CVE-2023-47848)
status: experimental
description: Detects HTTP requests containing XSS payload patterns in query strings targeting WordPress installations with Tainacan plugin
logsource:
  category: webserver
  product: apache
  service: accesslog
detection:
  selection:
    c-uri|contains:
      - '/wp-content/plugins/tainacan/'
      - '/wp-json/tainacan/'
  keywords:
    - '<script'
    - '%3Cscript%3E'
    - '%3Cscript'
    - 'alert('
    - 'onerror='
    - 'javascript:'
    - '%22%3E%3Cscript%3E'
  filter_wp_core:
    c-uri|contains:
      - '/wp-admin/'
      - '/wp-includes/'
  condition: selection and keywords and not filter_wp_core
falsepositives:
  - Legitimate security scanners performing XSS assessments
  - Custom WordPress plugins that use similar URL patterns
level: medium
tags:
  - attack.t1190
  - attack.t1059.007
  - cve.2023-47848

YARA Rule

rule Tainacan_Reflected_XSS_CVE_2023_47848
{
    meta:
        author = "Valtersit Threat Intelligence"
        date = "2024-11-15"
        description = "Detects XSS payload patterns in HTTP requests targeting Tainacan WordPress plugin"
        cve = "CVE-2023-47848"
        severity = "medium"
    
    strings:
        $plugin_path = "/wp-content/plugins/tainacan/" ascii nocase
        $plugin_path2 = "/wp-json/tainacan/" ascii nocase
        $script_tag = "<script" ascii nocase
        $script_encoded = "%3Cscript%3E" ascii nocase
        $script_encoded2 = "%3Cscript" ascii nocase
        $alert_payload = "alert(" ascii nocase
        $onerror = "onerror=" ascii nocase
        $javascript = "javascript:" ascii nocase
        $img_xss = "<img src=x" ascii nocase
        $svg_xss = "<svg/onload=" ascii nocase
    
    condition:
        (uint16(0) == 0x0D0A or uint16(0) == 0x0A0D) and
        any of ($plugin_path*) and
        (any of ($script*) or any of ($alert_payload, $onerror, $javascript, $img_xss, $svg_xss))
}

Suricata IDS Rule

alert http any any -> $HOME_NET any (
    msg:"ET WEB_SPECIFIC_APPS Tainacan WordPress Plugin Reflected XSS Attempt (CVE-2023-47848)";
    flow:established,to_server;
    content:"/wp-content/plugins/tainacan/"; http_uri; nocase;
    content:"<script"; http_uri; nocase;
    or content:"%3Cscript%3E"; http_uri; nocase;
    or content:"%3Cscript"; http_uri; nocase;
    or content:"alert("; http_uri; nocase;
    or content:"javascript:"; http_uri; nocase;
    or content:"onerror="; http_uri; nocase;
    or content:"onload="; http_uri; nocase;
    pcre:"/<script[\s>]|%3Cscript[\s%3E]|(alert|prompt|confirm)\s*\(/i";
    classtype:web-application-attack;
    sid:10084701;
    rev:1;
    metadata:created_at 2024-11-15, cve CVE-2023-47848, attack_target Web_Server, deployment Perimeter;
)

Elastic Detection

sequence by source.ip with maxspan=5m
  [any where http.request.method == "GET" and (
      http.request.uri : "*tainacan*" and
      (http.request.uri : "*<script>*" or
       http.request.uri : "*%3Cscript%3E*" or
       http.request.uri : "*%3Cscript*" or
       http.request.uri : "*/wp-content/plugins/tainacan/*")
    )]
  [any where http.response.status_code == 200 and
      http.response.body : ("*<script>*", "*%3Cscript%3E*")]

Splunk SPL Query

index=web sourcetype=access_combined 
| rex field=uri_path "(?<plugin_path>/wp-content/plugins/tainacan/|/wp-json/tainacan/)"
| where isnotnull(plugin_path)
| rex field=uri_query "(?<payload>(<script|%3Cscript%3E|alert\(|javascript:|onerror=|onload=|%3Csvg))"
| where isnotnull(payload)
| stats count min(_time) as first_seen max(_time) as last_seen by src_ip, uri_path, uri_query, payload
| eval severity=case(match(payload, "(?i)(script|alert|javascript)"), "High", 1=1, "Medium")
| table _time, src_ip, uri_path, uri_query, payload, count, first_seen, last_seen, severity, user_agent

Wazuh OSSEC Rule

<group name="wordpress,tainacan,xss,">
  <rule id="100847" level="12">
    <decoded>apache-access</decoded>
    <field name="url" type="pcre2">(?i)(/wp-content/plugins/tainacan/|/wp-json/tainacan/)</field>
    <field name="url" type="pcre2">(?i)(%3Cscript%3E|%3Cscript|<script|alert\(|javascript:|onerror=|onload=|%3Csvg|%3Cimg)</field>
    <description>Tainacan WordPress Plugin Reflected XSS attempt detected (CVE-2023-47848)</description>
    <group>web_application_attack,xss,attack.t1190,</group>
    <mitre>
      <id>T1190</id>
    </mitre>
    <info type="cve">CVE-2023-47848</info>
    <options>no_full_log</options>
  </rule>
</group>

Mitigation & Patch Guidance

Patch confidence: 2/4 (CLAIMED) — The CNA (Patchstack) claims a patch is available in version 0.20.5, but this has not been independently confirmed by multiple sources. Organizations should verify the patch installation and monitor for any residual vulnerability.

1. Immediate Mitigations

  • Upgrade immediately to Tainacan version 0.20.5 or higher. Verify the new version is publicly available on the WordPress Plugin Repository or the vendor's distribution channel before proceeding.
  • Deploy a Web Application Firewall (WAF) with virtual patching capability. Create custom rules to block requests containing XSS payload signatures in query strings targeting Tainacan plugin paths.
  • Enable WordPress security plugins that add additional input sanitization layers, such as Wordfence, Sucuri, or iThemes Security, and keep their rules updated.
  • Restrict access to the WordPress admin area using IP allowlists or two-factor authentication to reduce the impact of a successful session hijack.
  • Configure HttpOnly and Secure flags on session cookies to mitigate session theft via XSS. This is configured in wp-config.php or via security plugins.

2. Patch/Upgrade Steps

  1. Backup the WordPress database and the wp-content/plugins/tainacan directory before upgrading.
  2. Navigate to Dashboard → Updates → Plugins in the WordPress admin panel.
  3. Locate the Tainacan plugin and click "Update Now" if version 0.20.5 or later is available.
  4. If the plugin does not appear in the update list, download the latest version from the WordPress Plugin Repository and replace the plugin directory manually via FTP or SSH.
  5. After upgrading, verify the installed version by navigating to Plugins → Installed Plugins and confirming the version number.
  6. Post-upgrade validation: Test the plugin's key functionality (collection management, item display, search) to ensure the update did not introduce compatibility issues.

3. Long-Term Hardening

  • Establish a patch management cadence for all WordPress plugins and themes. Subscribe to the Patchstack vulnerability database or WordPress security advisories to receive alerts for newly disclosed vulnerabilities.
  • Review plugin necessity — remove or replace plugins that are no longer maintained or have a history of recurring vulnerabilities.
  • Implement a Content Security Policy (CSP) that restricts script execution to trusted sources. This provides a defense-in-depth layer that can mitigate the impact of XSS even if input sanitization fails.
  • Enforce least privilege for all WordPress user accounts. Limit the number of users with administrator or editor roles, as these accounts are prime targets for XSS-driven session hijacking.
  • Regularly audit WordPress user activity logs for unusual actions, particularly around collection metadata changes and user account modifications.
  • Conduct periodic penetration tests or security assessments of the WordPress installation, with specific focus on input validation and output encoding in all custom and third-party plugins.

References

  1. NVD Entry: https://nvd.nist.gov/vuln/detail/CVE-2023-47848 — Official NVD record with CVE description and CVSS score (7.1).
  2. Patchstack Advisory: https://patchstack.com/database/vulnerability/tainacan — Vendor advisory from Patchstack (the CNA for this CVE), which claims the patch exists in version 0.20.5.
  3. WordPress Plugin Repository: https://wordpress.org/plugins/tainacan/ — Official plugin page where the patched version 0.20.5+ can be downloaded.
  4. Tainacan Official Documentation: https://tainacan.org — Vendor documentation and release notes for the Tainacan digital repository plugin.
  5. CISA Known Exploited Vulnerabilities Catalog: https://www.cisa.gov/known-exploited-vulnerabilities-catalog — Reference to confirm that CVE-2023-47848 is NOT listed in the KEV catalog (last checked November 2024).

Threat actor campaign evidence: No known threat actor campaigns or documented exploit-in-the-wild activity for CVE-2023-47848 exists as of this writing. The EPSS score of 0.00412 places this CVE in the 34.1st percentile of exploited CVEs, indicating low current exploitation likelihood. Organizations should still patch promptly given the plugin's use in academic and cultural heritage institutions, which are frequently targeted by cyber criminals for data theft and reputational damage.

👁️ 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/plugins/tainacan"
http.html:"tainacan" "wordpress"

💣 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-2023-47848/ · 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.