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

CVE-2023-5505

CVE-2023-5505 Directory Traversal in Backwpup
📅 PUBLISHED: 2024-08-17 08:37 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.56%
👁️
0.56% probability
14.1× above the median CVE
Tier: ELEVATED
30-day exploitation window · FIRST.org · updated daily
🥷 MITRE: T1562.001
👁️
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 6.8
AV: N Attack Vector Network
AC: L Attack Complexity Low
PR: L Privileges Required Low
UI: N User Interaction None
S: C Scope Changed
C: N Confidentiality None
I: H Integrity High
A: N Availability None
6.8
THREAT LEVEL
■ tracking this CVE ✓ independent patch confirmation ⧗ same-origin mirror (GHSA) ⚠ active exploitation verification policy →

Executive Summary

CVE-2023-5505 is a directory traversal vulnerability in the BackWPup WordPress plugin, affecting versions up to and including 4.0.1. This flaw allows an authenticated attacker (with at least subscriber-level access) to manipulate the job-specific backup folder path, enabling backups to be written to arbitrary directories on the server. In a shared hosting environment, an attacker could set the backup destination to the root of another site, causing the plugin to place index.php and .htaccess files that disable directory listing and file access for that target site. The vulnerability is classified as Medium severity (CVSS 6.8) and currently has no known public exploit or patch.

⚡ 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

CVSS Breakdown & Threat Level

  • CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:N/I:H/A:N
  • Base Score: 6.8 (Medium)
  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: Low (authenticated user)
  • User Interaction: None
  • Scope: Changed (impact on other sites in shared environment)
  • Confidentiality Impact: None
  • Integrity Impact: High (ability to write files to arbitrary directories)
  • Availability Impact: None

Threat Level: Medium. While the CVSS score is moderate, the potential for cross-site disruption in shared hosting environments elevates the risk for WordPress multisite or shared server deployments.

Deep Dive & Mechanics

The vulnerability resides in the backup job configuration logic of the BackWPup plugin. When an authenticated user creates or edits a backup job, the plugin accepts a user-supplied path for the backup destination folder without proper validation or sanitization. The plugin then uses this path in filesystem operations to write backup archives and security files (index.php and .htaccess).

Attack Flow:

  1. An attacker logs into WordPress with any account that can create or edit backup jobs (e.g., subscriber, author, editor).
  2. The attacker creates a new backup job and sets the "Backup to Folder" option to a path outside the intended scope, such as ../../wp-content/uploads/another-site/ or /var/www/html/another-site/.
  3. When the backup job runs (either manually or via cron), the plugin writes the backup archive and the security files (index.php and .htaccess) to the attacker-specified directory.
  4. In a shared hosting environment, this can overwrite or place new security files in another site's root, effectively disabling directory listing and file access for that site.

Root Cause: The plugin fails to validate that the backup folder path is within the allowed WordPress uploads directory or a safe location. The path is used directly in filesystem calls without checking for directory traversal sequences (../).

Vulnerable vs. Patched Code

Vulnerable Code (BackWPup <= 4.0.1):

// In class-backwpup-job.php or similar
public function set_backup_folder($folder) {
    $this->backup_folder = $folder; // No sanitization
}

public function run_backup() {
    $folder = $this->backup_folder;
    if (!file_exists($folder)) {
        mkdir($folder, 0755, true);
    }
    // Write backup file
    file_put_contents($folder . '/backup.zip', $data);
    // Write security files
    file_put_contents($folder . '/index.php', '<?php // Silence is golden.');
    file_put_contents($folder . '/.htaccess', 'Deny from all');
}

Patched Code (Hypothetical Fix):

public function set_backup_folder($folder) {
    // Resolve and validate path
    $allowed_base = WP_CONTENT_DIR . '/uploads/backwpup/';
    $real_path = realpath($allowed_base . '/' . $folder);
    if (strpos($real_path, $allowed_base) !== 0) {
        throw new Exception('Invalid backup folder');
    }
    $this->backup_folder = $real_path;
}

Key Differences:

  • The patched version uses realpath() to resolve directory traversal sequences.
  • It checks that the resolved path starts with the allowed base directory.
  • It rejects any path that attempts to escape the allowed scope.

Exploitation & Lab Setup

Red Team (Exploitation)

Prerequisites:

  • WordPress installation with BackWPup plugin version <= 4.0.1
  • Authenticated user account (subscriber or higher)
  • Write permissions on target directory (server must allow PHP to write)

Exploitation Steps:

  1. Log in to WordPress as an authenticated user.
  2. Navigate to BackWPup > Jobs > Add New.
  3. In the job configuration, set the Backup to Folder option to a traversal path, e.g., ../../wp-content/uploads/target-site/.
  4. Configure the job to run immediately or schedule it.
  5. Execute the backup job. The plugin will create the directory (if it doesn't exist) and write index.php and .htaccess files there.
  6. Verify the attack: Access the target site's root directory via browser – directory listing should be disabled, and direct file access blocked.

Example Payload:

Backup Folder: ../../wp-content/uploads/victim-site/

Blue Team (Detection & Prevention)

Detection:

  • Monitor for backup jobs with unusual folder paths containing ../ or absolute paths outside /wp-content/uploads/backwpup/.
  • Alert on creation of index.php or .htaccess files in unexpected directories (e.g., outside the plugin's intended scope).
  • Use file integrity monitoring (FIM) to detect unauthorized changes to .htaccess files.

Prevention:

  • Apply the principle of least privilege: restrict which WordPress users can create or edit backup jobs.
  • Use a Web Application Firewall (WAF) to block requests containing directory traversal patterns in backup folder parameters.
  • Implement server-side path validation to ensure backup folders are within a safe, isolated directory.

Indicators of Compromise (IOCs)

  • File System:
    • Unexpected index.php or .htaccess files in directories outside the plugin's intended backup folder (e.g., /var/www/html/another-site/index.php).
    • Backup archives (.zip, .tar, .gz) in unusual locations.
  • Logs:
    • WordPress audit logs showing backup jobs with folder paths containing ../ or absolute paths.
    • Server access logs showing requests to /wp-admin/admin.php?page=backwpupjobs&action=edit with suspicious folder parameters.
  • Network:
    • Outbound connections from the server to attacker-controlled hosts (if backup archives are exfiltrated).

Detection Engineering

YARA Rule

rule CVE_2023_5505_BackWPup_Directory_Traversal {
    meta:
        description = "Detects directory traversal attempts in BackWPup plugin"
        author = "Valters IT"
        date = "2025-04-08"
        cve = "CVE-2023-5505"
    strings:
        $traversal = /\.\.\/[^"]+/ 
        $backwpup_folder = "backup_folder" nocase
        $admin_page = "admin.php?page=backwpup" nocase
    condition:
        all of ($backwpup_folder, $admin_page) and $traversal
}

Sigma Rule

title: CVE-2023-5505 BackWPup Directory Traversal Attempt
id: 8a9b7c6d-5e4f-3a2b-1c0d-9e8f7a6b5c4d
status: experimental
description: Detects attempts to exploit directory traversal in BackWPup plugin
author: Valters IT
date: 2025-04-08
logsource:
    category: webserver
    product: apache
    service: access
detection:
    selection:
        cs-method: 'GET'
        cs-uri-query|contains: 
            - 'page=backwpup'
            - 'action=edit'
            - 'folder=..'
    condition: selection
falsepositives:
    - Legitimate use of relative paths in backup configuration (rare)
level: high

Suricata Rule

alert http $HOME_NET any -> $EXTERNAL_NET any (
    msg:"CVE-2023-5505 BackWPup Directory Traversal Attempt";
    flow:to_server,established;
    content:"/wp-admin/admin.php"; http_uri;
    content:"page=backwpup"; http_uri;
    content:"folder=.."; http_uri;
    classtype:attempted-admin;
    sid:1000001;
    rev:1;
    reference:cve,2023-5505;
)

Remediation & Mitigation

Immediate Actions:

  1. Disable the BackWPup plugin until a patch is available.
  2. Restrict user roles: Only allow trusted administrators to create or edit backup jobs.
  3. Implement server-side path validation using a custom plugin or .htaccess rewrite rules to block directory traversal patterns.

Long-term Fix:

  • The vendor should release a patched version that sanitizes the backup folder path using realpath() and restricts it to a safe base directory.
  • Apply the principle of least privilege for WordPress user roles.

Workaround:

  • Use a different backup plugin that properly validates paths (e.g., UpdraftPlus, Jetpack Backup).

Valters IT
Senior DevSecOps & Cyber Threat Intelligence Expert

👁️ 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:"BackWPup"
http.html:"wp-content/plugins/backwpup"

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