---
id: CVE-2026-16098
title: >-
  The ProSolution WP Client plugin for WordPress is vulnerable to Arbitrary File
  Upload in all versions up to, and including, 2.0.10 via the
  proSol_handleFileUpload function
summary: >-
  The ProSolution WP Client plugin for WordPress is vulnerable to Arbitrary File
  Upload in all versions up to, and including, 2.0.10 via the
  proSol_handleFileUpload function. This is due to missing validation of the
  attacker-controlled Con…
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
published: '2026-08-16'
updated: '2026-08-16'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-16098'
references:
  - url: >-
      https://plugins.trac.wordpress.org/browser/prosolution-wp-client/tags/2.0.6/includes/UploadHandler.php#L1090
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/prosolution-wp-client/tags/2.0.6/includes/UploadHandler.php#L1327
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/prosolution-wp-client/tags/2.0.6/includes/class-prosolwpclient.php#L254
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/browser/prosolution-wp-client/tags/2.0.6/public/class-prosolwpclient-public.php#L1033
    label: security@wordfence.com
  - url: >-
      https://plugins.trac.wordpress.org/changeset?reponame=&old=3644463%40prosolution-wp-client&new=3644463%40prosolution-wp-client
    label: security@wordfence.com
  - url: >-
      https://www.wordfence.com/threat-intel/vulnerabilities/id/3c4a7aef-09ec-4d17-87d6-f507d64e0afa?source=cve
    label: security@wordfence.com
tags:
  - nvd
ingestedAt: '2026-08-16T13:39:07.069Z'
epss: 0.01197
epssPercentile: 0.66811
---

## Overview

The ProSolution WP Client plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 2.0.10 via the proSol_handleFileUpload function. This is due to missing validation of the attacker-controlled Content-Disposition header filename, which overrides the allow-listed multipart filename before the file is saved, and a post-save extension check that fails to delete the already-written file. This makes it possible for unauthenticated attackers to upload files that may be executable, which makes remote code execution possible. The nonce required to reach the upload handler is publicly exposed via wp_localize_script on any front-end page rendering the job portal shortcode, allowing unauthenticated visitors to obtain a valid nonce and bypass that gating check entirely.

## Remediation

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