SP Project Manager Access Control Vulnerability//Published on 2026-06-04//CVE-2026-10737

WP-FIREWALL-SICHERHEITSTEAM

WordPress SP Project & Document Manager Vulnerability

Plugin-Name WordPress SP Project & Document Manager Plugin
Art der Schwachstelle Zugriffskontrolle
CVE-Nummer CVE-2026-10737
Dringlichkeit Hoch
CVE-Veröffentlichungsdatum 2026-06-04
Quell-URL CVE-2026-10737

Urgent: Broken Access Control in SP Project & Document Manager (<= 4.71) — What WordPress Site Owners Must Do Now

Autor: WP-Firewall-Sicherheitsteam
Datum: 2026-06-04
Stichworte: wordpress, security, wps-firewall, vulnerability, cve-2026-10737


Zusammenfassung

A critical broken access control vulnerability (CVE-2026-10737) has been disclosed in the WordPress plugin “SP Project & Document Manager” (plugin slug: sp-client-document-manager) affecting versions up to and including 4.71. The flaw allows unauthenticated attackers to query the plugin’s file information endpoints without proper authorization, enabling disclosure of arbitrary file information and increasing the risk of data exposure and follow-on attacks. This post explains the technical details, the real risk to your site, detection techniques, immediate mitigations you can apply, and longer-term remediation and prevention steps. We also outline how WP-Firewall can help you mitigate the threat fast.


Warum das wichtig ist

The vulnerability is classified as Broken Access Control and has a CVSS base score of 7.5. “Broken Access Control” in practice means a developer forgot to enforce authentication/authorization checks before returning sensitive data or allowing privileged actions. Because this particular issue is exploitable by unauthenticated attackers, the barrier to exploitation is low — no valid WordPress account is required. That makes it suitable for automated scanning and mass-exploitation campaigns.

If exploited, attackers can enumerate or obtain information about files managed by the plugin (file names, paths, metadata, possibly URLs), which may reveal sensitive assets (contracts, private documents, backup files), provide reconnaissance for further attacks, and potentially expose data that could be used to escalate into privilege escalation or data exfiltration.

Researchers credited with reporting this issue include Namdn – Vncsglobal, and the vulnerability has been assigned CVE-2026-10737.


Technische Übersicht (hochrangig)

  • Affected software: SP Project & Document Manager WordPress plugin (sp-client-document-manager)
  • Affected versions: <= 4.71
  • Vulnerability type: Broken Access Control — missing authorization checks on file information retrieval endpoints
  • CVE: CVE-2026-10737
  • Erforderliches Privileg: Unauthentifiziert
  • CVSS base score: 7.5 (High)

Was die Anfälligkeit erlaubt

  • Unauthenticated HTTP requests to the plugin’s file-info endpoints return arbitrary file metadata or information without verifying the requester’s identity.
  • Attackers can enumerate file identifiers, retrieve filenames, and learn the presence and structure of private documents.
  • The information can be used to:
    • Identify locations of sensitive documents for manual retrieval or targeted attacks.
    • Build lists of exposed assets across many sites for later exploitation.
    • Improve social engineering or ransom attempts by revealing the presence of sensitive artifacts.

Warum das gefährlich ist

  • Low exploitation barrier: no authentication required.
  • Scannable at scale: attackers can automate discovery across large IP ranges and domains.
  • Combined with other weaknesses (file upload flaws, misconfigured servers), it can lead to full data disclosure.

Attack scenario (example)

  1. Attacker discovers the site runs the vulnerable plugin (via fingerprinting or plugin-file probes).
  2. Attacker issues unauthenticated requests to the plugin’s file information endpoint with different file identifiers or paths.
  3. The endpoint responds with details about files (names, paths, sizes, maybe URLs), even if the files are intended to be private.
  4. Attacker uses the revealed information to:
    • Request files directly (if accessible).
    • Harvest useful data for targeted attacks (e.g., a contract file name that contains client names).
    • Combine with other vulnerabilities (e.g., arbitrary file download functions or misconfigured directory listings) to exfiltrate data.

Notiz: Because the plugin’s internal naming and identifier scheme vary, attackers may need an initial reconnaissance step to enumerate valid IDs, but tools can automate this and run quickly.


Erkennung — wonach in Protokollen zu suchen ist

You should look for anomalous requests that target the plugin’s endpoints or pass file-related parameters without valid authentication. The plugin slug (sp-client-document-manager) may appear in request paths, or the calls may go through WordPress standard endpoints such as admin-ajax.php oder REST-Endpunkten.

High-level patterns to search for:

  • Ungewöhnliche Anfragen an admin-ajax.php containing file-related parameters (e.g., datei_id, doc_id, download_id). Example (search logs):
    grep -E "admin-ajax.php.*(file|doc|download|id|fid|file_id|doc_id)" /var/log/apache2/access.log
  • Requests to paths under /wp-content/plugins/sp-client-document-manager/* or any public endpoints exposed by the plugin:
    grep -E "sp-client-document-manager" /var/log/nginx/access.log
  • Sudden bursts of GET requests with incremental numeric IDs or long lists of parameters (enumeration pattern).
  • Requests that return 200 responses with non-empty JSON containing file metadata for unauthenticated IPs.

Practical grep examples:

# Look for admin-ajax calls with likely file parameters
zgrep -i "admin-ajax.php" /var/log/nginx/access.log* | egrep -i "(file_id|doc_id|download|fid|file|document)"

# Look for plugin-specific references
zgrep -i "sp-client-document-manager" /var/log/nginx/access.log* | tail -n 200

# Identify IPs making high volumes of requests to suspected endpoints
zgrep -i "admin-ajax.php" /var/log/nginx/access.log* | awk '{print $1}' | sort | uniq -c | sort -nr | head

Indikatoren für Kompromittierung (IOC)

  • Access logs showing repeated unauthenticated requests to plugin endpoints that return file metadata.
  • Unexpected successful retrievals (HTTP 200) of file information or content where such operations should require login.
  • File downloads immediately following file-info queries from the same IP range.
  • New administrator or privileged users created shortly after reconnaissance (indicates follow-up attack).

Sofortige Maßnahmen zur Minderung (erste 24–72 Stunden)

If you manage WordPress sites running the affected plugin and cannot immediately apply a vendor patch (the vulnerability was reported before a safe stable patch is available for some installs), follow these prioritized steps:

  1. Betroffene Standorte identifizieren
    • Inventory any WordPress installs with sp-client-document-manager installed or active.
  2. Disable or deactivate the plugin (recommended, quickest mitigation)
    • If the plugin is not essential, deactivate it until a patched version is released and applied.
    • From wp-admin: Plugins → Deactivate “SP Project & Document Manager”.
    • Via SSH (if admin area inaccessible):
      mv wp-content/plugins/sp-client-document-manager wp-content/plugins/sp-client-document-manager-disabled
              

      WordPress will automatically deactivate the plugin upon detecting the folder rename.

  3. Block the vulnerable endpoints with server-level rules (if you cannot deactivate)
    • Verwenden .htaccess (Apache) to deny external access to plugin files or endpoints:
      # Block direct access to the plugin folder
      <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_URI} ^/wp-content/plugins/sp-client-document-manager/ [NC]
        RewriteRule .* - [F,L]
      </IfModule>
              
    • Or restrict specific plugin PHP files that handle file requests:
      <FilesMatch "^(file-handler\.php|ajax-handler\.php)$">
        Require ip 127.0.0.1
        Require ip ::1
      </FilesMatch>
              
    • Nginx example: return 403 for plugin path
      location ~* /wp-content/plugins/sp-client-document-manager/ {
        deny all;
        return 403;
      }
              
    • Note: these server rules may break legitimate functionality (e.g., if you rely on the plugin). Balance risk vs. functionality.
  4. Apply WAF/virtual patching rules (recommended immediate protection)
    • If you run a Web Application Firewall or application-layer protections, deploy rules to:
      • Block unauthenticated requests to plugin file-info endpoints and/or admin-ajax calls that include file-related parameters.
      • Block repetitive scanning patterns (rate-limit).
    • Example WAF rule pseudocode (pattern-based):
      • Blockiere Anfragen, wenn:
        • URI enthält sp-client-document-manager ODER
        • admin-ajax.php request contains parameter matching (file_id|doc_id|download|fid) UND
        • No valid logged-in cookie or Authorization header present.
    • Implement temporary allowlists for IPs you trust if you must keep the plugin active.
  5. Zugriff beschränken auf wp-Administrator by IP
    • Einschränken /wp-admin Und admin-ajax.php access to known IPs where possible:
      Apache:
      <Location /wp-admin>
        Require ip 203.0.113.0/24
      </Location>
      
      Nginx:
      location /wp-admin {
        allow 203.0.113.0/24;
        deny all;
      }
              
  6. Überwachung und Protokollierung verstärken
    • Enable and centralize logging for admin-ajax calls and plugin paths.
    • Set up alerts for spikes in requests to suspicious endpoints.
  7. Perform a quick scan for suspicious files or data access
    • Check upload directories and plugin-managed folders for changes: new files, modified times, unusual filenames.
    • Run a malware scan and integrity check against core WP files and themes.

Example temporary WAF rule patterns

Below are general patterns — adapt them to your WAF or server proxy rules engine.

  1. Block unauthenticated admin-ajax file-lookup attempts (pseudo-rule)
    • Übereinstimmung:
      • Anforderungs-URI: /wp-admin/admin-ajax.php
      • Query string contains: datei_id ODER doc_id ODER herunterladen ODER fid
      • Cookie does not contain a WordPress logged-in cookie (wordpress_logged_in_)
    • Action: Block / Respond 403
  2. Rate-limit suspicious enumeration
    • Übereinstimmung:
      • Same IP issuing > 10 requests within 60 seconds to admin-ajax.php with file-related parameters
    • Action: Throttle or block IP for a period
  3. Block direct plugin folder access
    • Übereinstimmung:
      • URI starts with /wp-content/plugins/sp-client-document-manager/
    • Action: Return 403 (if plugin functionality not required externally)

Seien Sie vorsichtig: WAF rules should be tested in monitor (detect-only) mode first to avoid breaking legitimate traffic.


Long term remediation and remediation checklist

  1. Update the plugin when a vendor-supplied patch is available
    • Apply the official fixed version immediately and verify functionality.
  2. If no patch is available, consider replacing the plugin
    • Evaluate alternative plugins with ongoing maintenance and security track record.
    • Where replacement is not possible, consider isolating the plugin’s functionality behind an authenticated application or separate service.
  3. Harden file storage and access controls
    • Move private file storage off the web root or use access-controlled storage (S3 with signed URLs).
    • Ensure uploaded files cannot be executed as code (e.g., restrict PHP execution in upload directories).
    • Set strict file permissions: 644 for files, 755 for directories, and ensure wp-config.php restricted (600 or more restrictive where possible).
  4. Reduzieren Sie die Angriffsfläche
    • Deaktivieren oder entfernen Sie ungenutzte Plugins und Themes.
    • Limit admin accounts, implement least privilege roles, and enforce strong passwords and MFA for all admin users.
  5. Regular backups and security testing
    • Maintain frequent backups stored offsite.
    • Schedule vulnerability scans and penetration tests, especially after major plugin or theme updates.
  6. Continuous monitoring and incident readiness
    • Maintain audit logs for privileged actions.
    • Prepare an incident response plan that includes containment steps specific to plugin vulnerabilities (e.g., deactivate plugin; block endpoints; preserve logs).

Vorfallreaktion: Schritt-für-Schritt-Playbook

Wenn Sie eine Ausnutzung vermuten, befolgen Sie diese Schritte:

  1. Enthalten
    • Immediately block suspicious IPs and rate-limit the plugin endpoints.
    • Deactivate the vulnerable plugin if feasible.
  2. Beweise sichern
    • Preserve webserver and application logs (do not rotate or delete).
    • Snapshot the database and filesystem for forensics.
    • Note the timeframes and any suspicious activity.
  3. Auswirkungen identifizieren
    • Search logs for requests to plugin endpoints and follow-up file downloads.
    • Identify which files were enumerated or accessed.
    • Determine whether data exfiltration occurred (based on downloads or outbound connections).
  4. Ausrotten
    • Remove attacker artifacts (backdoors, unauthorized admin users, modified files).
    • Replace compromised content with clean backups if necessary.
  5. Genesen
    • Restore from clean backups or after patching and hardening steps are applied.
    • Re-enable the plugin only after the vendor patch is applied and you have validated fixes.
  6. Notify stakeholders and regulators
    • If sensitive personal data has been exposed, follow applicable breach notification laws and inform affected parties per policy.
  7. Überprüfen und verbessern
    • Conduct a post-incident review and update your security controls and patching cadence.

Evidence collection — commands and queries

Common queries to gather evidence:

  • Search access logs for plugin references and suspicious admin-ajax calls:
    zgrep -i "sp-client-document-manager" /var/log/nginx/access.log* | less
    zgrep -i "admin-ajax.php" /var/log/nginx/access.log* | egrep -i "(file_id|doc_id|download|fid|file)"
        
  • Identify unique IPs contacting affected endpoints:
    zgrep -i "admin-ajax.php" /var/log/nginx/access.log* | egrep -i "(file_id|doc_id|download|fid|file)" | awk '{print $1}' | sort | uniq -c | sort -nr
        
  • Query WordPress database for suspicious users (requires DB access):
    SELECT ID, user_login, user_email, user_registered FROM wp_users WHERE user_registered >= DATE_SUB(NOW(), INTERVAL 7 TAGEN);
        
  • Check filesystem for recently modified files:
    find /var/www/html -type f -mtime -7 -ls
        

Prevention: secure configuration checklist

  • Keep WordPress core, themes, and plugins up to date. Monitor security advisories for your installed plugins.
  • Deaktivieren oder entfernen Sie ungenutzte Plugins und Themes.
  • Enforce strong admin passwords and enable two-factor authentication for all admin accounts.
  • Beschränken Sie den Zugriff auf wp-admin nach IP, wo immer möglich.
  • Disable file editing within WordPress:
    define('DISALLOW_FILE_EDIT', true);
        
  • Protect wp-config.php and .env files; restrict permissions and move to non-public directories where supported.
  • Prevent execution of PHP files in upload directories:
    <Directory "/var/www/html/wp-content/uploads">
      <FilesMatch "\.(php|phtml)$">
        Require all denied
      </FilesMatch>
    </Directory>
        
  • Use a Web Application Firewall to create virtual patches for newly disclosed vulnerabilities while official patches are tested and deployed.
  • Implement robust logging and centralized log collection so you can detect mass scan activity quickly.

How WP-Firewall helps (our perspective)

At WP-Firewall we approach disclosures like CVE-2026-10737 with a prioritized, pragmatic mitigation plan:

  • Rapid virtual patching: we create rule sets that block unauthenticated access patterns to plugin endpoints while preserving legitimate traffic where possible.
  • Managed mitigation: our systems monitor and block automated enumeration and scanning attempts, apply rate limiting, and provide temporary defenses until vendors release official patches.
  • Detection and alerts: we deliver real-time alerts when anomalous admin-ajax or plugin endpoint activity is observed, allowing you to act immediately.
  • Post-event guidance: if you suspect compromise, we provide forensic support steps to preserve evidence and remediate.

We recommend combining server-level controls with application-layer protections. A layered approach reduces both the likelihood of successful exploitation and the impact if an attacker attempts to probe your site.


Empfohlener Zeitrahmen für Website-Besitzer

  • Sofort (0–24 Stunden):
    • Identifizieren Sie betroffene Websites.
    • If feasible, deactivate the plugin or block plugin paths with server rules.
    • Increase monitoring and preserve logs.
  • Kurzfristig (24–72 Stunden):
    • Deploy WAF rules to block unauthenticated requests that match file enumeration patterns.
    • Scan for signs of compromise, back up evidence.
  • Medium term (3–7 days):
    • Apply the official plugin patch once released, or remove/replace plugin permanently.
    • Rotieren Sie Anmeldeinformationen, wenn ein Kompromiss vermutet wird.
  • Long term (weeks):
    • Review your plugin governance and patching processes.
    • Improve detection and monitoring coverage.
    • Consider moving sensitive file storage to non-webroot or authenticated storage.

Practical sample .htaccess and nginx snippets

Apache (.htaccess) block for plugin files:

# Block direct access to plugin folder (use with caution)
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} ^/wp-content/plugins/sp-client-document-manager/ [NC]
  RewriteRule ^.*$ - [F,L]
</IfModule>

Nginx block for plugin:

# Deny public access to the plugin's folder
location ^~ /wp-content/plugins/sp-client-document-manager/ {
  deny all;
  return 403;
}

Protect admin-ajax calls requiring login (Apache example):

<If "%{REQUEST_URI} == '/wp-admin/admin-ajax.php' && %{QUERY_STRING} =~ /(file_id|doc_id|download|fid|file)/">
  Require expr %{HTTP_COOKIE} -strmatch "wordpress_logged_in_*"
  # If no logged-in cookie, block
  Require all denied
</If>

Seien Sie vorsichtig: These rules can affect legitimate users. Test in a staging environment first.


After the vulnerability is patched

  • Validate the vendor’s patch on a staging site before updating production.
  • After patching, monitor logs for repeated attempts that preceded successful exploitation and verify no unauthorized downloads or modifications occurred.
  • Re-enable any temporarily disabled functionality only after confirming the patch and monitoring for anomalous activity.

Start protecting your site for free — WP-Firewall Basic

If you want hands-on, managed protection while you triage and patch, try WP-Firewall’s Basic (free) plan. It provides essential protection for WordPress sites: a managed firewall, unlimited bandwidth, a WAF with mitigation for OWASP Top 10 risks, and a malware scanner — everything you need to reduce exposure while you investigate plugin vulnerabilities. For a low-cost upgrade, our Standard and Pro plans add automated malware removal, IP allow/deny controls, monthly security reporting, and virtual patching options for newly discovered vulnerabilities.

Explore the WP-Firewall Basic plan and sign up here:
https://my.wp-firewall.com/buy/wp-firewall-free-plan/


Abschließende Empfehlungen (Zusammenfassung)

  • Treat this vulnerability as high priority — act quickly.
  • If possible, deactivate the plugin immediately. If not possible, apply server blocks and WAF rules to prevent unauthenticated access to file-info endpoints.
  • Monitor logs and preserve evidence; scan for indicators of compromise.
  • Apply the official plugin patch as soon as it is released and validate fixes in staging.
  • Harden your WordPress installation and enforce best security practices (MFA, least privilege, backups).
  • Consider a managed WAF or security service to virtually patch and protect your site while you test and deploy official updates.

If you run multiple WordPress sites or host sites for clients, implement an inventory and automated patching workflow — these reduce reaction time and limit exposure when new vulnerabilities are disclosed.


If you need tailored guidance for patching, WAF rule creation, log analysis, or incident response on a specific site, our WP-Firewall Security Team is available to assist.

We can help you identify affected installations, create precise mitigation rules, and validate remediation steps so you can restore normal operations with confidence.


wordpress security update banner

Erhalten Sie WP Security Weekly kostenlos 👋
Jetzt anmelden
!!

Melden Sie sich an, um jede Woche WordPress-Sicherheitsupdates in Ihrem Posteingang zu erhalten.

Wir spammen nicht! Lesen Sie unsere Datenschutzrichtlinie für weitere Informationen.