Latest
He Banned AI From His Writing Group. His Own Cover Got Called AI Slop.Who Writes the Fake Fan Mail Authors Get? Inside the Scam CompoundsSMS Appointment RemindersDarrell Stern: Stop Being Invisible, Become UnmissableJoe Rockey: Ghostwriting His BookFree BooksHow to Turn Your Expertise Into a Book People Want to Read | The Expert MethodWhat’s New at The Writing King: Week of October 25, 2026Challenger Remembrance Day: The Engineer Who Wouldn’t SignJoel Salomon: The Truth About MoneyReddit Is Putting Up a Login Wall. Wikipedia Won’t Be Far Behind.Victoria Chemko: The Body Is the First TechnologySir Patrick Stewart: A TributeA Year in the Bank: ADHD, Face Blindness and the Freedom to Walk Out | The Impossible Puzzles Show, Episode 326A Yale Economist Says We Won’t Be Missed. He Forgot the Bread Line.Walter Koenig: A TributeI Don’t Post Bad ARC Reviews. I Send the Author a Note.AI Has Paid Off Outside Tech. Apollo Is Reading the Wrong Scoreboard.The Little Red Book of Stuff That Works!Your Kids Are Your Own FaultGrow a PairYou’re Broke Because You Want to BeIt’s Called Work for a Reason!No Time for TactShut Up, Stop Whining, and Get a LifeWilliam Bessette: AI Enablement and Child Welfare TechnologyFree Book Planning ToolsWhat’s New at The Writing King: Week of October 18, 2026Ghostwriting by the Numbers: Timelines, Word Counts and the First CallPromising Young Woman (2020) ReviewBillions for AI, Pennies for the Plumbing: AI Companies Should Pay to Keep PHP AlivePHP2Shell: AI Found a 22-Year-Old Crack Under Your Website in Two DaysPetrov Day: The Officer Who Didn’t Believe the ComputerKindle Unlimited Is Now Kindle+. AI Audiobooks Just Joined the BuffetChina Is Using Bots to Fan the Data Center Backlash. The Backlash Is Still Real.The Society of Authors Signed an Ethical AI Charter, Then Ran From It in Eight DaysWhen to Quit Writing a Book: I’ve Abandoned Dozens, and I’d Do It AgainMo Gawdat Says the AI Dystopia Starts in 2027. Read the List, Skip the DatesGetty Images Filed for Bankruptcy. Can You Prove You Licensed Your Book’s Images?Fluff Words: Cut Them From Your Prose, Keep Them in Your DialogueWhere Can Writers Learn Storytelling From Movies? Richard Lowe Publishes 1,226 Film and TV Reviews With Writing Craft NotesWhere Are the Independent Bookstores and Public Libraries Worth Visiting in Tampa Bay? Author Richard Lowe Profiles 44 of ThemWhat Should You Know Before Hiring a Ghostwriter? The Writing King Publishes 57 New Answers, Including What to Do When It Goes WrongWhere Can You Hear Founders and Executives Tell Their Own Stories? Richard Lowe’s Leaders and Their Stories Publishes Every Unscripted Interview With a Full TranscriptAuthor Richard Lowe Publishes Eight Volumes of Enemies of You, a Researched Series on the Forces Working Against Ordinary AmericansThe Jackal (1997) ReviewThe Day of the Jackal (2024) ReviewYour First Novel Is an Apprentice Piece: What Beta Readers and Editors Can’t FixWhen the Cloud Gets Bombed: What the AWS Data Center Strikes Teach About BackupsHuman-Written Book Labels Are Gatekeeping With a Fee

The Morning I Found a Plugin I Never Installed

TL;DR: Malware landed on my site through a plugin update I trusted, and the scanner killed it in a minute. The scare was never the payload; it was realizing my update channels were a door I had left unlocked for years. That morning turned into a full audit of every plugin, theme, and vendor my sites depend on. This article covers what the audit looked like and what it changed.

One morning I found malware on my website, delivered through a channel I trusted.

I told that story in full in My Own Site Got Hit: Anatomy of a WordPress Supply-Chain Attack, including the two days of forensics and the trail that ended at a plugin vendor’s catalog sold to an attacker.

The short version: my host’s scanner caught the payload the instant it landed, deleting it took a minute, and understanding how it arrived took two days. Total damage: zero. By the standards of website compromises, that’s the best possible outcome, and that’s why I can tell the story calmly.

The incident was over in two days. What it started took weeks, and it changed how I look at every piece of software on my sites.

From malware event to weeks of auditA timeline of the plugin malware incident and what followed. The host scanner caught the payload the instant it landed, deleting it took a minute, and tracing how it arrived took two days of forensics. The audit of every plugin, theme and vendor that the incident started took weeks.From malware event to weeks of auditInstantScanner catches payloadHost scanner flags it on landingOne minutePayload deletedDeleting it takes a minuteTwo daysForensicsTrail ends at a sold plugin catalogFollowing weeksFull auditEvery plugin and theme reviewed
From malware event to weeks of auditA timeline of the plugin malware incident and what followed. The host scanner caught the payload the instant it landed, deleting it took a minute, and tracing how it arrived took two days of forensics. The audit of every plugin, theme and vendor that the incident started took weeks.From malware event to weeks of auditInstantScanner catches payloadHost scanner flags it on landingOne minutePayload deletedDeleting it takes a minuteTwo daysForensicsTrail ends at a sold plugin catalogFollowing weeksFull auditEvery plugin and theme reviewed

The incident itself took minutes to stop and days to trace; the audit it started took weeks.

What was scary about finding a plugin nobody installed?

The malware itself wasn’t the frightening part. Malware is weather. If you run anything on the public internet, attacks arrive constantly, automatically, indifferently. My logs show thousands of probes a day, and yours do too, whether you look or not.

The frightening part came later, staring at that folder, when I asked the obvious question: how many ways could something like this get in?

I’ve spent 33 years in technology, a good chunk of it responsible for keeping large systems running, so I made a list. It was a long list. The theme I was running, built by people I’d never met, updated on their schedule. Dozens of plugins, each one a channel that pushes code onto my server whenever its author publishes an update. The page builder with its own crowd of addons.

The theme I was running, built by people I had never met, updated on their schedule.
Share on X

Every one of these is a trusted delivery pipeline into my website, and I didn’t choose most of the people I was trusting.

That’s what the security industry calls the supply chain, and once you see it, you can’t unsee it. I’d locked my front door carefully. Meanwhile, forty vendors held keys to the back.

Every one of these is a trusted delivery pipeline into my website, and I didn’t choose most of the people I was trusting.

Run the same inventory on your own site and the list gets uncomfortable fast. Your theme updates when its author says so. Every plugin updates when its author says so. Your page builder. Your forms tool. Your SEO plugin. Your gallery. Each one is a standing arrangement in which code you’ve never read arrives on your server and runs with full permissions.

Any one of those authors could get compromised. Or sell the plugin to someone with worse intentions. Or abandon it to whoever claims the name later. Each of those converts a trusted channel into a delivery vehicle. None of that requires anyone to attack you. You’re just downstream.

That arrangement is worse than any attacker. Plugins change hands, and the thousands of sites running them usually hear nothing about it. The site owner carries all the risk of a sale they never agreed to and never heard about, and the marketplaces act as though that’s the owner’s problem.

Why does a hidden plugin matter more than lost traffic?

This is what made it personal for me. I’m a service provider. My website has a different job from a store shoveling widgets, where traffic volume is everything.

It’s my beacon on the internet. It’s where I live professionally. The people who matter don’t arrive by the thousands. They arrive a few at a time, having heard my name somewhere, deciding whether to trust me with a significant project.

For a business like that, the website has to be excellent for the person standing in front of it: fast, credible, professional, and above all trustworthy. I’ve written elsewhere about why the website matters more in the AI era, and about what building on WordPress involves once the brochure promises wear off. Now imagine that person arrives the week my site is serving spam pharmacy links from a hidden injection, or redirecting to a scam, or simply gone while I rebuild it.

Everyone understands ordinary downtime. A major cloud provider hiccups and half the internet disappears for an afternoon; visitors shrug and come back tomorrow. Outages are weather too, and people forgive weather. A compromise is different in kind, because a compromised site doesn’t just go dark. It impersonates you. It uses your name and your reputation to serve someone else’s garbage to the exact people you most needed to impress. People forgive downtime. They remember impersonation.

How do you audit WordPress plugins after a scare?

So I went down the rabbit hole, and I went down it properly.

Over the following weeks I opened up everything running on my sites and asked each piece the same questions. What do you do? Who maintains you? What happens on my server when your author publishes an update? What would it cost me to remove you?

The answers were educational, and some of them were ugly.

I found a commercial theme that turned out to be an assembly of mismatched parts, shipping code to every visitor for features no page on my site ever used. I found a page builder whose assumptions had wrapped themselves around dozens of my pages, so deeply that leaving it meant rebuilding every page that touched it. I found plugins that did the one thing I wanted plus fifteen things I didn’t, all of it loading on every request.

I found excellent software maintained by exactly one person, and thought hard about what happens to my business the day that one person stops.

The process itself was mundane, so anyone can do a version of it. For each piece of software I asked who publishes it, when it was last updated, how its support threads read, and what its changelog says about momentum.

Ten minutes per plugin, no code reading required. The pattern that emerged surprised me: the risk wasn’t concentrated in obscure plugins from unknown authors.

Some of the heaviest, most tangled, most difficult-to-remove software on my sites came from the biggest names in WordPress, installed years ago because everyone else used them too. Popularity had stood in for evaluation, and popularity only measures marketing. None of those discoveries were the breach. The breach was an event, handled in an afternoon. The audit revealed conditions, and conditions are what determine whether the next event is an afternoon or a catastrophe.

Questions to ask of every plugin and theme you run
Question What the answer can reveal
What do you do? One wanted feature plus fifteen unwanted ones, loading on every request
Who maintains you? Excellent software resting on exactly one person
What happens when your author publishes an update? Code you’ve never read arrives and runs with full permissions
When were you last updated, and what does the changelog say? Whether the project still has momentum
How do your support threads read? Whether questions get answered, and by whom
What would it cost to remove you? Software so embedded that leaving means rebuilding pages

What this series covers

That audit became this series of articles. Each one takes a piece of what I found and turns it into something you can act on without being a developer:

Why so many commercial themes are Frankenstein monsters of repackaged parts, and how to evaluate a theme by what it does instead of what it includes.

Why page builders are the hardest relationship to leave, and what it took to get out of two of them. How to put your plugin stack on a diet without losing capability. Why the number of people maintaining your software matters as much as the software itself.

How the supply chain delivers attacks through the very update mechanisms you depend on, in hardware as well as software, since these days even a cable can carry a hostile computer inside it. And finally, why security is a posture you hold every day.

My take

Popularity stood in for evaluation on my sites for years. That habit was the bigger problem. The malware died in a minute. The conditions that let it in took weeks to find. Audit every plugin and theme you run. Ask who maintains it, when it last updated, how its support threads read and what it would cost to remove. Ten minutes per plugin, no code required. Do it before your next event turns into a catastrophe.

The takeaway before the series

Take one thing away: your website’s biggest risks arrive through channels you invited. The updates, themes, plugins, and tools you trusted enough to install are how most of this gets in, and an attacker forcing the front door is the rarer case. A modern website is built entirely of other people’s work, mine included, so you can’t stop trusting. Trust deliberately. Skipping ten minutes of checking per plugin is a gamble with a reputation that took years to build, and I won’t take that bet on my own sites.

Know what’s running, know who maintains it, know what it would cost to remove, and keep something watching for the day one of those trusted channels betrays you. And keep real backups, because every other defense can fail and that one still saves you. If you’d rather have someone who has been through this handle it, that is work I do.

I got the easy version of the lesson. The folder appeared, the scanners caught it, and the worst consequence was a series of articles. The next site owner may not get the easy version. The rest of this series is about making sure that when your turn comes, and on a long enough timeline it comes for everyone, your story is as boring as mine.

From the author
Family Cybersecurity by Richard Lowe

Family Cybersecurity
One trusted update was all it took. Family Cybersecurity is my book on protecting the people who live in your house, and it starts with a ransomware call in the middle of the night.

Frequently Asked Questions

How does malware get onto a WordPress site through a plugin?
Attackers compromise the vendor’s side of the update channel: they buy or breach a plugin’s catalog listing, poison an update, and every site with that plugin installs the payload automatically. Your site installs it for them. That’s how it reached mine, through a plugin I’d trusted for years.
What should you audit after a WordPress malware scare?
Every update channel, because the infected file is only the first item on the list. List each plugin and theme, who maintains it, when it changed hands, and whether you still need it. The payload is the symptom; the channel it rode in on is the disease.
Can a malware scanner fully protect a WordPress site?
A scanner catches payloads after they land. That saved me a serious cleanup. What it can’t do is shrink the number of doors. Fewer plugins, fewer vendors, and fewer automated channels reduce what there is to scan for in the first place.
How do you know if a WordPress plugin vendor has been sold?
Mostly you don’t. Watch for changelog tone shifts, new ownership notices buried in release notes, and plugins that suddenly bundle unrelated features. A sale of the catalog is a sale of the road into your site.

About the Author
Richard Lowe, professional ghostwriter

Richard Lowe is a professional ghostwriter and author with 113+ books authored and 54+ ghostwritten. Before writing full time he spent 33 years in enterprise technology, including 20 years as Director of Computer Operations and Technical Services at Trader Joe's. He writes nonfiction, fiction and memoir, and works with executives and experts on books that build authority.

More about Richard Lowe →

Disclaimer

The views and opinions expressed in this blog post are solely those of Richard Lowe and are based on personal experience and research. This content is for informational purposes only and should not be construed as professional legal, financial, accounting, or business advice. Always consult with qualified professionals before making important business or legal decisions. Richard Lowe is not a lawyer, accountant, or licensed professional advisor, and this content does not establish any professional relationship.

0 comments

No comments yet. Yours can be the first.

Was this useful?

Leave a comment