CVE-2026-108587

Status: DeferredCritical (9.8)—
Severity9.8Critical · CVSS 3.1
Exploitation probability0.92 %higher than 60% of CVEs
Active exploitationNonot in the CISA catalog
Public exploitNot knownno public code found

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.

Read full descriptionShow less

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.

CVSS

Base score
9.8
Version
3.1
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Exploitation probability (EPSS)

Probability of exploitation in the next 30 days
0.92 %
Percentile among all scored CVEs
60
Score date
10/20/2026

EPSS (Exploit Prediction Scoring System, FIRST) estimates how likely a vulnerability is to be exploited in the wild within 30 days. It complements CVSS (impact) and CISA KEV (confirmed exploitation).

ATT&CK techniques

How this vulnerability is exploited and what the attacker gains, in MITRE ATT&CK terms.

Vector AV:N/PR:N/UI:N y subida arbitraria sin autenticación vía compressCustom; el texto indica archivos ejecutables y RCE posible, y un nonce filtrado en fichero legible.

Inferred by our analysis agent from the official description, CVSS vector and CWE, and checked by a supervisor. May contain errors.

ATT&CK mitigations that cover these techniques

Affected technologies (1)

⚠ AI-inferred from the description — NVD hasn't analyzed this CVE yet, these aren't verified CPEs.

CWEs

References

Show 12 references

Raw JSON (NVD)

Show
{
  "id": "CVE-2026-108587",
  "cveTags": [],
  "metrics": {
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "id": "CVE-2026-108587",
          "role": "CISA Coordinator",
          "options": [
            {
              "exploitation": "none"
            },
            {
              "automatable": "yes"
            },
            {
              "technicalImpact": "total"
            }
          ],
          "version": "2.0.3",
          "timestamp": "2026-10-15T10:45:57.501865Z"
        }
      }
    ],
    "cvssMetricV31": [
      {
        "type": "Secondary",
        "source": "security@wordfence.com",
        "cvssData": {
          "scope": "UNCHANGED",
          "version": "3.1",
          "baseScore": 9.8,
          "attackVector": "NETWORK",
          "baseSeverity": "CRITICAL",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
          "integrityImpact": "HIGH",
          "userInteraction": "NONE",
          "attackComplexity": "LOW",
          "availabilityImpact": "HIGH",
          "privilegesRequired": "NONE",
          "confidentialityImpact": "HIGH"
        },
        "impactScore": 5.9,
        "exploitabilityScore": 3.9
      }
    ]
  },
  "affected": [
    {
      "source": "security@wordfence.com",
      "affectedData": [
        {
          "vendor": "10web",
          "product": "10Web Booster – Website speed optimization, Cache & Page Speed optimizer",
          "versions": [
            {
              "status": "affected",
              "version": "0",
              "versionType": "semver",
              "lessThanOrEqual": "2.34.10"
            }
          ],
          "defaultStatus": "unaffected"
        }
      ]
    }
  ],
  "published": "2026-10-15T05:17:02.637",
  "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",
      "source": "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",
      "source": "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",
      "source": "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",
      "source": "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",
      "source": "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",
      "source": "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",
      "source": "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",
      "source": "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",
      "source": "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",
      "source": "security@wordfence.com"
    },
    {
      "url": "https://plugins.trac.wordpress.org/changeset/3743299/tenweb-speed-optimizer",
      "source": "security@wordfence.com"
    },
    {
      "url": "https://www.wordfence.com/threat-intel/vulnerabilities/id/adfd97cf-8f61-463d-a535-1a61e3c2e134?source=cve",
      "source": "security@wordfence.com"
    }
  ],
  "vulnStatus": "Deferred",
  "weaknesses": [
    {
      "type": "Secondary",
      "source": "security@wordfence.com",
      "description": [
        {
          "lang": "en",
          "value": "CWE-434"
        }
      ]
    }
  ],
  "descriptions": [
    {
      "lang": "en",
      "value": "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."
    }
  ],
  "lastModified": "2026-10-15T17:17:14.450",
  "sourceIdentifier": "security@wordfence.com"
}