Skip to content

Five-Year-Old ShowDoc RCE Flaw CVE-2025-0520 (CVSS 9.4) Now Under Active Exploitation — Over 2,000 Instances Exposed

Threat actors are actively exploiting CVE-2025-0520, a critical unauthenticated remote code execution vulnerability in ShowDoc — an IT documentation tool used by developers and operations teams. The flaw, patched in October 2020 but present in thousands of unupgraded installations, allows file upload exploitation to deploy web shells. More than 2,000 publicly accessible ShowDoc instances remain vulnerable.

Article software-development-security

Threat actors have begun actively exploiting CVE-2025-0520, a critical unauthenticated remote code execution vulnerability in ShowDoc — a self-hosted IT documentation platform widely used by development and operations teams for internal wikis, API documentation, and runbooks. The vulnerability carries a CVSS 3.1 base score of 9.4, was patched in October 2020, and has been confirmed exploited against honeypots as of 18 April 2026. More than 2,000 internet-exposed ShowDoc instances are known to still be running vulnerable versions.

The Vulnerability

CVE-2025-0520 is an unrestricted file upload flaw (CWE-434) in ShowDoc versions prior to 2.8.7. The upload functionality does not validate file extensions or content type with sufficient rigour, allowing an unauthenticated attacker to submit a malicious PHP file through the file attachment endpoint. Once uploaded, the PHP file is stored in a web-accessible directory, where it can be requested directly via the web server — causing the PHP interpreter to execute it as server-side code. This grants the attacker arbitrary code execution under the web server process account, with no authentication required.

The exploitation path is direct: find an internet-exposed ShowDoc instance, upload a PHP web shell, send an HTTP request to the uploaded file, and receive a command execution shell on the server. No credentials, no social engineering, no chained vulnerabilities required. Honeypot telemetry confirms that attackers have automated this sequence and are scanning for vulnerable instances at scale.

Why Unpatched Instances Persist

ShowDoc 2.8.7, released in October 2020, was the patch release — now four and a half years ago. The current version is 3.8.1. The fact that more than 2,000 internet-exposed instances remain on pre-2.8.7 versions reveals a familiar pattern in self-hosted tooling: once deployed, internal documentation tools are rarely subject to the same patch cadence applied to production-facing infrastructure.

ShowDoc is predominantly used by developers and operations teams, often deployed informally — a single Docker container stood up by an individual engineer or small team without formal IT governance applied. These deployments frequently do not have an owner actively monitoring for upstream security advisories, and are not included in enterprise vulnerability management programmes that scan for patching status. The tool continues running indefinitely on the version initially installed.

Attack Impact and Context

A compromised ShowDoc instance represents more than a web shell on a single server. IT documentation tools by design contain high-value internal information: network topology diagrams, system credentials for internal services, API documentation with authentication details, deployment runbooks, and configuration guides. An attacker with ShowDoc access and arbitrary code execution on the server may be able to:

  • Read all stored documentation, including plaintext or encoded credentials
  • Pivot from the ShowDoc server to internal network resources accessible from the host
  • Establish persistent access through scheduled tasks or cron jobs added via the web shell
  • Use Rclone or curl to exfiltrate documentation content to external storage

This makes ShowDoc a priority target for post-initial-access lateral movement — attackers who have landed on an internal network segment may target internal ShowDoc instances as intelligence sources even without internet exposure.

  • Update ShowDoc to version 3.8.1 immediately on all instances, whether internet-facing or internal only. The update eliminates the CVE-2025-0520 file upload vector.
  • Conduct a ShowDoc inventory: Identify all ShowDoc deployments in the organisation, including those stood up informally by development teams. Shadow IT documentation tooling is frequently missed by central IT scanning.
  • Remove internet exposure: ShowDoc is an internal tool and should not be reachable from the public internet. Place it behind VPN, internal DNS only, or IP allowlist access controls. Internet-exposed instances should be assumed compromised if running pre-2.8.7 versions.
  • Audit uploaded files: On vulnerable instances, review the uploads directory (/data/uploads/ or equivalent) for unexpected PHP, PHTML, or SHTML files. These indicate a web shell has been uploaded. Any found should be treated as active compromise.
  • Check web server logs: Look for HTTP POST requests to the file attachment endpoint followed shortly by HTTP GET requests to PHP files in the uploads path — this is the exploitation fingerprint.
  • Extend vulnerability management to internal tooling: ShowDoc is representative of a category of developer-deployed tooling (documentation platforms, internal wikis, monitoring dashboards) that frequently escape enterprise patch programmes. These tools should be included in periodic scanning, even when not internet-facing.

Broader Context

CVE-2025-0520 is a classic N-day exploitation event — a vulnerability patched years ago now being mass-exploited because a significant population of deployments never applied the fix. This pattern repeats reliably across self-hosted software, particularly developer tools where informal deployment and minimal governance are the norm. The security burden falls on the teams that deploy these tools to maintain them, which in practice means many installations simply age in place. Threat actors are well aware of this gap and devote scanning resources specifically to identifying long-unpatched instances of developer and operational tooling.

Share this article

Related Intelligence

💻 AppSec

Hugging Face LeRobot CVE-2026-25874 — Critical Unpatched RCE via Pickle Deserialization in Unauthenticated gRPC Endpoint

A critical unpatched remote code execution vulnerability in Hugging Face's LeRobot robotics AI framework allows unauthenticated attackers to execute arbitrary code on any server running the gRPC control interface. CVE-2026-25874, rated CVSS 9.3, affects the project's dataset loading and remote control pipeline via Python pickle deserialization. No patch is available; mitigations focus on network isolation.

#hugging-face +6
💻 AppSec

Progress ShareFile Pre-Auth RCE Chain Puts 30,000 Exposed Servers at Risk — Patch to 5.12.4

Researchers at watchTowr Labs have disclosed a two-vulnerability chain in Progress ShareFile Storage Zones Controller that enables unauthenticated remote code execution via webshell upload. Approximately 30,000 Storage Zone Controller instances are internet-exposed and remain at risk if not patched to version 5.12.4, which was released on 10 March 2026 before full public disclosure of the attack path.

#sharefile +7
💻 AppSec

Langflow CVE-2026-5027 Exploitation Accelerates: AI Workflow Builder's Path Traversal RCE Under Active Attack

Exploitation of CVE-2026-5027 in Langflow, the AI workflow builder, has intensified following public PoC release. The path traversal remote code execution vulnerability, added to CISA's KEV on 8 June, is being used to deploy credential stealers and post-exploitation agents against organisations running unsecured Langflow instances. Upgrade to Langflow 1.3.5 immediately.

#langflow +9