---
id: CVE-2026-108587
title: >-
  The 10Web Booster – Website speed optimization, Cache & Page Speed optimizer
  plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up
  to, and including, 2.34.10 via the compressCustom function
summary: >-
  The 10Web Booster – Website speed optimization, Cache & Page Speed optimizer
  plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up
  to, and including, 2.34.10 via the compressCustom function. This is due to
  missin…
severity: critical
cvss: 9.8
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'
cwe:
  - CWE-434
vendor: 10web
product: '10Web Booster – Website speed optimization, Cache & Page Speed optimizer'
affected:
  - booster_website_speed_optimization_cache_page_speed_optimizer <= 2.34.10
published: '2026-10-15'
updated: '2026-10-15'
sourceUpdated: '2026-10-15T05:17:02.637'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-108587'
references:
  - url: >-
      https://plugins.trac.wordpress.org/browser/tenweb-speed-optimizer/tags/2.34.1/vendor/10web-utils/10web-queue/src/TenWebQueue/Traits/QueueRestart.php#L63
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/tenweb-speed-optimizer/tags/2.34.1/vendor/10web-utils/tenweb-image-optimizer/src/TenWebIO/CompressService.php#L99
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/tenweb-speed-optimizer/tags/2.34.1/vendor/10web-utils/tenweb-image-optimizer/src/TenWebIO/Rest.php#L310
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/tenweb-speed-optimizer/tags/2.34.1/vendor/10web-utils/tenweb-image-optimizer/src/TenWebIO/Rest.php#L99
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/tenweb-speed-optimizer/tags/2.34.1/vendor/10web-utils/tenweb-image-optimizer/src/TenWebIO/Utils.php#L161
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/tenweb-speed-optimizer/tags/2.34.5/vendor/10web-utils/10web-queue/src/TenWebQueue/Traits/QueueRestart.php#L63
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/tenweb-speed-optimizer/tags/2.34.5/vendor/10web-utils/tenweb-image-optimizer/src/TenWebIO/CompressService.php#L99
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/tenweb-speed-optimizer/tags/2.34.5/vendor/10web-utils/tenweb-image-optimizer/src/TenWebIO/Rest.php#L310
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/tenweb-speed-optimizer/tags/2.34.5/vendor/10web-utils/tenweb-image-optimizer/src/TenWebIO/Rest.php#L99
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/tenweb-speed-optimizer/tags/2.34.5/vendor/10web-utils/tenweb-image-optimizer/src/TenWebIO/Utils.php#L161
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/changeset/3743299/tenweb-speed-optimizer
    label: security@wordfence.com
  - url: >-
      https://www.wordfence.com/threat-intel/vulnerabilities/id/adfd97cf-8f61-463d-a535-1a61e3c2e134?source=cve
    label: security@wordfence.com
tags:
  - nvd
  - cve.org
ingestedAt: '2026-10-15T05:52:45.976Z'
---

## Overview

The 10Web Booster – Website speed optimization, Cache & Page Speed optimizer plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 2.34.10 via the compressCustom function. This is due to missing file type validation and extension filtering on the page_id parameter, combined with a world-readable leaked nonce that bypasses authentication checks. This makes it possible for unauthenticated attackers to upload files that may be executable, which makes remote code execution possible. This exploit chain requires obtaining the plugin's REST nonce (tenwebio_rest), which is automatically serialized to a world-readable file under wp-content/uploads/ whenever a bulk optimisation batch pauses; because the nonce is generated in a cron/loopback context with a user ID of 0, it is valid for unauthenticated visitors.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
