Skip to main content
mySites.guru

Active Joomla Extension security alerts: SP Page Builder RCEJCE 2.9.99.10Fabrik: unauth RCEPhoca Cart: unauth SQLi

Another 23 Critical Security Vulnerabilities in Gridbox for Joomla

Another 23 Critical Security Vulnerabilities in Gridbox for Joomla

Gridbox is a widely used drag-and-drop page builder for Joomla, built by Balbooa. On the sites we can see it running, it is usually the thing the whole front end depends on.

Last week we disclosed a critical authentication bypass in Gridbox, CVE-2026-61425, fixed in 2.20.1. Balbooa’s response to that was to ask us to look harder: they invited a full security review of the component. We did it. The findings were worse than any of us expected.

Twenty-three distinct vulnerabilities in one Joomla extension, including a pre-authentication remote code execution reachable in a single HTTP request. It took Balbooa three attempts to close them all, and the complete fix is now out as Gridbox 2.20.2. It shipped into a live incident: several of these flaws are being exploited in the wild right now, which we have watched happen in server logs and on already-compromised sites, and which the Joomla Security Strike Team has confirmed. If you run Gridbox, update to 2.20.2 today and check the site for compromise.

The honest verdict

In twenty years of taking apart Joomla extensions, I have not seen one this badly secured. Not close.

A single component that hands an anonymous visitor code execution, administrator access, and the entire user table's password hashes, by more than one route each.

We are withholding every endpoint, parameter and proof-of-concept in this post. These issues are being exploited right now, and while the fix is public as Gridbox 2.20.2, plenty of sites are still unpatched. This is how we handle every vulnerability we find: fix first, publish second, and never hand attackers a recipe. What follows is the shape of the problem and what you need to do.

TL;DR

  • Balbooa asked us to audit Gridbox after our earlier disclosure. We audited 2.20.2 and found 22 vulnerabilities in the one component, and a 23rd surfaced days later as the attacks started
  • The headline is a pre-authentication remote code execution: one HTTP request, no account, no session, no token, and a working PHP file is written into a web-reachable folder
  • There are two more routes to code execution, more ways to become an administrator with no password, and several unauthenticated SQL injection points, one of which returns every user’s password hash
  • Balbooa’s first fix builds did not close everything. We re-tested each one, and several findings were still live, including an anonymous SQL injection they believed was closed. It took three builds to get it right, now shipped as Gridbox 2.20.2
  • Several issues are being actively exploited in the wild. We have seen the attempts in server logs and connected sites with planted administrator accounts, and the Joomla Security Strike Team confirmed at least three. One is a brand-new privilege escalation: any public registrant can create an administrator account
  • The Joomla CNA assigned eleven CVEs, grouped by root cause, and all eleven have now published. Seven are Critical, topping out at 10.0, and four carry the exploit maturity Attacked, which is the CVE record officially recording that these are being used against real sites
  • If you run Gridbox on any Joomla site, treat it as at risk now, update to Gridbox 2.20.2 immediately, and check for compromise
  • This is, plainly, the worst-secured Joomla extension we have ever audited

Balbooa asked us to look

It is only fair to tell this in order, because Balbooa did the right thing at the start.

After our Balbooa Forms disclosure earlier in July, they came back to us unprompted, said it had prompted them to review their other products, and invited us to test Gridbox. That first look turned up the authentication bypass fixed in 2.20.1. Rather than stop there, Balbooa asked us to carry out a comprehensive audit of the whole component. We agreed, and we ran it against Gridbox 2.20.2.

Inviting an outside party to break your code is a good instinct, and a rare one. We want to say that clearly, because everything after it is hard reading.

For context, these are the two Balbooa flaws we had already found and disclosed before this audit, both fixed:

Date fixedProductVulnerabilityCVESeverityFixed in
9 Jul 2026Balbooa Forms (com_baforms)Unauthenticated file upload leading to remote code executionCVE-2026-56291Critical2.4.1
20 Jul 2026Gridbox (com_gridbox)Unauthenticated authentication bypass to Super UserCVE-2026-61425Critical, CVSS 4.0 10.02.20.1

The Balbooa Forms flaw came to us through a hosting abuse report on a live customer site and was being exploited before the fix shipped. The Gridbox authentication bypass was in the very build Balbooa sent us as hardened. This audit is the third chapter, and by some distance the worst of the three.

Before you count the 23, there was already a 10.0

Ten days earlier, Gridbox already had a critical of its own: CVE-2026-61425, an authentication bypass we scored at CVSS 4.0 10.0, the maximum there is. One cookie, gridbox_username=admin, and a visitor was logged in as the site’s administrator with no password and no login. Balbooa shipped 2.20.1 on 20 July to close it. That release is the one that prompted the full audit, and the full audit is where the 23 came from.

So the tally for a single page builder, inside about three weeks, reads like this: a 10.0 authentication bypass fixed in 2.20.1, then twenty-three more fixed across three builds up to 2.20.2, and before either of them a critical unauthenticated file upload in the same vendor’s Balbooa Forms (CVE-2026-56291, fixed in 2.4.1). Every one of those shipped as a “security release.” Each fix was real. The uncomfortable part is how many of them there have had to be, and how often the first attempt did not finish the job.

That is the pattern to hold onto if you run Gridbox. The version you were on was almost always the fixed one, right up until the next release showed it was not. 2.20.2 is where the 23 are finally closed. Get onto it.

What a full audit of one extension turned up

We do not publish exploit detail before a fix is out, so this is deliberately the shape of the findings rather than the mechanics.

One request to code execution. The worst finding is an unauthenticated arbitrary file upload. No account, no session, no token, no chain. A single well-formed request writes a file the attacker controls into a folder the web server will run. That is a PHP shell on the server, and from there the site and usually the whole hosting account are gone. Balbooa already ship a safe upload helper elsewhere in the same codebase. This path never calls it.

And it is not the only route. There are two further ways to reach code execution, and more than one way to be treated as the site administrator without ever knowing a password. Several endpoints accept unauthenticated SQL injection, and one of them returns the contents of the query in the response, which means an anonymous visitor can read every username and password hash out of the database in a single request. There is unauthenticated file reading that escapes the web root, unauthenticated recursive directory deletion, and anonymous tampering with other people’s content.

The pattern is the point. These are not one author’s bad day. The same class of mistake, trusting a value from the request, recurs across unrelated files written by different people. That points at a missing security standard rather than a handful of isolated slips, which is why we told Balbooa this needs a coordinated security release and not another point patch.

Credit where it is due. One part of the component is well built: the payment callback verification. Most of the gateway integrations properly verify a signature against a merchant secret or re-check the transaction server-side, and order totals are recomputed rather than trusted from the request. Whoever wrote that knew exactly what they were doing. It makes the state of the rest harder to explain, not easier.

The “fixed” build was not fixed

Balbooa sent us a build they described as fixing everything we reported, and asked us to confirm it before they published it. We re-tested every finding against the actual code.

Most were closed, and the release is a real structural rewrite in places rather than a set of sticking plasters. But several findings were still live in the build they proposed to ship. The one that matters most: an anonymous SQL injection that returns password hashes, which they believed they had fixed. They had moved the guard onto one entry point and left the identical flaw reachable through its siblings. We proved it still worked, with no login and no token, and reported that back the same evening.

An authentication fix, or an injection fix, is exactly the kind of change that can be almost right. This is the entire reason a reporter asks to verify a patch before it ships. We asked, we verified, and it was not there yet.

To their credit, Balbooa turned a second build around within a day. It closes the anonymous injection we had just proved, the registration flaw that was being exploited, and the other actively-exploited routes with it. On the things that mattered most, they moved fast, and it shows.

That second build still was not the finished release. Two problems remained in it: a payment callback that could be forged on sites configured a common way, and a SQL injection a logged-in low-privilege user could still reach. We reported both back and asked for one coordinated release that closed everything rather than another partial build.

Balbooa delivered it. The complete fix is Gridbox 2.20.2, released 29 July. It closes the payment bypass and the last injection along with everything else we reported. Three builds is more than anyone wants a security fix to take, but every finding we reported is closed in 2.20.2, and that is the version to be on. Anything on 2.20.1 or earlier is still exposed.

Now it is being exploited

This stopped being a disclosure story and became an incident while Balbooa was still finalising the fix.

The Joomla Security Strike Team reported that at least three Gridbox issues are being actively exploited in the wild and urged Balbooa to publish a fix as soon as possible. Two of the three are flaws we had already reported, one of which was in the “fixed” build. The third is new, and it is nasty in its simplicity: the registration handler adds the default group to whatever groups the visitor asks for, instead of replacing them. So anyone can register a normal account and place themselves straight into an administrator group. No exploit skill required, just a crafted sign-up.

We are not taking anyone’s word for this, our own included. We have the server access logs showing the exploitation requests arriving, and connected sites where the accounts are already planted. On one connected Joomla site our rogue admin check is holding 92 planted accounts right now, every one stamped by the same generator: the username xtw18387 plus four hex characters, with a matching xtw18387+<hex>@outlook.com address. They arrive in batches minutes apart. On this site the run started on 27 July, two days before the Strike Team’s warning.

The mySites.guru rogue accounts tool on a compromised Joomla site, listing 92 accounts with generated usernames like xtw18387561f and matching xtw18387+561f@outlook.com addresses, all registered within hours of each other on 27 July 2026, each flagged as carrying the username shape of a known mass-compromise campaign

Look at the flag on each row: not currently a Super User. The escalation does not always take, and the accounts that fail sit in the default registration group looking like ordinary sign-ups. They are still the attacker’s, and they are still a way back in. If you have ever waved past a run of odd registrations because none of them were administrators, this is what that looks like.

Find planted admin accounts across every Joomla site you manage

This is exactly what our Rogue Admin check is built for. It sweeps every connected Joomla site for accounts sitting in any administrator group, not just Super Users, so the sign-ups that quietly escalated show up next to the ones that failed and stayed in the registration group. You can review and delete them across all your sites from one screen.

Open the Rogue Admin check

Active exploitation changes the maths for everyone running Gridbox. The fix being out does not make you safe, applying it does. Assume attackers have already tried this on your site, update to 2.20.2, and check whether they got in before you did.

Why this is the worst we have seen

We audit Joomla extensions constantly, and we have written up a lot of serious flaws this year alone. Most extensions with a bad bug have one bad bug. What sets Gridbox apart is not any single finding, bad as the pre-auth RCE is. It is that nearly every category of critical web vulnerability is present in the same component at once, that more than one of them needs no authentication at all, that the vendor’s own fix left several live, and that it is now being exploited before a complete fix is public.

In two decades of this work, that combination is unique in my experience. I do not say that for effect. I say it because if you run Gridbox, you should act as if your site is a target today.

What you should do right now

Treat every Gridbox site as at risk now

Several of these flaws are being actively exploited and need no login. There is no configuration or firewall rule that makes an unauthenticated code-execution request safe.

Update every Gridbox site to 2.20.2 now, and check any affected site for compromise.

  1. Update Gridbox to 2.20.2 now. Joomla’s Extensions updater will offer it, or download it from your Balbooa account. Balbooa’s own notes are on their Gridbox security release page.
  2. Take a backup first, as with any extension update on a production site. If you use mySites.guru, trigger a snapshot so you have a clean point to return to.
  3. Check for compromise now, on any site that has been running Gridbox. Look for administrator accounts you did not create, and use our Rogue Admin check to find them in any group across every connected site at once. The pre-auth RCE writes a PHP shell into a web-reachable folder, which is exactly what our Suspect Content tool is built to surface: it matches a file’s contents against more than 1,500 patterns taken from real hacks, not just known-bad hashes. Our guides to finding hacked files and backdoors and fixing a hacked Joomla site walk through the whole triage.
  4. Rotate credentials and treat the Joomla secret as exposed on any busy site that has been reachable while running an affected version. Anyone who got in will have left themselves a way back, so do not assume a single clean file scan means they are gone, check every crontab, not just yours, and watch for reinfection.
  5. Consider disabling Gridbox on any high-value site you cannot patch immediately, if the design can tolerate it, until the fixed release is installed.

How do I find every Gridbox site I manage?

The awkward question after any extension flaw is which of your sites actually run the thing. Past about ten sites, logging into each Joomla admin to read the extensions list stops being realistic, which is exactly how old versions survive.

mySites.guru keeps a live inventory of every extension, template and framework on every Joomla and WordPress site in your account. Search for Gridbox once and get back every connected site running it, the version each one is on, and whether an update is available. Across the Joomla sites we manage, several hundred run Gridbox, which is a lot of sites to reach one at a time while a flaw is being exploited.

View every Gridbox install across your sites

Open your Extension Inventory

Search for Gridbox across every connected Joomla site and find anything on an affected version. Not a subscriber? Sign up free and connect your sites.

We have added the affected range, every version below 2.20.2, to our vulnerability database, so every connected site still on a vulnerable version of Gridbox is flagged automatically, and the mass updater pushes the update to all of them from one screen.

Stay ahead of the next one

There will be another one. Joomla runs on thousands of third-party extensions, and the ones that accept anonymous input keep producing findings like this. The hard part was never the update. It is knowing a fix exists at all, then knowing which of your sites are affected and getting to them first, before someone else does.

Get free email alerts when a Joomla extension flaw breaks

We email a plain-English alert the moment a serious flaw like this one is disclosed, with the affected versions and what to do. No charge, unsubscribe any time.

Subscribe to security alerts

Want the alerts and the tooling to act on them? Start with a free audit on one site and see your full extension inventory, or sign up for mySites.guru to get vulnerability alerts and one-click updates across every site you manage.

The 23 vulnerabilities in full

Here is the complete set, described by class and impact rather than by exploit detail. Thirteen of these were proved live against a test install; the rest were read in the source during the audit. “Access required” is what an attacker needs before they can use it, and “None (anonymous)” means no account and no login at all.

#VulnerabilityClassAccess required
1File upload written into a web-reachable folder, in one requestRemote code executionNone (anonymous)
2SQL injection that returns every user’s password hash in the responseSQL injectionNone (anonymous)
3Password reset of any accountAccount takeoverNone (anonymous)
4Login as any user, including an administratorAuthentication bypassNone (anonymous)
5File upload with no extension checkRemote code executionAuthor
6Arbitrary file write (the vendor’s earlier fix was incomplete)Remote code executionEditor
7Administrator password hash exposed through a client-readable cookieCredential disclosureAny XSS or log access
8Recursive directory deletionDestructive file operationNone (anonymous)
9Arbitrary file read that escapes the web rootInformation disclosureNone (anonymous)
10A second unauthenticated SQL injectionSQL injectionNone (anonymous)
11Forging ownership of other users’ comments and reviewsData tamperingNone (anonymous)
12Full server filesystem enumerationInformation disclosureNone (anonymous)
13Path and exception information disclosureInformation disclosureNone (anonymous)
14Five further SQL injection pointsSQL injectionNone (anonymous)
15Arbitrary font and file uploadRemote code executionEditor
16Arbitrary extension installationRemote code executionBackend user
17Arbitrary file read and deleteInformation disclosure / destructiveBackend user
18Forgeable payment signature with no shared secret requiredPayment bypassNone (anonymous)
19Payment transaction not bound to the orderPayment bypassNone (anonymous)
20TLS certificate verification disabled on gateway callsTransport securityNetwork position
21Stored cross-site scripting via a comment avatarCross-site scriptingNone (anonymous)
22No CSRF protection anywhere in the administrator areaCross-site request forgeryTricking a logged-in admin
23Registration that puts the visitor in whatever group they ask for, including an administrator groupPrivilege escalationNone (anonymous)

Number 23 is not from the audit. It surfaced alongside the active exploitation: the sign-up form hands out whatever group a visitor asks for, administrator included. That one, the arbitrary file read (9), and the arbitrary file write (6) are the three the Joomla Security Strike Team reports are being exploited right now.

The CVE assignments

The Joomla CNA has now assigned CVE IDs for this set. It has grouped them by shared root cause rather than issuing one per finding, on the reasoning that most of these are the same systemic gap repeating: no access control on the task, no CSRF token, no check on what the request is asking the component to do. So the CVE count is lower than the count of vulnerabilities, and one ID can cover several rows of the table above.

All eleven records have now published. Every one lists the affected range as 1.0.0 to 2.20.1, which is every Gridbox release there has ever been up to the fix, and four carry the exploit maturity Attacked with an urgency of Red, the CVE record’s own way of saying this is being used against real sites rather than sitting as a theoretical risk. That is independent corroboration of what we were seeing in the logs.

CVEWhat the record coversCVSSCWE
CVE-2026-65884Registration accepts the user’s own group IDs, so an anonymous visitor can sign up with administrator permissions. Number 23 above, the one being exploited in the wild10.0 Critical (4.0), AttackedCWE-284 Improper Access Control
CVE-2026-65887The password reset method resets any account’s password and lets the attacker log in as that user, Super Users excepted. Number 3 above10.0 Critical (4.0), AttackedCWE-284 Improper Access Control
CVE-2026-65888The social login method logs the caller in as any user on the site. Number 4 above10.0 Critical (4.0), AttackedCWE-284 Improper Access Control
CVE-2026-65885Authenticated arbitrary file upload. The record notes it becomes remote code execution when chained with CVE-2026-65884, because the account it needs is one the attacker can create for themselves9.4 Critical (4.0), AttackedCWE-434 Unrestricted Upload of File with Dangerous Type
CVE-2026-65886The photo viewer reads arbitrary files with no authentication. Number 9 above9.2 Critical (4.0)CWE-22 Path Traversal
CVE-2026-65889An unauthenticated method recursively deletes directories. Number 8 above9.2 Critical (4.0)CWE-22 Path Traversal
CVE-2026-65890Multiple unauthenticated SQL injection vectors. Numbers 2, 10 and 14 above9.2 Critical (4.0)CWE-89 SQL Injection
CVE-2026-65947Various CSRF vectors in the administrator interface. Number 22 above7.3 High (3.1)CWE-352 Cross-Site Request Forgery
CVE-2026-66490Stored cross-site scripting via a comment avatar. Number 21 above6.1 Medium (3.1)CWE-79 Cross-site Scripting
CVE-2026-66488Payment bypass. Numbers 18 and 19 above5.3 Medium (3.1)CWE-285 Improper Authorization
CVE-2026-66489Various unauthenticated file system disclosure. Numbers 12 and 13 above5.3 Medium (3.1)CWE-200 Information Exposure

Two caveats on that table. The pointers back to the numbered list are our reading of each record’s wording rather than the CNA’s: the IDs were grouped by root cause and no official mapping was published, so one ID can cover several rows. And the seven Critical records are scored on CVSS 4.0 while the other four use CVSS 3.1, so that column is not directly comparable down its whole length.

No published record separately describes the unauthenticated file upload at number 1, the finding we scored 10.0 ourselves. CVE-2026-65885 covers file upload but says authenticated. Given the grouping, number 1 may sit inside 65885; the records do not say either way.

Since publication: two more Gridbox releases

Balbooa has shipped twice more since 2.20.2, and we were involved in neither.

2.20.2.2 (3 August 2026) turns Store customer registration off by default, after bots found the registration endpoint and created spam accounts on sites that were not using the Store at all. Balbooa’s note states explicitly that it “does not address a security vulnerability”.

2.20.2.3 (10 August 2026) is titled “Bug Fixes and Security Hardening” and lists four areas: authorization, request handling and access controls in the media manager; path validation for internal file and directory operations; password recovery flows and token validation; and unspecified additional safeguards in internal components. There is no CVE, no severity, no affected version range, and no statement of whether any of it can be reached without a login.

We did not find or report these and we have not audited 2.20.2.3, so we cannot tell you how serious they are. Three of the four areas cover the same ground as CVE-2026-65885, CVE-2026-66489 and CVE-2026-65887, all recorded as fixed back in 2.20.2. That may be ordinary hardening on code that had just been rewritten at speed, or it may mean the July fixes needed more work, as happened with PageBuilder CK. Balbooa has not said, so treat it as unknown rather than as a new disclosure.

Update to 2.20.2.3. Anything below 2.20.2 is still exposed to the actively exploited set above, and that remains the urgent one.

Disclosure and Severity

10.0 CVSS 4.0

Critical The Joomla CNA's score for CVE-2026-65884, and our own for the pre-auth RCE

The published CVE record for the registration privilege escalation is scored 10.0 with the exploit maturity set to Attacked. We independently scored the worst of the twenty-three, an unauthenticated arbitrary file upload, at the same 10.0: exploitable over the internet in a single request, with no account and no user interaction, yielding remote code execution. Several other findings need no login either, and the Joomla Security Strike Team reports at least three are being actively exploited.

No login needed Single request Remote code execution Actively exploited No firewall mitigation
FieldDetail
ExtensionGridbox for Joomla (com_gridbox)
VendorBalbooa (balbooa.com)
Findings23: 22 from the audit, plus a 23rd privilege escalation surfaced by the active exploitation
Headline typeUnauthenticated file upload leading to remote code execution (CWE-434), alongside SQL injection (CWE-89) and authentication bypass (CWE-287)
CVSSJoomla CNA scores range from 10.0 (Critical) down to 5.3 (Medium). Three records sit at 10.0: CVE-2026-65884, CVE-2026-65887 and CVE-2026-65888. The seven Critical records use CVSS 4.0, the other four CVSS 3.1. We separately scored the headline pre-auth RCE at 10.0
CVEEleven IDs assigned by the Joomla CNA and grouped by shared root cause, all now published: CVE-2026-65884 to CVE-2026-65890, CVE-2026-65947, and CVE-2026-66488 to CVE-2026-66490. The earlier authentication bypass is CVE-2026-61425
ImpactUnauthenticated remote code execution, administrator takeover, and disclosure of every user’s password hash
Active exploitationObserved by mySites.guru in server access logs and on compromised sites, reported by the Joomla Security Strike Team on 29 July 2026 (at least three issues), and recorded in four of the eleven CVE records as exploit maturity Attacked with an urgency of Red
Audited inGridbox 2.20.2
Affected versionsEvery version below 2.20.2. The CVE records state the range as 1.0.0 to 2.20.1
Fixed inGridbox 2.20.2, see Balbooa’s security release announcement. Balbooa has since shipped 2.20.2.2 and 2.20.2.3, which is the current version to be on
FinderPhil Taylor, mySites.guru. The published CVE records credit Phil Taylor and Pascal Lohmann

Further Reading

Frequently Asked Questions

How many vulnerabilities were found in Gridbox?
Twenty-three, all in a single component. Twenty-two came out of the full security audit of Gridbox 2.20.2 that Balbooa asked us to carry out, and a twenty-third, a registration flaw that lets any visitor sign themselves into an administrator group, surfaced when the attacks started. They include a pre-authentication remote code execution reachable in one HTTP request, two more routes to code execution, more ways to become the site administrator without a password, and several unauthenticated SQL injection points, one of which returns every user's password hash. Several are being actively exploited in the wild: we have seen the attempts in server access logs and connected Joomla sites where attackers had already planted administrator accounts, and the Joomla Security Strike Team reported at least three under active exploitation. The complete fix is Gridbox 2.20.2.
Is Gridbox being actively exploited?
Yes. We have direct evidence of it: exploitation attempts in server access logs and connected Joomla sites where attackers had already planted administrator accounts. The Joomla Security Strike Team has also reported that at least three Gridbox issues are being actively exploited, including a privilege escalation that lets any public registrant create an administrator account. The complete fix is Gridbox 2.20.2. Update every Gridbox site to it now and check for compromise.
Which CVEs cover the Gridbox vulnerabilities?
The Joomla CNA assigned eleven CVE IDs for this set, grouped by shared root cause rather than one per finding, so there are fewer CVEs than vulnerabilities. All eleven have now published: CVE-2026-65884 through CVE-2026-65890, CVE-2026-65947, and CVE-2026-66488 through CVE-2026-66490. Seven are Critical. Four carry the exploit maturity Attacked, the CVE record's own marker that exploitation is already underway: the registration privilege escalation (CVE-2026-65884, 10.0), the arbitrary password reset (CVE-2026-65887, 10.0), the social login account takeover (CVE-2026-65888, 10.0) and the authenticated file upload (CVE-2026-65885, 9.4). Every record lists versions 1.0.0 to 2.20.1 as affected. The earlier Gridbox authentication bypass is CVE-2026-61425, fixed in 2.20.1.
What should I do if I run Gridbox?
Update Gridbox to 2.20.2 immediately, then check any site that has been running an affected version for signs of compromise: administrator accounts you did not create, PHP files in upload folders, recently modified files, and logins you cannot account for. mySites.guru flags every connected site running an affected version, finds rogue admin accounts across all of them from one screen, and lets you update them all at once.

What our users say

Stefan Lewitas
Stefan LewitasWebkeeper
★★★★★

Saves me hours and hours of work when administrating my clients sites. And the cherry on top are the safety features and monitoring so I can focus on creating even more and better sites.

Read more reviews
Tim Heeley
Tim HeeleyWebAdmin
★★★★★

Comprehensive, innovative and a lifeline for anyone building and managing websites. The speed at which he acted with the JCE hack illustrates Phil's vigilance and speedy approach to developing security tools in real time.

Read more reviews

Read all 267 reviews →

Ready to Take Control?

Start with a free site audit. No credit card required.

Get Your Free Site Audit