Skip to main content
Home
GrN.dk

Main navigation

  • Articles
  • Cases
  • Services
  • Your Digital Project Manager
  • About Greg Nowak
  • Image Gallery
  • Contact
User account menu
  • Log in

Join my community / free newsletter — sign up here

Breadcrumb

  1. Home

The latest WordPress supply-chain attack was a CDN problem too

Illustrated infographic summarizing: The latest WordPress supply-chain attack was a CDN problem too

By Greg Nowak. Last updated 2026-06-19.

The June 16, 2026 TechRadar report is easy to misread. At first glance, it sounds like a familiar WordPress story: update the vulnerable plugin, confirm the version, and move on. The reported chain was wider than that. Attackers allegedly exploited a vulnerability in the UpdraftPlus plugin on an Awesome Motive marketing server, stole a CDN API key, and then altered JavaScript distributed through that CDN. TechRadar also reported that the vulnerable server was not part of the production environment. That is the uncomfortable part. A non-production system still held credentials that could change what live sites served.

The compromised files were later used by OptinMonster, TrustPulse, and PushEngage. So this is not only a plugin hygiene issue. It is also a problem in script delivery, secret handling, and governance around who can publish code into the browser.

The next detail changes the response again. TechRadar reported that the malicious JavaScript only fired when a logged-in WordPress administrator visited an affected site. The malware harvested administrator authentication tokens and WordPress nonces, created new administrator accounts, and opened the door to follow-on abuse including malicious plugins, command-and-control, data exfiltration, arbitrary PHP execution, and web-shell style control. Once that has happened, removing poisoned CDN scripts is not enough. You are dealing with persistence inside WordPress, not just a bad external file.

Check area What to do now Why it matters here
Admin access Review every privileged account, remove unknown admins, reset legitimate admin passwords, and enable two-step authentication where possible. TechRadar said the malicious script targeted logged-in administrators, harvested session material, and created rogue admins.
wp-config.php Review stored credentials and rotate security keys and salts during recovery. Those keys can invalidate existing cookies, which matters after a session-focused compromise.
Filesystem Inspect wp-content/plugins, compare unexpected file changes, and run server-side scans. TechRadar reported hidden backdoor plugins could preserve access even after the CDN scripts were removed.
Permissions Confirm least-privilege ownership and file permissions, especially around wp-config.php. Tighter permissions make it harder for malicious code to write, persist, or hide.
External scripts and CDN access List third-party scripts, review who can publish them, and confirm which systems hold the relevant credentials. This incident moved through a stolen CDN key, not just a WordPress dashboard.
A practical response checklist for a WordPress site exposed to CDN-delivered malicious JavaScript.

Why the CDN piece matters

WordPress's official hardening guidance still applies: strong passwords, two-step authentication, secure admin access, backups, logs, monitoring, and careful file permissions. None of that becomes less important. What this incident adds is a supply-chain reality: if a third party can change JavaScript loaded by your administrators, that third party sits inside your privileged path whether WordPress core is patched or not.

That is why the recovery scope has to cover both layers. One is the familiar WordPress layer: accounts, plugins, files, wp-config.php, and updates. The other is everything around it that can feed code into an admin session: CDN access, external scripts, marketing widgets, and the systems that store or can use those credentials. Fix only the first layer and you can easily miss the route in or the place an attacker chose to stay.

What to check on an exposed site

Start with privileged accounts. TechRadar specifically told site owners to look for rogue users named developer_api1 or dev_xxxxxx. Even if those names are not present, the priority is the same: confirm every administrator is expected, remove unknown accounts, and reset passwords for legitimate admins. WordPress's hardening guide is blunt here: once an attacker has administrator access, they can install malicious scripts that potentially compromise the entire server. The same guide also recommends two-step authentication, which matters even more when admin sessions are part of the attack path.

Then review wp-config.php. WordPress describes it as one of the most important files in the installation because it holds base configuration details, including database connection information. It also stores the security keys and salts. The official reference notes that those keys can be changed at any time to invalidate existing cookies. After a session-targeting incident, that is not a minor detail. Password resets help, but they are not the whole job if existing sessions may still be trusted.

Next, inspect the filesystem directly. TechRadar advised owners to check wp-content/plugins for hidden backdoor plugins and to run server-side malware scans. WordPress's own documentation supports that approach: logs matter for forensics, and monitoring changed or newly added files is part of finding what actually happened. Permissions matter as well. The file-permissions guide recommends real-user ownership rather than the webserver account, directories generally set to 755 or 750, files generally set to 644 or 640, and wp-config.php tightened to 440 or 400. Those settings do not clean an infection on their own, but they do make it harder for malicious code to write, persist, or hide.

Finally, deal with the basics properly. Back up the site before changes, verify that the backups are usable, update WordPress and active plugins, and remove plugins you do not need. In a case like this, script inventory belongs on the same checklist. If third-party JavaScript and CDN-managed assets can influence what admins load, you need to know exactly which scripts are present, who can update them, and which systems hold the credentials behind them.

Hardening that should stay after cleanup

Some hardening choices are worth keeping after the immediate cleanup. WordPress documents DISALLOW_FILE_EDIT in wp-config.php to stop administrators from editing theme and plugin PHP files in the dashboard, which matters because dashboard file editing is often one of the first post-login routes to code execution. For tighter change control, WordPress also documents DISALLOW_FILE_MODS, which blocks plugin and theme installation and updates from the admin area. That will not suit every site, but it is a sensible option when you want changes to happen through a controlled deployment path instead of a live admin session.

It is also worth checking secure transport around administration. The wp-config.php reference documents FORCE_SSL_ADMIN so passwords and cookies are not sent in the clear. The hardening guide also discusses adding another layer around /wp-admin/ and points out that HTTPS for administration is the strongest version of that second layer. None of those controls would have prevented the reported CDN compromise by themselves. They do reduce the damage when privileged sessions are the target.

The practical business lesson

The bigger lesson is straightforward. Your WordPress security boundary is not just the PHP on your host. It includes the services that can change what administrators load in the browser. If a marketing server can access a CDN key, and that key can rewrite JavaScript consumed by WordPress admins, the marketing server is part of your security model whether anyone planned for that or not.

For GrN, the sensible service here is a focused incident review and hardening pass, not a vague security retainer. Review administrator accounts. Inspect the filesystem. Check wp-config.php. Rotate passwords and security salts. Tighten permissions. Update WordPress and active plugins from a verified backup position. Then document which third-party scripts, vendors, and CDN credentials are allowed to touch the site. For companies that rely on marketing tooling, that inventory is no longer housekeeping. It is part of keeping a WordPress admin session from becoming someone else's foothold.

Related on GrN.dk

  • The 2026 WordPress Plugin Exploit Drumbeat Makes Plugin Inventory and Incident Response Paid Work
  • AI Search Visibility Is Now a Measurement Problem After Google's 2026 Guidance Changes
  • When Google can call the business, your local data stops being cosmetic

Need help with this kind of work?

Request a WordPress incident review Get in touch with Greg.

Sources

  • Over 1 million WordPress sites at risk after popular plugin hacked — OptinMonster among those hit in CDN supply-chain attack
  • Hardening WordPress
  • Editing wp-config.php
  • File Permissions
  • Upgrading WordPress
Last modified
2026-07-15

Tags

  • wordpress
  • supply chain
  • CDN
  • incident response
  • hardening

Review Greg on Google

Greg Nowak Google Reviews

 

Written recommendations from Trafik og Veje, Aarhus Municipality (2011) and AgroTech (2010) — read them on LinkedIn.

Illustrated infographic summarizing: Google’s AI Search Toggle Is a Publishing Decision, Not an SEO Setting
Google’s AI Search Toggle Is a Publishing Decision, Not an SEO Setting
2026-08-19

Google’s AI Search toggle forces a commercial choice about visibility, attribution and content use. Here’s how to make that choice responsibly.

Illustrated infographic summarizing: From Supplier Invoice to Bookkeeping: AI with a Control Checkpoint
From Supplier Invoice to Bookkeeping: AI with a Control Checkpoint
2026-08-18

AI can reduce the work involved in processing supplier invoices, but reliable bookkeeping requires validation, duplicate checks, approval and a clear audit trail.

Illustrated infographic summarizing: Nginx 1.30 Changed the Upstream Defaults—Test Before You Upgrade
Nginx 1.30 Changed the Upstream Defaults—Test Before You Upgrade
2026-08-17

Nginx 1.30 defaults upstream proxying to HTTP/1.1 with keepalive enabled. Here is what to inspect, model and test before upgrading.

Illustrated infographic summarizing: OpenAI’s Assistants API Shuts Down in Ten Days. Is Your App Ready?
OpenAI’s Assistants API Shuts Down in Ten Days. Is Your App Ready?
2026-08-16

OpenAI’s Assistants API shuts down on August 26, 2026. Learn what to inventory, how to preserve state and how to cut over without breaking the product.

Illustrated infographic summarizing: WordPress 7.1 Forces the Editor Into an iframe—Test Your Custom Blocks
WordPress 7.1 Forces the Editor Into an iframe—Test Your Custom Blocks
2026-08-15

WordPress 7.1 removes the non-iframe editor fallback. Learn how to audit custom blocks, test real workflows and fix compatibility issues before launch.

Illustrated infographic summarizing: GitHub will stop sending jobs to stale self-hosted runners
GitHub will stop sending jobs to stale self-hosted runners
2026-08-14

GitHub starts enforcing runner versions on August 24, 2026. Audit and upgrade self-hosted runners before builds and deployments start stalling.

Illustrated infographic summarizing: Your AI Agent Has Shell Access. What Can It Reach?
Your AI Agent Has Shell Access. What Can It Reach?
2026-08-13

A practical guide to mapping what a shell-enabled AI agent can reach, then containing its access to files, credentials, networks, tools, and high-impact actions.

Illustrated infographic summarizing: Cloudflare Changed DoH JSON. What Else Is Parsing DNS as Text?
Cloudflare Changed DoH JSON. What Else Is Parsing DNS as Text?
2026-08-12

Cloudflare’s DoH JSON change exposes brittle DNS parsing. Find affected scripts, test both formats, and choose a safer integration contract.

Illustrated infographic summarizing: Your Website Can Answer Questions Now. Should It?
Your Website Can Answer Questions Now. Should It?
2026-08-11

NLWeb makes conversational website search practical to deploy. The real question is whether your content, users and team are ready to support it.

Illustrated infographic summarizing: AI Search Finally Has Reports. Now Connect Visibility to Revenue
AI Search Finally Has Reports. Now Connect Visibility to Revenue
2026-08-11

Google and Bing now expose first-party AI search data. The real task is connecting citations and impressions to analytics, CRM outcomes, and revenue.

More articles

Built by AI — available for your business. The daily articles on this site are researched, written and illustrated by an autonomous AI pipeline. At nowa.dk I install the same kind of AI automation in businesses at fixed prices — site in Danish, English version here, and web/marketing agencies have a dedicated page.

RSS feed

Footer

  • All articles
  • Contact

GrN.dk — AI automation, web platforms, web optimization, data handling and logistics.

© 2026 GrN.dk · LinkedIn · Contact · AI automation in Danish: nowa.dk

Behind GrN.dk: Individual Entrepreneur Codecrafter · Tax ID 305669096 · Bakhtrioni St. 22, 0194 Tbilisi, Georgia · official business register