CVE-2026-9860: Offload, AI & Optimize with Cloudflare Images <= 1.10.2 - Authenticated (Author+) Remote Code Execution via 'api-key' / 'account-id' Parameters in cf_images_do_setup AJAX Action

Published Jun 18, 2026
·
Updated

The Offload, AI & Optimize with Cloudflare Images plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1.10.2 via the 'account-id' parameter parameter. This is due to insufficient privilege enforcement on the cfimagesdosetup AJAX handler, which requires only the uploadfiles capability (Author+) rather than manageoptions before writing to wp-config.php, combined with the absence of single-quote escaping — sanitizetextfield() does not strip single quotes, and filterinput(INPUTPOST) bypasses wpmagicquotes() slashing — allowing a single quote in the account-id or api-key parameter to break out of the single-quoted PHP string literal in the writeconfig() define() statement. This makes it possible for authenticated attackers, with author-level access and above, to execute code on the server. This is possible because the 'cf-images-nonce' nonce required by the AJAX handler is exposed to all Author-level and above users on wp-admin/upload.php via the CFImages JavaScript object, meaning any upload-capable user can satisfy the nonce check and reach the vulnerable wp-config.php write path.

Affected Software

1 affected component
Cloudflare Offload, AI & Optimize with Cloudflare Images<=1.10.2

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Offload, AI & Optimize with Cloudflare Images (WordPress plugin) to a version that resolves this vulnerability.

    Fixed in 1.10.2
  2. Configuration

    Update the cf_images_do_setup AJAX handler so it enforces manage_options (not only upload_files / Author+ capability) before writing to wp-config.php via the vulnerable write_config() define() path.

    WordPress Offload, AI & Optimize with Cloudflare Images plugin cf_images_do_setup AJAX handler privilege enforcement = require manage_options instead of only upload_files (Author+)
  3. Configuration

    Fix input handling for the account-id (and api-key) parameters so single quotes are properly escaped when written into wp-config.php in write_config() (the issue occurs because sanitize_text_field() does not strip single quotes and a single quote can break out of the single-quoted PHP string literal).

    WordPress Offload, AI & Optimize with Cloudflare Images plugin account-id / api-key input sanitization for write_config() define() = ensure single-quote escaping in single-quoted PHP string literals (do not rely on sanitize_text_field() alone)
  4. Configuration

    Change the CFImages JavaScript object so the cf-images-nonce nonce is not exposed to Author-level and above users on wp-admin/upload.php; restrict nonce availability to administrators or otherwise ensure upload-capable Authors cannot satisfy the nonce and reach cf_images_do_setup.

    WordPress Offload, AI & Optimize with Cloudflare Images plugin cf-images-nonce exposure scope = restrict cf-images-nonce so it is not exposed to all Author-level users on wp-admin/upload.php
  5. Compensating control

    Use a compensating control to prevent non-admin users from accessing wp-admin/upload.php (e.g., restrict Author/Author+ access via WordPress roles/capabilities or an access control layer) so Author+ users cannot reach the exposed cf-images-nonce and trigger the AJAX handler.

Event History

Jun 18, 2026
CVE Published
via MITRE·04:31 AM
Data Sourced
via MITRE·04:31 AM
DescriptionSeverityWeakness
Data Sourced
via NVD·06:16 AM
DescriptionSeverityWeakness
Jul 3, 58550
Event
via FIRST·04:45 AM
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-9860?

CVE-2026-9860 has a severity rating of 8.8, classified as high.

2

What versions are affected by CVE-2026-9860?

CVE-2026-9860 affects all versions of the Cloudflare Offload, AI & Optimize with Cloudflare Images plugin up to and including 1.10.2.

3

How can I fix CVE-2026-9860?

To fix CVE-2026-9860, update the Cloudflare Offload, AI & Optimize with Cloudflare Images plugin to the latest version.

4

What type of vulnerability is CVE-2026-9860?

CVE-2026-9860 is a Remote Code Execution vulnerability due to insufficient privilege enforcement.

5

What causes the vulnerability in CVE-2026-9860?

The vulnerability in CVE-2026-9860 is caused by insufficient validation of the 'account-id' parameter in the cf_images_do_setup AJAX handler.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203