When “fixed” isn’t fixed

A client’s e-commerce platform was compromised earlier this year through a known exploit class — the kind that quietly creates fraudulent orders in the background while the storefront looks completely normal. That’s what makes it dangerous. Nothing looks broken until you check the order queue.

The standard response to something like this is a clean reinstall: wipe the infection, restore from backup, get the site back online, move on. It works, in the narrow sense that the symptom goes away.

It also doesn’t ask the only question that actually matters: what let this happen in the first place?

Tracing it back

A clean reinstall puts the same vulnerable foundation back in place. If the thing that allowed the exploit to persist — in this case, a flawed permission model on the server itself — never gets corrected, the site is one scan away from the same compromise happening again, possibly through a different entry point next time.

So instead of a quick reinstall, we rebuilt the infrastructure from the ground up: a fresh server environment, a corrected permission model that closed the gap the exploit had been using, and hardened mail and access layers around it. Only once that foundation was solid did the platform itself go back up.

The difference root-cause work makes

This is the same principle behind every CIS engagement, whether the system in question is an ERP process, a QuickBooks environment, or a piece of infrastructure. Patching the symptom gets you back online. Fixing what let it happen is what keeps you there.

It’s slower than a clean reinstall. It’s also the difference between solving a problem once and solving it every few months in a slightly different shape.

If your team keeps re-fixing the same problem under a different name, that’s usually a sign the root cause was never actually addressed. We’d be glad to help you find it.