Skip to main content
mySites.guru
NewAdd every Joomla and WordPress site on a WHM or cPanel server in one goSee how it works

Nineteen and Counting: Joomla Extension Vulnerabilities We Found and Disclosed in a Month

Nineteen and Counting: Joomla Extension Vulnerabilities We Found and Disclosed in a Month

Between mid-June and late July 2026, mySites.guru found and responsibly disclosed nineteen separate security vulnerabilities across seventeen popular Joomla extensions. Most were critical, and seven are rated the maximum CVSS 4.0 score of 10.0 on their CVE records. Several were being exploited in the wild within hours of the fix going public. Every one was reported privately to the vendor first, and all nineteen now have a vendor fix out. If you want to know which of your sites run an affected extension, the Joomla vulnerability scanner checks them against these rules.

19 in that month
54 announcements

Updated 22 August 2026

When we published this, the number was twelve. It reached nineteen inside a fortnight, and the run went straight on through August. This update adds the full archive further down: all 54 security announcements on this blog, ours and other researchers’, newest first. The latest of them, five issues in JEM, has no stable fix yet. More are written and sitting on vendor timelines. The “and counting” was never a figure of speech.

Found, reported and fixed by mySites.guru

Every one of these was found, researched, privately disclosed, coordinated to a fixed release and written up by us, here at mySites.guru. We improve the Joomla ecosystem one report at a time. In the short term it is a headache for some Joomla admins, no question, but the whole ecosystem is in better shape for it. The people who run their sites through mySites.guru got the heads-up first wherever a coordinated timeline allowed, plus the exhaustive toolset to find and fix every affected site fast.

This is the roundup: what each flaw was, the version that fixes it, and the pattern connecting almost all of them. If you run Joomla, treat the table below as your update list. Further down there is now the full archive of every security announcement we have published, all 54 of them, which is the wider reading list.

A quick apology before you dive in: this post got waaay too long. We will be slicing it into shorter, single-point pieces in future posts, but we have a lot of information coming out soon and wanted to get it all down in one place first.

Why we went looking

This whole run started with an argument. A friend (Yes I have friends, despite what people think haha), in the aftermath of the JCE hack, put it to me that Joomla extensions were simply more secure than WordPress plugins. I told him that was the wrong conclusion: the gap is attention, not security.

The WordPress ecosystem pays people to find plugin bugs. There are bounty programs, Wordfence and others compensate researchers for reports, and there is even a black market that will buy a working plugin exploit. That money pulls a large, constant crowd of skilled eyes onto WordPress plugins. Joomla has almost none of that. The extensions are audited less because there is no reward for doing it, not because they are safer. The bugs sit there undiscovered, which reads as “secure” right up until someone bothers to look.

So I bothered to look.

Reading the actual source of the extensions our customers run, I was finding one to two critical or high-severity unauthenticated remote code execution flaws every single day, for over a week. Not obscure edge cases. Anonymous, upload-a-PHP-file-and-run-it flaws, in some of the most widely deployed extensions in the ecosystem.

The vulnerabilities were always there. The difference this month is that somebody was finally looking.

TL;DR

  • It started as an argument: a friend claimed Joomla extensions were more secure than WordPress plugins. They are not, no one looks because there is no bounty money in Joomla. So we looked
  • Looking turned up one to two critical or high unauthenticated RCE flaws every day for over a week
  • In about five weeks, mySites.guru found and responsibly disclosed nineteen Joomla extension vulnerabilities
  • Nine were file upload flaws leading to remote code execution or arbitrary file write, five were unauthenticated SQL injection, one an unauthenticated authentication bypass to Super User, one an unauthenticated write to stored XSS, one an unauthenticated file write and delete, one an unauthenticated order and payment forgery, and one a cross-customer order and invoice data leak
  • Seven scored CVSS 10.0 on their CVE records: PageBuilder CK, SP Page Builder, Balbooa Forms, RSFiles!, iCagenda, DJ-Classifieds and jDownloads. We rate Gridbox 10.0 as well, where its record says 9.4
  • All nineteen are now patched - get onto the fixed versions in the table now
  • Almost all shared one root cause: a public front-end endpoint that trusted anonymous input
  • mySites.guru flags every connected Joomla site still on a vulnerable version, automatically

Every vulnerability in this post was reported privately to its vendor first. We publish full detail after the patch, not before: all nineteen are now fixed, so you get the whole story, and while any was still in disclosure we described the risk but withheld the name and the exploit until its fix was out. The point is to get sites updated, never to give attackers a recipe.

The vulnerabilities we found in a single month

ExtensionFlawCVECVSSOur write-up
RSFiles!Unauthenticated upload to RCECVE-2026-5782710.0Read
Balbooa FormsUnauthenticated upload to RCECVE-2026-5629110.0Read
PageBuilder CKUnauthenticated upload to RCECVE-2026-5629010.0Read
SP Page BuilderUnauthenticated upload to RCECVE-2026-4890810.0Read
iCagendaUnauthenticated upload to RCECVE-2026-4893910.0Read
DJ-ClassifiedsUnauthenticated file uploadCVE-2026-6142410.0 (ours 8.8)Read
jDownloadsUnauthenticated file uploadCVE-2026-6190010.0 (ours 8.8)Read
GridboxUnauthenticated authentication bypass to Super UserCVE-2026-614259.4 (ours 10.0)Read
EasyStoreUnauthenticated SQL injectionCVE-2026-657619.3Read
EasyStoreCross-customer order and invoice disclosureCVE-2026-657609.2Read
AcyMailingUnauthenticated SQL injectionCVE-2026-562929.2 (ours 8.7)Read
Phoca DownloadAuthenticated upload to RCECVE-2026-578289.0Read
DPCalendarUnauthenticated SQL injectionCVE-2026-578318.7Read
EDocmanUnauthenticated SQL injectionCVE-2026-578328.7Read
Quix Page BuilderUnauthenticated SQL injectionCVE-2026-580788.7Read
EasyStoreUnauthenticated order and payment forgeryCVE-2026-657598.7Read
Helix3Unauthenticated file write and deleteCVE-2026-490497.5 (CISA, CVSS 3.1)Read
Helix UltimateUnauthenticated menu write to stored XSSnone assignedHigh (ours)Read
Events BookingUnauthenticated upload and user enumerationCVE-2026-600249.8 (CISA, CVSS 3.1; ours 6.9)Read

The table is ranked by the Joomla CNA’s CVSS 4.0 score from each published CVE record. Where our own assessment differs, it is in brackets: Gridbox scores higher with us because it needs no account at all, and DJ-Classifieds and jDownloads lower because on a default server they write a file rather than run one. The last three rows have no CNA score, so they sit at the foot, with CISA’s CVSS 3.1 rating shown where one exists.

Every row is now patched and named. The events and booking component that sat redacted here while its disclosure ran is public at last: it is Events Booking, fixed across 5.8.0 and 5.8.1. The three newest additions, all fixed the same week, are DJ-Classifieds (CVE-2026-61424), Gridbox (CVE-2026-61425) and jDownloads (CVE-2026-61900), which is what moved the count from thirteen to sixteen while this post was live, and the three EasyStore flaws (order forgery, SQL injection and a cross-customer invoice leak, CVE-2026-65759 to CVE-2026-65761) took it to nineteen. We found all of them ourselves bar jDownloads, which a mySites.guru subscriber brought to us and we confirmed, reproduced and coordinated to a fix.

None of these is a minor bug

The Joomla CNA scored sixteen of the nineteen between 8.7 and the maximum 10.0, and the lowest figure anyone has put on any of them is our own 6.9. These are the most dangerous classes of web vulnerability there are, not low-severity housekeeping issues: unauthenticated remote code execution, where an anonymous visitor runs their own code on your server, and unauthenticated full-database read, where an anonymous visitor walks off with every user account and password hash.

CISA put four of these on its must-patch-now list

When we say critical, we mean it, and now the U.S. government agrees.

Official seal of the U.S. Cybersecurity and Infrastructure Security Agency
The official seal of the U.S. Cybersecurity and Infrastructure Security Agency

In a single week, the U.S. Cybersecurity and Infrastructure Security Agency (CISA) added four of the vulnerabilities in this roundup to its Known Exploited Vulnerabilities catalog, the authoritative list of bugs CISA has confirmed are being exploited in the wild right now. A CVSS score is a severity opinion. A place on the KEV catalog is evidence: it means the attacks were observed happening, not theorised, and under Binding Operational Directive 26-04 every U.S. federal agency was legally ordered to patch each one within three days of it being listed.

CISA Known Exploited Vulnerabilities catalog

Two CISA alerts, five vulnerabilities between them. Four were ours.

Confirmed exploited in the wild. A three-day federal deadline to patch every one.

CVEExtensionAdded to CISA KEVFederal patch deadline
CVE-2026-56290PageBuilder CK7 July 202610 July 2026
CVE-2026-48908SP Page Builder7 July 202610 July 2026
CVE-2026-48939iCagenda10 July 202613 July 2026
CVE-2026-56291Balbooa Forms10 July 202613 July 2026

They came in two public alerts, both now permanent record. The “CISA Adds Three Known Exploited Vulnerabilities to Catalog” alert on 7 July was two of our Joomla findings plus one unrelated flaw. The “CISA Adds Two Known Exploited Vulnerabilities to Catalog” alert on 10 July was both ours.

CISA’s catalog lists the CVE, the vendor and the product. It does not print the name of the person who found the bug, so you will not see “mySites.guru” on a government web page. Our name is on the CVE records instead, which is exactly where the credit for finding and reporting each one belongs. Read the two together and the sequence is not in doubt: we found these, we reported them privately, the vendors released fixes, and then a national cyber-defence agency independently confirmed they were already being exploited and made patching them compulsory across the entire U.S. federal government.

CISA reached the same conclusion we did, independently of our marketing or any CVSS calculator we ran, and backed it with the force of law. When this post calls these bugs critical, that is what critical means in practice.

These are not fringe Joomla extensions

It would be comforting to write this off as a run of obscure, one-developer hobby extensions that no one serious installs. It is the opposite. These are some of the most established, most trusted and most widely deployed names in the whole Joomla ecosystem: page builders and template frameworks that sit under a huge number of live sites, a newsletter platform that also comes in a WordPress version, mature form, calendar and document components that agencies roll out as standard furniture. Between them they run on an enormous number of production sites. The vendors are long-standing, respected members of the Joomla community, most with a good security track record.

If extensions of this calibre, from teams who take security seriously, all had a critical bug on the same public surface inside a single month, then “we only install popular, well-reviewed extensions” is not the safety net people treat it as. Popularity and a good reputation tell you the code is maintained and the developer answers a disclosure email quickly. They do not tell you the code is free of the one endpoint that trusts the wrong input.

We went after the biggest names on purpose

There is an easy version of this exercise and a hard version, and we chose the hard one on purpose.

The easy version is to trawl the long tail: the abandoned, single-download, one-afternoon extensions that no one has touched in years. That corner of any ecosystem, Joomla or WordPress, is riddled with holes. Finding a critical bug there proves nothing, because no one serious runs that software and breaking it helps no one. It is easy, and it is pointless.

We did the opposite. We pointed the research squarely at the extensions that matter to the people we protect: the ones at the top of the installed list across mySites.guru users’ sites. The page builders, template frameworks, and the form, calendar, document and newsletter components that professional agencies deploy as standard, built and backed by some of the most respected, longest-established developers in the Joomla community. These are the names you would choose because they are popular, maintained and trusted.

These extensions do not just run on reputable client sites. Several of the ones in this roundup are installed on the official *.joomla.org websites themselves. The Joomla Project runs this code on its own infrastructure, on the properties that represent Joomla to the world. There is no stronger vote of confidence, no clearer “trusted, vetted, safe to install” signal, than being chosen by the people who make Joomla, for Joomla’s own sites. And it was still vulnerable.

We did not have to go digging in the gutter to fill a list. Every vulnerability in this post is in software a careful, security-conscious site owner would happily install, from a developer with a real reputation to protect. The critical bugs were in the flagship extensions, on the most reputable sites, the whole time.

Is Joomla insecure by default?

No. A post like this can leave the wrong impression, but not one of these vulnerabilities is in Joomla itself. Every single one is in a third-party extension: a component, plugin, module or template framework that someone chose to install on top of Joomla. Joomla core is not the weak point here, and nothing in this roundup says otherwise.

Joomla the platform has one of the stronger security stories in the CMS world: a dedicated Security Strike Team, its own CVE Numbering Authority (the Joomla CNA) that coordinates disclosures exactly like these, a signed and hardened core update channel, and a long record of releasing fixes quickly. A default Joomla install, kept up to date, is a solid, well-defended piece of software.

The risk lives where it lives on every CMS: in the third-party ecosystem bolted on around the core. WordPress stands or falls by its plugins, and Joomla by its extensions. That is where code quality varies most, where independent review is thinnest, and where an attacker goes looking first. It is why “keep Joomla updated” is only half the job. The other half is keeping every extension updated too, and knowing which ones are exposed at any given moment.

The extensions you add to Joomla are code too, and they deserve the same discipline you already apply to the core.

One last piece of perspective, because nineteen findings in five weeks can read as alarming when you see them stacked in one table. Nineteen findings in a month is a handful. Now look at what the WordPress ecosystem logs over the same kind of window: Wordfence’s vulnerability feed regularly lists fifty or more new plugin vulnerabilities in a single day. A day, not a month. Here is that feed on the afternoon we published this post, showing fourteen WordPress plugin vulnerabilities dated 15 July alone, with more stacked up on the 14th and the 13th behind them:

The Wordfence Intelligence "All Vulnerabilities" feed on 15 July 2026, listing newly disclosed WordPress plugin vulnerabilities newest first. Fourteen separate entries share the date July 15, 2026: SEO Booster authenticated SQL injection via sort_field (CVE-2026-15458, 4.9) and again via orderby (CVE-2026-15445, 4.9), RPB Chessboard unauthenticated stored XSS (CVE-2026-13042, 7.2), Product Feed Manager for WooCommerce reflected XSS (CVE-2026-15306, 6.1), MxChat stored XSS (CVE-2026-13005, 4.4), MultiVendorX SQL injection (CVE-2026-12941, 6.5), Easy Accordion stored XSS (CVE-2026-15652, 6.4), Catch Themes Demo Import missing authorization (CVE-2026-15336, 4.3), List category posts sensitive information exposure (CVE-2026-12434, 4.3), Landing Page Builder CSRF to an AJAX action (CVE-2026-12409, 4.3), GiveWP stored XSS (CVE-2026-14987, 6.4), Advance Product Search unauthenticated SQL injection (CVE-2026-12753, 7.5), Gravity Forms unauthenticated arbitrary file read (CVE-2026-12997, 7.5), and SAML Single Sign On unauthenticated authentication bypass (CVE-2026-15013, 9.8). Further entries dated 14 and 13 July sit below them, including a Podlove Podcast Publisher unauthenticated arbitrary file upload at CVSS 9.8

Read that gap carefully, though, because it points in both directions at once. Part of it is scale: WordPress runs on far more sites, with far more plugins, so there is simply more code to find bugs in. The larger part is the thing this entire post has been about. A whole paid industry hunts WordPress plugin bugs every single day, so WordPress’s number is high because hundreds of skilled people are looking. Joomla’s number is low because, most months, almost no one is. Our nineteen is what one team turned up in about five weeks of actually looking, a long way short of the total that exists out there, and it is still climbing, not because we ran out but because we cannot look at everything at once.

So if this roundup left you uneasy about Joomla, weigh it against an ordinary Tuesday in WordPress before drawing a conclusion about either. The lesson is identical on both platforms and has nothing to do with which CMS you chose: the third-party code you bolt on is where the risk lives, and keeping it current is the whole job.

The critical file-upload RCEs in Joomla extensions

Six of the nineteen were the same shape of bug in its cleanest form: a front-end upload endpoint that accepted a file from an anonymous visitor without properly checking who sent it or what it was, letting an attacker drop a PHP file into a web-served folder and execute it.

  • PageBuilder CK (CVE-2026-56290, CVSS 10.0). A front-end task behind only a CSRF token, with no authentication or authorisation, accepted an upload and let the attacker choose the destination folder. Fixed in 3.6.0, with back-patches for the Joomla 3 and 4 branches. Exploited in the wild within a day.
  • Balbooa Forms (CVE-2026-56291, CVSS 10.0). The form attachment upload took a file from anyone, with no login, no CSRF token and no type check, and trusted the supplied filename. A zero-day, confirmed exploited in the wild. Fixed in 2.4.1.
  • RSFiles! (CVE-2026-57827, CVSS 10.0). The front-end upload task was reachable with no login and no token, and the write path did no file-type check, so anyone could drop a PHP file into the public downloads folder and run it. Fixed in 1.17.12.
  • SP Page Builder (CVE-2026-48908, CVSS 10.0). An unauthenticated icon-upload endpoint gave remote code execution, and was being used to plant hidden Super User accounts. Fixed in 6.6.2.
  • iCagenda (CVE-2026-48939, CVSS 10.0). The public “Submit an Event” form accepted uploads with no server-side type check, plus an access-control bypass that let guests create events. A zero-day, exploited in the wild. Fixed in 4.0.8 (and 3.9.15 for the legacy branch).
  • Phoca Download (CVE-2026-57828, CVSS 9.0). This one needs a logged-in member and the non-default user-upload feature, so it is authenticated rather than anonymous, but the member-upload path skipped the file-type allow-list and let a member upload and run a PHP file. Fixed in 6.1.3.

Three more were the same class of unauthenticated upload, and two of them are where our scores and the Joomla CNA’s part company. DJ-Classifieds (CVE-2026-61424, CVSS 10.0) and jDownloads (CVE-2026-61900, CVSS 10.0) both let an anonymous visitor write an arbitrary file into a web-served folder. The CNA scored them as full remote code execution, level with the five 10.0 code-execution flaws above. We score both 8.8, because on a default server the file is written but never executed: it becomes code execution on a host that runs secondary file extensions, or where an administrator has widened the allowed types. Cheap shared hosting is full of the first, so patch them as the 10.0s their records say they are. The third, Events Booking (CVE-2026-60024), came with an anonymous upload on by default alongside a user-enumeration flaw. All three are fixed.

The Joomla Extension SQL injections

Five of the nineteen were SQL injection rather than file upload: a read, not code execution. A public front-end endpoint placed request input into a database query with no sanitising, so an anonymous visitor could read any table in the database, including user accounts and password hashes. The Joomla CNA scored DPCalendar, EDocman and Quix at 8.7, AcyMailing at 9.2 (we had it at 8.7) and EasyStore at 9.3 Critical. They sit below the upload flaws’ 10.0 only because they read data rather than executing code. Every one is the same public-endpoint-meets-unchecked-input pattern.

  • AcyMailing (CVE-2026-56292, CVSS 9.2 from the Joomla CNA, 8.7 in our own assessment). A public front-end endpoint placed request input into a query unsanitised. It affects the WordPress plugin as well as the Joomla extension, because both are built from the same code. Fixed in 10.11.1 on both platforms.
  • EDocman (CVE-2026-57832, CVSS 8.7). The document and download manager for Joomla by JoomDonation placed a request parameter into a front-end query unsanitised, the same class of unauthenticated SQL injection with the same anonymous full-database-read outcome. We proved it live, reading back the site’s Super User account and confirming it connected to MySQL as the superuser, so on that box the read reached every database on the server, not just the one site. Fixed in EDocman 3.9.0, under a terse changelog that badly understates the severity. Read the full write-up.
  • DPCalendar (CVE-2026-57831, CVSS 8.7). The calendar and events component for Joomla by Digital Peak had the same class of unauthenticated SQL injection in its public front-end events feed, with the same anonymous full-database-read outcome. It is now fixed in DPCalendar 10.11.2 (Joomla 4.4.4 to 6.x) and 8.19.4 (Joomla 3), which Digital Peak released within 24 hours, over a holiday break, crediting us in their own advisory. Read the full write-up.
  • EasyStore (CVE-2026-65761, CVSS 9.3). JoomShaper’s ecommerce component passed the product-list sort direction into the query’s ORDER BY with no allow-list, so an anonymous visitor could read any table through the sort parameter. It was one of three flaws we found in EasyStore, alongside an unauthenticated order forgery and a cross-customer invoice leak, and JoomShaper fixed all three in 2.0.2 with no security advisory. Read the full write-up.

Unauthenticated SQL injection often means complete database compromise

It is tempting to file a “read-only” SQL injection under low priority. Do not. Unauthenticated SQL injection is one of the most damaging classes of web vulnerability there is, and “read-only” badly undersells what an attacker walks away with.

Start with what a single anonymous request can read. Joomla’s #__users table holds every account, Super Users included, with their bcrypt password hashes. Those hashes crack offline at the attacker’s leisure, and any weak one that falls gives up a real admin login with no further exploit needed. The #__session table can expose live sessions. Extension parameters in #__extensions routinely hold API keys and integration credentials. Every article, every custom field, every piece of data the application keeps in the database is readable. One injection, and the confidentiality of the whole application is gone.

The reach often does not stop at one site, either. On a great deal of shared and reseller hosting the database account the site connects with is over-privileged, sometimes able to see every schema on the MySQL server. Where that is true, a single injection in one Joomla site can read every other database on the box, other customers’ sites included, and in the worst setups the server’s own mysql.user table. How far the damage goes is “everything this database login can see”, not just “this site’s data”.

“Blind” shrinks none of this, it only slows it down. A blind injection returns no data in the page, so tooling asks the database one true-or-false question at a time and rebuilds the answer bit by bit. That is a throughput detail for the attacker, not a safety margin for you: automated tools walk a full table out in seconds to minutes, and the end state is identical to a noisy injection.

And a read is frequently just the opening move. Depending on the database privileges and the exact injection point, the same flaw can escalate to writing rows (planting a Super User, flipping a user into an admin group, injecting a stored-XSS payload into content), or, where the database login holds the FILE privilege, reading server files with LOAD_FILE and writing a web shell with INTO OUTFILE, turning a “read” into remote code execution. Even when it stays a pure read, “the attacker now has every credential and secret the site stores” is a full compromise in every way that counts.

That is why we treat the five SQL injections in this roundup as high-severity emergencies rather than paperwork, and why the answer is never “add a firewall rule and move on”. A WAF can blunt the delivery. Only the patch closes the hole.

The Helix template framework issues

Two of the findings were in JoomShaper’s template frameworks, which sit on an enormous number of Joomla sites.

  • Helix3 (CVE-2026-49049) had an unauthenticated file write, arbitrary file delete and template-parameter overwrite reachable through com_ajax before any token or permission check. The template-parameter write is being used to inject a defacement and wallet-drainer payload straight into the database, where file scanners never look. Fixed in 3.1.1, and it was released under a two-word “Security Update” changelog that badly understated it.
  • Helix Ultimate had several com_ajax actions running with no CSRF or permission check, enabling an unauthenticated menu-settings write that leads to stored cross-site scripting, plus an in-folder file delete, an open redirect and an unprotected template export. Fixed in 2.2.7. No CVE has been assigned.

Why these Joomla vulnerabilities nearly all look the same

Read the list again and the same phrase keeps appearing: a public front-end endpoint.

Extensions have to expose endpoints that anonymous visitors reach without logging in. A contact or booking form has to accept a submission. A calendar has to serve its events. A file manager has to hand out downloads. A page builder has to load and save layout fragments over AJAX. None of that can sit behind a login, because the public is the intended audience. Joomla’s com_ajax gateway and front-end component tasks exist to expose this surface.

Every one of those public endpoints is attack surface. The bug is almost always the endpoint trusting what arrives, rather than the endpoint existing: taking a filename the visitor supplied and writing it to disk, taking a request parameter and dropping it into a database query, reaching a file-write or delete without first checking a token and a permission. An upload handler with no type allow-list turns “submit an event” into “run my code”. A query built by string concatenation turns “search the newsletter” into “read the password table”. This is the public-endpoint-meets-unchecked-input pattern, and it is behind all but a couple of these nineteen findings. Once you have seen it a few times, you know exactly where to look in the next extension.

None of this is new: authentication, authorisation and Joomla security 101

These bugs are ordinary. Nothing in this roundup is novel. There is no exotic new attack class, no clever chain no one had thought of, no zero-day technique. Every single one comes down to one of the oldest lessons in web application security, and they split cleanly into the three questions every request should have to answer:

Joomla security 101

Three questions every request must answer

  1. 01
    Authentication Skipped

    Who is making this request?

    A com_ajax action that fires before any token or login check has skipped this entirely.

  2. 02
    Authorisation Skipped

    Are they allowed to do it?

    A front-end task that reaches a file write, a delete or an upload without checking a permission has skipped this one.

  3. 03
    Input validation Skipped

    Can this input be trusted?

    An upload with no file-type allow-list, or a query built by gluing request text together, has skipped this one.

Those three questions, nineteen times over. They are the first week of any secure-development course and the top of every checklist OWASP has published for twenty years, and experienced developers are expected to get them right by default without thinking about it. That is also the reassuring part: the defences are well understood, cheap and boring. The failure is almost always the same human one, a single endpoint that, on a busy day, skipped a check that everybody already knows to make.

Five things the Joomla Project could do to protect every site

None of this is Joomla core’s fault, as we said. But the platform is uniquely placed to make this entire class of bug far harder for an extension developer to write in the first place. Five changes would make that much harder, and the first two alone would have stopped almost every vulnerability in this post before it was released.

The project has since moved on the process side of the same problem. In August 2026 the lead of the Joomla Security Strike Team proposed a Manual page setting out twenty rules for extension developers handling a security report, covering CVE assignment, researcher credit and truthful changelogs. It does not stop the bugs below being written, but it would have changed how several of these nineteen were communicated.

1. Ship a tiny SQL-injection filter as a core plugin

There is essentially never a legitimate reason for a raw, SQL-looking payload to arrive as a request parameter on a public index.php endpoint. A default-on system plugin that inspects incoming request values and rejects the obvious injection shapes (union selects, stacked queries, comment sequences, information_schema probing) would neutralise the delivery of every SQL injection in this roundup. It does not need to be clever or exhaustive. It could be ten lines. Call it a mini-WAF.

Aside, because we enjoyed this rather too much: "Miniwaf" is also a popular crunchy rolled-wafer snack made by the Hai Ha Confectionery Company in Vietnam. Ours has fewer calories and blocks considerably more attacks.

There is precedent for exactly this, too. In 2019 the Joomla Project adopted the TYPO3 phar stream wrapper across the entire CMS, a single central guard that shut down phar:// object-injection attacks so no individual extension had to defend against them alone. It was only deprecated in 5.3 and removed in 6.0 once PHP 8 fixed the underlying issue and made it redundant. A default-on request filter is the very same move: one small piece of core code that protects every extension at once.

2. Make that same mini-WAF reject front-end file uploads by default

The other half of this roundup is anonymous file upload. A core plugin that simply blocks multipart file uploads to public front-end endpoints unless the receiving component has explicitly opted in would have stopped the upload RCEs cold. Most of the vulnerable endpoints never intended to accept a file from an anonymous visitor at all. A default-deny posture, opt-in per component, turns “the developer forgot to check” into “safe unless someone allowed it on purpose”.

Those two small features, a request filter and an upload block, would between them have blocked almost every vulnerability in this post, the SQL injections and the file uploads alike.

3. Provide one hardened, official file-upload API

Today every extension author rolls their own upload handling, and every roll is a fresh chance to get it wrong. Joomla should offer a single, battle-tested, unit-tested upload service that developers call instead of writing their own, with the safe behaviour baked in and not optional:

  • A strict, non-bypassable extension allow-list (permit jpg, png, pdf; never a deny-list that forgets phtml, phar, php7)
  • Real content inspection, verifying the file’s actual magic bytes and MIME, not its name or the client-supplied Content-Type
  • Polyglot detection, rejecting files that are valid as two formats at once (the classic image or PDF header that is also runnable PHP), which sail straight past a naive magic-byte check
  • Double-extension and null-byte handling (shell.php.jpg, shell.php%00.jpg)
  • Filename normalisation, generating a random server-side name rather than trusting the uploaded one
  • Writing to a location that is not web-served, or is hardened against execution, by default
  • Enforced size and count limits, plus per-user rate limiting
  • Clear, prominent documentation, so the safe path is the obvious path a developer reaches for

None of this is exotic. It is the boring, known-good checklist that every one of these extensions had to implement by hand, and that at least six of them got wrong in a single month. Build it once, test it to death, and the whole ecosystem gets safer by default.

4. Stop pretending a complicated .htaccess is security

Joomla comes with a long, intimidating .htaccess.txt full of rewrite and blocking rules, and a cottage industry of “hardening” guides tells site owners to pile on more. It looks reassuring. It is mostly theatre. Every vulnerability in this roundup arrived through an approved, normal request to index.php, the one path every .htaccess is built to allow, so those rules never got a look in. A file complex enough that almost no one who copies it understands it, and that does not stop the attacks that actually happen, is the feeling of security plus a support burden, not security itself. The platform should stop leaning on it as a headline defence and put the protection where the requests actually arrive: in the code, in a request filter, in a safe upload API. Damage-control rules in an upload directory are worth having, but they are the seatbelt, not the brakes, and they should be presented that way. We set out the full argument, and exactly which requests go straight through the rules, in Your .htaccess Won’t Stop a Joomla Hack.

5. Give AJAX endpoints one simple, standard way to handle auth and authz

Almost every extension that exposes a com_ajax handler or a front-end task writes its own authentication and authorisation from scratch: checking the CSRF token here, remembering to call authorise() there, deciding for itself whether a guest should be let through. Most of the bugs in this post are that exact decision going wrong, or being skipped, on a single endpoint. When every developer hand-rolls the same check, sooner or later one of them leaves the latch off.

Joomla should give AJAX and front-end endpoints one declarative way to say “this action needs a valid token” and “this action needs this permission”, enforced by the framework before the handler ever runs. Better still, make the safe state the default: an endpoint that declares nothing gets a token check and a login requirement automatically, and a developer has to consciously, visibly opt a task out to expose it to the public. Getting authentication and authorisation right should be one line of declaration, not a discipline every extension author has to remember to apply perfectly, every single time.

We are not the Joomla Project - actually we are physically banned from contributing to the Joomla project, like other major players in the Joomla ecosystem (but yet they love to protect their toxic inner circle - go figure) and we do not get to set its roadmap. But we read a great deal of extension code, and from where we sit these five changes would remove most of the ground this month’s vulnerabilities grew in.

Why .htaccess is damage control, not a Joomla security fix

A common reaction to a run of upload vulnerabilities is “I have got an .htaccess, I am fine”. You are not.

These flaws were reached through approved, normal endpoints. The malicious request looked like a legitimate form submission or AJAX call, so it sailed through routing and rewrite rules. An .htaccess that only blocks odd-looking URLs never sees a problem, because nothing about the request was odd. The application accepted it on purpose.

Where .htaccess does help is after the file has been written: a rule in your upload directories that will not execute PHP downgrades a remote code execution into an arbitrary file write. That is a real reduction in how far the damage goes, but it is not safety. An attacker who can still write files can fill your disk and take the site down, host illegal content under your domain, or leave a payload waiting for the day execution gets re-enabled. And none of it touches the SQL injection class at all: there is no file to block, the attacker reads your database straight out of a normal query.

Your .htaccess will NOT SAVE YOU

A Web Application Firewall (WAF) layer might.

This all deserves its own full treatment, and it got one. Your .htaccess Won’t Stop a Joomla Hack covers why an .htaccess protects far less than most site owners think, which requests ride straight through it, and the hardening (and the WAF layer) that actually earns its place. The short version for today: an .htaccess is a seatbelt. Worth having, capable of turning a catastrophe into a bad day, and no reason whatsoever to skip the actual fix. Update the extension.

Every security announcement we have published

The table near the top of this post is the original nineteen, ranked by their CVE severity scores. This is the whole archive: every security announcement on the mySites.guru blog, newest first. It covers the flaws we found ourselves, the vendor security releases we pulled apart to work out what was actually fixed, and the reports from other researchers that still meant your sites needed patching.

In the Found by column we name the other researchers wherever the CVE record or the vendor credits them, because absorbing someone else’s find into our own tally without a word is the behaviour we complain about elsewhere in this post.

Joomla, Joomla extensions and Joomla core

PublishedAnnouncementFound by
11 Nov 2026Vik Booking 1.18.21 stops guests saving script as a check-in signature, the fourth Vik Booking security release in 22 days, plus CSRF and permission checks on the back-end invoice tasks. No CVEVendor release
2 Nov 2026Custom Tables 3.7.8 fixes an unauthenticated file upload: anyone could put a file in a Joomla site’s tmp folder through a public Custom Tables form. CVE-2026-105606, scored 9.5Valentin Lobstein (Chocapikk)
2 Nov 2026DJ-Classifieds 3.11.3 fixes SQL injection, unrestricted uploads and ownership flaws, CVE-2026-105603 to CVE-2026-105605. Our own read of the release also found an unauthenticated code-execution path in its PayPal plugin, closed in the same version but not in the vendor’s noticeAla Arfaoui; the PayPal path by mySites.guru
31 Oct 2026Articles Anywhere 20.1.1 and Sourcerer 17.0.1 fix one issue together, CVE-2026-102802, so both need updating. Users Anywhere 3.0.1 fixes CVE-2026-102801Vendor release
29 Oct 2026Helix Ultimate 2.2.11 fixes XSS, path traversal and CSRF issues in 2.0.0 to 2.2.10, with a download page that said nothing about security on the day it shippedJoomShaper’s own security pass
27 Oct 2026iCagenda 4.0.17 and PRO 3.9.17 fix a stored XSS in url-type event custom fields, CVE-2026-102790, and a CSV formula injection in registration exports, CVE-2026-102799Akinlabi Omoogun of lulztigre.pw
27 Oct 2026Quix 6.4.0 stops guests reading access-restricted Joomla articles through a front-end AJAX handler. No affected range, severity or CVE from the vendorVendor release
27 Oct 2026Gridbox 2.20.4.2 fixes two unauthenticated SQL injection flaws, CVE-2026-102788 and CVE-2026-102789, both scored 9.3. About 95% of the Gridbox sites we monitor were affectedArtur Błażewicz, coordinated by the JSST
27 Oct 2026DJ-HelpfulArticles 1.3 fixes a stored XSS anyone could plant in the admin overview, CVE-2026-102800, scored 8.7Ala Arfaoui
26 Oct 2026Vik Booking 1.18.19, Vik Rent Car 1.15.13 and Vik Rent Items 1.8.6 fix a CSRF gap and stored XSS, the third Vik Booking security release in a week. No CVEVendor release
26 Oct 2026Phoca Download 6.1.6 adds the token check its file delete was missing, CVE-2026-102787. Joomla 3 and 4 get no fixVendor release
26 Oct 2026StageIt 5.8.0 and 6.4.0 add CSRF protection to every staging action and stop an Options save writing PHP into params.php. Three CVEs; 4.2.1 and 2.2.1 bring the fixes to Joomla 4 and 3Vendor release
23 Oct 2026Phoca Gallery 6.1.6 fixes a stored XSS hidden in a photo’s EXIF data, CVE-2026-102786, scored 8.6. Fixed on Joomla 6 onlyVendor release
21 Oct 2026YOOtheme Pro 5.0.53 fixes an unauthenticated remote code execution flaw in the image handler, CVE-2026-102785, announced a day ahead. Pro 4 is unaffected. Be on 5.0.53Vendor release
20 Oct 2026The JCE hack, four months on: CVE-2026-48907 is patched and unpatched Joomla installs are still being compromised by the same automated attacksMass exploitation of a patched flaw
8 Oct 2026Gridbox 2.20.4.0 fixes a language install CSRF and an image preview path check. Every site on 2.20.3.1 or older should updateSergiy Tryzhychynskyi, coordinated by the JSST
7 Oct 2026JCH Optimize 9.4.0 fixes six high-rated issues: an XSS, an unauthenticated hit counter flaw and missing admin CSRF checks; 9.4.2 fixes a file read and an SSRF. Be on 9.4.2Vendor release
7 Oct 2026OrdaSoft Simple Membership and Touch Slider: two flaws that need no login, an SQL injection in the login check scored 9.3 and a slider anyone can delete or replaceJoomla CNA records, finder uncredited
4 Oct 2026Event Gallery 6.6.0 fixes forged backend changes, a Google Photos token leak and an XSS, CVE-2026-102776 to CVE-2026-102778Vendor release
2 Oct 202614 more Joomla 3 security fixes, each tested on a real 3.10.12 site: the Joomla 5.4.9 core fixes that reach Joomla 3, backported to the mySites.guru one-click patch toolJoomla core, backported by mySites.guru
1 Oct 2026Phoca Cart 6.1.9 stops anyone downloading other customers’ paid files, CVE-2026-102775, scored 8.7. Only the Joomla 6 line is fixedVendor release
30 Sep 2026JCTables 1.21.1 fixes an unauthenticated SQL injection in JoomCode’s datatables component, scored 10.0 and able to read and rewrite the whole Joomla databaseOther researcher
19 Sep 2026JoomGallery 4.4.2 fixes an unauthenticated file upload in the Joomla gallery extension, where the resumable-upload endpoint had no access check at all. CVE-2026-84048; the record briefly named 4.4.1 as the fix when 4.4.1 was itself affected, corrected the same day after we flagged itYugorin of Samar Group
15 Sep 2026Six more J2Store flaws fixed in 3.3.23, 4.0.23 and 4.1.8, including an anonymous blind SQL injection that reads a Joomla shop’s whole databasemySites.guru
14 Sep 2026SQL injection and a captcha bypass in SP Page Builder, an Author-level SQL injection and an unauthenticated captcha bypass, both fixed in 6.9.1. The Joomla 3 patch reached 1.0.3 after we found two more gaps in itmySites.guru
28 Aug 2026T4 Page Builder 2.3.0 closes an unauthenticated open mail relay in JoomlArt’s Joomla page builder, along with a hardcoded Mailchimp API key. CVE-2026-78374, issued only after we asked the Joomla CNA for it ourselves, and still no advisory and no affected-version statementmySites.guru
27 Aug 2026Helix Ultimate 2.2.10, and a third Joomla 3 patch for the template framework, which reuses the version string 2.1.4-j3sec so Joomla 3 sites cannot tell whether they have itJoomShaper’s own security pass
25 Aug 2026YOOtheme Pro: four flaws across 5.0.41 and 5.0.42, now backported to the Joomla 3 branch in 4.5.34. 5.0.42 has since been superseded by 5.0.53 (above); Joomla 3 stays on 4.5.35Jörg Steinsträter, and others uncredited
22 Aug 2026Fabrik 4.7.2 closes a long list of unauthenticated flaws: remote code execution, SQL injection, arbitrary file upload, directory listing, row disclosure, comment manipulation, path traversal and a heredoc breakoutmySites.guru for most of them
22 Aug 2026Five security issues in JEM (Joomla Event Manager), including an unauthenticated article overwrite. Five CVEs, no stable fix yetmySites.guru
19 Aug 2026YOOtheme ZOO: a CVSS 10.0 unauthenticated upload and an unauthenticated SQL injection, plus five more issues across two follow-up releases. Be on 4.1.66mySites.guru
17 Aug 2026Sourcerer 14.0.0 stops PHP running from unverified content, CVE-2026-74253, scored 10.0Łukasz Rybak
17 Aug 2026iCagenda 4.0.12 fixes an unauthenticated SQL injection in the Calendar module, CVE-2026-67365, scored 9.2Joep van Antwerpen
16 Aug 2026Phoca Cart 5.2.4, 6.1.7 and 4.0.13 fix a front-end SQL injection in the product filterToan Le
12 Aug 2026Unauthenticated remote code execution in SP Page Builder, still there in the release that fixed our earlier reports. Fixed in 6.8.0mySites.guru
12 Aug 2026Cotton Cloud patched the login, then the data: two access control flaws, CVE-2026-67283 and CVE-2026-67284, fixed in 2.0.3mySites.guru
10 Aug 2026The Fabrik fiasco: two CVSS 10.0 RCEs and a chaotic run of security releases across 4.6.7 to 4.7.1, announced as stable while restricted, then relabelledMoe Khalilov and Murad Gasimov
29 Jul 2026Another 23 critical vulnerabilities in Gridbox, several already exploited in the wild. Fixed in 2.20.2mySites.guru, audit commissioned by Balbooa
29 Jul 2026JCE 2.9.99.10 fixes a file rename flaw, and hardens considerably more than the changelog listsVendor release
27 Jul 2026Pre-authentication SQL injection and mail relay in SP Page Builder, four flaws fixed in 6.7.1mySites.guru
23 Jul 2026Exposed customer invoices, order forgery and SQL injection in EasyStore, CVE-2026-65759 to CVE-2026-65761mySites.guru
22 Jul 2026Regular Labs patched its whole Joomla extension catalogue at once: SSRF, command injection and stored XSS, no CVEsVendor release
21 Jul 2026PageBuilder CK RCE fixed, again, correctly this time. The 3.6.0 fix only added a login check. Be on 3.6.5mySites.guru
21 Jul 2026Events Booking exposed personal and financial data from invoices to anonymous visitors. Fixed in 5.8.2mySites.guru
21 Jul 2026Membership Pro 4.6.2: a quiet fix for anonymous file uploads, CVE-2026-62415, rated 9.1Vendor fix, same flaw we reported in Events Booking
20 Jul 2026Gridbox: one cookie and you are a Super User, CVE-2026-61425, scored 9.4 by the Joomla CNA (10.0 in our own assessment)mySites.guru
20 Jul 2026Events Booking: anyone could upload files to your server, CVE-2026-60024mySites.guru
20 Jul 2026DJ-Classifieds unauthenticated file upload, CVE-2026-61424, spotted being probed in a live site’s logsmySites.guru
17 Jul 2026We are not the only ones auditing Joomla extensions: a JoomCCK SQL injection and a ChronoForms stored XSS, both via the Joomla CNAOther researchers
17 Jul 2026jDownloads 4.1 shipped an unauthenticated upload endpoint, CVE-2026-61900, fixed in 4.1.6Subscriber report, confirmed and coordinated by us
15 Jul 2026Unauthenticated SQL injection in Quix Page Builder, CVE-2026-58078mySites.guru
15 Jul 2026JoomShaper patched the Joomla 3 it said it never would, six days after saying noVendor reversal
14 Jul 2026Unauthenticated SQL injection in EDocman, CVE-2026-57832mySites.guru
13 Jul 2026Unauthenticated SQL injection in DPCalendar, CVE-2026-57831mySites.guru
10 Jul 2026RSFiles! fixes an unauthenticated file upload RCE, CVE-2026-57827, scored 10.0mySites.guru
10 Jul 2026Phoca Download 6.1.3 fixes an authenticated upload RCE, CVE-2026-57828mySites.guru
9 Jul 2026JoomShaper ends Joomla 3 security fixes regardless of severityVendor policy
9 Jul 2026Unauthenticated SQL injection in AcyMailing, CVE-2026-56292, affecting Joomla and WordPressmySites.guru
8 Jul 2026The Helix3 defacement lives in your database, not your files: a botnet weaponising CVE-2026-49049 a week after the patchMass exploitation of our earlier report
8 Jul 2026Balbooa Forms fixes an unauthenticated file upload RCE, CVE-2026-56291, scored 10.0mySites.guru
7 Jul 2026Helix Ultimate 2.2.7 closes an unauthenticated menu write leading to stored XSSmySites.guru
29 Jun 2026Helix3 shipped a critical fix labelled “Security Update”, CVE-2026-49049, an unauthenticated file write and deletemySites.guru
27 Jun 2026PageBuilder CK file upload RCE, CVE-2026-56290, scored 10.0mySites.guru
15 Jun 2026An SP Page Builder zero day planting fake Joomla admins, CVE-2026-48908, scored 10.0 and exploited in the wildmySites.guru
15 Jun 2026Zero day file upload RCE in iCagenda, CVE-2026-48939, found in a client’s access log and fixed the same daymySites.guru
8 Jun 2026JCE Pro 2.9.99.6 is a hardening release following a full audit of Joomla’s most-installed editorVendor release
3 Jun 2026JCE Free and Pro 2.9.99.5 patch an unauthenticated file uploadVendor release
28 May 2026Joomla 5.4.6 and 6.1.1 patch ten security issues, including an MFA bypass and a com_users privilege escalationJoomla core
28 May 2026JCE Free and Pro 2.9.99.4 patch two authenticated vulnerabilitiesVendor release
16 Apr 2026An AcyMailing flaw listed as a WordPress bug also ships to Joomla, CVE-2026-3614, confirmed by diffing the sourcemySites.guru analysis
30 Mar 2026Novarain Framework unauthenticated file inclusion, deletion and SQL injection, CVE-2026-21627, scored 9.5Other researcher
5 Mar 2026Astroid Framework authentication bypass letting attackers upload backdoors, CVE-2026-21628, scored 10.0Other researcher

WordPress and cross-platform

PublishedAnnouncementFound by
29 Oct 2026Contact Form 7 6.2.4 fixes an unauthenticated file upload in 6.2 to 6.2.3, and renames docx and zip uploads through a safelist changeShinya Murakami and Jakub Herman, via WPScan
23 Oct 2026The PHP project advises turning off session upload progress until the next release, CVE-2026-115560PHP project advisory
20 Oct 2026PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35 fix two unauthenticated RCE flaws. Your host applies it; 8.1 and older get nothingPHP project
19 Oct 2026A fake Cloudflare captcha injected into wp-includes/functions.php, a WordPress core file, found on an agency customer’s site, and why a hash list can never match itActive malware campaign
22 Jun 2026Avada Builder 3.15.4 patches an unauthenticated file deletion flaw, CVE-2026-8713, scored 9.1 and able to delete wp-config.phpOther researcher
12 May 2026Avada Builder 3.15.3 patches an unauthenticated SQL injection and a Subscriber-level file read across a million sitesOther researcher
11 May 2026Spotting .sorry ransomware on your cPanel hosts, encrypting sites via CVE-2026-41940Active attack wave
6 May 2026Breeze, the Cloudways cache plugin, has an unauthenticated RCE, CVE-2026-3844, under active exploitationOther researcher
12 Apr 2026The WordPress plugin you trusted was sold to an attacker: 31 plugins acquired, backdoored, then activated eight months laterSupply chain compromise
8 Apr 2026Smart Slider 3 Pro 3.5.1.35 was a malicious release pushed through the official update channel. Affects WordPress and JoomlaSupply chain compromise
7 Apr 2026Ninja Forms File Uploads CVE-2026-0740, a 9.8 unauthenticated RCE where the first patch failedOther researcher
6 Apr 2026Elementor, Yoast SEO, WPForms and Really Simple Security all shipped security patches in one monthOther researchers
27 Mar 2026Smart Slider 3 lets any subscriber download wp-config.php, CVE-2026-3098. Affects WordPress and JoomlaOther researcher
10 Mar 2026WordPress 6.9.2, 6.9.3 and 6.9.4: ten security fixes, a crash, and incomplete patchesWordPress core

If you would rather not read an archive to find out whether it applies to you, that is the entire point of the platform. mySites.guru already knows which extensions and versions are installed on every site in your account, so every one of these that is in our vulnerability database flags itself against your sites without you checking a single admin panel.

More Joomla disclosures are already in the pipeline

The archive above is what we can talk about, and every one of the original nineteen is now patched and named: the events and booking component that sat redacted here through its disclosure window is public at last as Events Booking. The archive is still not the whole of what we have found. We are holding further confirmed vulnerabilities in widely installed Joomla extensions, some reported and sitting on a vendor’s timeline, some about to be reported, and none of them named here. We will not name an extension or a vendor until a fix exists, for the obvious reason that naming an unpatched flaw is just publishing an exploit. The one thing that overrides that is the vendor making the fix public first: JEM went out with five CVEs and no stable release to install because the corrected code was pushed to a public release candidate on GitHub, and once the fix is readable the flaw is too.

And that is only what is already confirmed. We are still researching another 10 potential critical or high-severity issues in well known Joomla extensions. Some will turn out to be nothing. On the last month’s strike rate, most will not.

We are also aiming higher than extensions. Together with another security researcher, and with AI assistance, we are working to chain several individually low-severity issues into a single working compromise of Joomla core itself, on the current Joomla 6 release line. It is early days, but our assessment is that a remote compromise of current Joomla 6 is likely to be provable, and we expect to be able to demonstrate it. If we get there, it follows the exact same path as everything above: reported privately to the Joomla Security Strike Team first, with no public detail until a fix exists.

Each of these will get its own full write-up here the moment its vendor releases a fix, exactly as the fifty-four above did, and each will be added to the archive. So treat that list as a snapshot rather than a finished total. If you are a mySites.guru subscriber you do not have to track any of it by hand: the affected sites get flagged automatically as soon as each vulnerability is public and in our database, and the announcement list puts the urgent ones in your inbox on the day.

AI is shrinking the gap between a Joomla patch and mass exploitation

The moment a fix is released, the fix itself becomes a map. Anyone can diff the patched code against the previous version, see exactly which check was added and therefore which check was missing, and reconstruct the exploit from that difference. This has always been true. What has changed is the speed.

An attacker can now feed a patch diff to an AI model, get a working understanding of the bug in minutes, generate a proof-of-concept, and turn automated scanning loose to find candidate sites running the vulnerable version, all in the time it used to take to read the changelog. Several of the flaws above were exploited in the wild within hours of the fix appearing. The window between “patched” and “hunted at scale” is now measured in hours, not weeks. That is the real reason “I will update at the weekend” is a losing strategy.

On our own side of that, every one of these nineteen issues was found by a human first, by reading the actual extension source code and recognising a dangerous pattern, not by pointing a model at a repository and waiting. That human judgement was then backed by tooling we have built and sharpened over the last decade: the connector that inventories every extension and version across a portfolio of sites, the vulnerability matcher, the proof-of-concept harnesses, the local test rigs. AI came in only as a sprinkle at the end, a way to make sure no code path or edge case was missed once the human had already found the door. Human-led, tool-assisted, AI for completeness. The attackers are automating the weaponisation of your patches. The least you can do is not give them a week’s head start.

None of which means AI is the villain of the piece. The same tool cuts both ways, and how useful or how dangerous it turns out to be is mostly a statement about the person holding it.

Phil Taylor
Phil Taylor @myPhilTaylor

Unpopular opinion:

Not every text, paragraph, software solution or tool developed by AI is bad, or AI slop, or insecure, or unusable, or unhelpful.

A bad workman always blames his tools.

Better found by us than by an attacker

If you run one of these extensions and this post made your stomach drop, hold onto one thing: the bug existed whether or not we found it. What mattered was who would find it first, and what they would do next.

When we find one, a fixed sequence follows. A private report to the vendor. A fix built and released. A coordinated release. Only then a public write-up, with the exploit detail held back. The site owner gets a patch before they get the bad news, and no one is given a working exploit.

When someone with worse intentions finds the same bug, none of that happens. There is no email to the vendor, no patch, no warning. The first you hear of it is a defaced homepage, a wallet-drainer injected into every page, a mailbox full of spam sent from your server, or a backdoor that sits unnoticed for months.

Same bug, opposite outcome. So yes, a run of disclosures like this is uncomfortable reading, but the uncomfortable version is the good one. The alternative was never “the bug never existed”. The alternative is that someone found it and chose not to tell you. Better us.

How mySites.guru finds affected Joomla sites for you

Updating one site is easy. The hard part, when you manage dozens or hundreds of Joomla sites, is knowing which ones run PageBuilder CK, or RSFiles!, or AcyMailing, and which of those are still on a vulnerable version. Nineteen disclosures in a month is nineteen rounds of that question, and checking each admin panel by hand does not scale.

mySites.guru already tracks the installed extensions and versions on every connected site. As each of these vulnerabilities was disclosed, we added its affected range to our extension vulnerability database, so every connected site running a vulnerable version is flagged automatically. You see, in one place, exactly which sites need which update, and you can push the fix from the dashboard rather than logging into each one. You can even enable auto-updates for any Joomla extension so a fix like these is in place before an attacker gets there, and mass-update across every affected site from one screen.

This is what we built the platform for. You should not learn about a Joomla security issue from the news and then go audit a portfolio of client sites by hand: we did exactly that when we found every site running a vulnerable copy of JCE, and we repeat it for every disclosure here. The dashboard tells you what is exposed, lets you drop straight into any site’s admin with one click to check or fix it, and does it all from one place.

What to do right now

  • Work down the table above and get every affected extension onto its fixed version. Start with the seven scored 10.0 (PageBuilder CK, SP Page Builder, Balbooa Forms, RSFiles!, iCagenda, DJ-Classifieds and jDownloads) and Gridbox, which its record puts at 9.4 and we put at 10.0
  • Every finding in this roundup now has a fix out, so there is nothing left to wait on. The whole job is getting each affected extension updated across every site you run, before a scanner reaches the ones you missed
  • Take a backup before each update, and snapshot everything first if you manage more than a couple of sites
  • If you manage many sites, let mySites.guru show you which are still exposed rather than checking by hand, and push the updates in bulk
  • Harden your upload and download directories to block PHP execution, as damage control, not as a substitute for updating
  • If you were on a vulnerable version of an upload flaw for any length of time, assume you may have been hit: find any hacked files and backdoors and follow our guide to fixing a hacked Joomla site
  • If a SQL-injection-affected extension was ever live on your site, audit your Joomla database security and rotate anything an attacker could have read, starting with user password hashes
  • Not on it yet? Sign up to mySites.guru, connect your Joomla and WordPress sites, and let the dashboard flag every one running a vulnerable extension for you, then update them in bulk. You can start with a free audit
  • Subscribe to our announcement list so alerts like these reach you the moment they are public, instead of finding out from the news or, worse, from your logs
  • Add mySites.guru as a Google Preferred Source so the next disclosure is more likely to show in your Top Stories when you search for it

Timeline

  1. Two zero days in one week, both already being exploited

    iCagenda's unauthenticated upload and SP Page Builder's asset.uploadCustomIcon, found in live access logs rather than in a lab. JoomliC fixed iCagenda the same day; SP Page Builder was being used to plant hidden Super Admins.

  2. PageBuilder CK 3.6.0, exploited within hours of the fix

    Our suspect content tool flags a live web shell on a connected site the same day the release shipped, planted through the flaw the release closed.

  3. CISA adds two of our findings to the Known Exploited Vulnerabilities catalog

    CVE-2026-56290 in PageBuilder CK and CVE-2026-48908 in SP Page Builder, with a federal patch deadline of 10 July.

  4. The vendor response run: seven fixes in a week

    Balbooa Forms 2.4.1, then RSFiles! 1.17.12 and Phoca Download 6.1.3, AcyMailing 10.11.1, DPCalendar 10.11.2 inside 24 hours of the report, EDocman 3.9.0 and Quix 6.2.1 the same day it was reported. Most vendors moved fast once shown the code.

  5. CISA adds two more, and both are ours

    CVE-2026-48939 in iCagenda and CVE-2026-56291 in Balbooa Forms, federal patch deadline 13 July. Four of our findings on the KEV catalog inside four days.

  6. We publish the roundup at nineteen findings

    Nineteen in five weeks reads as alarming stacked in one table, until you put it beside the WordPress feed, which regularly lists fifty or more new plugin vulnerabilities in a single day.

  7. The run did not stop

    Fabrik 4.7.2 closing a long list of unauthenticated flaws, ZOO needing three releases in three days for a CVSS 10.0 upload, and four YOOtheme Pro flaws backported to the Joomla 3 branch. The table below is kept current rather than frozen at nineteen.

Further Reading

Frequently Asked Questions

How many Joomla vulnerabilities did mySites.guru disclose in the last month?
Nineteen, across seventeen different Joomla extensions, between mid-June and late July 2026. Nine were file-upload flaws leading to remote code execution or, on a default server, arbitrary file write, five were unauthenticated SQL injection, one was an unauthenticated authentication bypass that gave away a Super User account, one was an unauthenticated write leading to stored cross-site scripting, one was an unauthenticated file write and delete, one was an unauthenticated order and payment forgery, and one was a cross-customer order and invoice data leak. Every one was reported privately to the vendor first, and all nineteen now have a vendor fix out.
Are all of these Joomla vulnerabilities patched?
Yes, all nineteen are, and we withheld public detail on each until its fix was available. The events and booking component that was redacted here while its disclosure ran is now fixed and named: it is Events Booking, fixed across 5.8.0 and 5.8.1. For every one, the single most important action is to get each affected extension onto the fixed version in the table. Several were exploited in the wild within hours of the fix appearing, so do not treat any of them as low priority.
Why did mySites.guru go looking for Joomla vulnerabilities?
A friend argued that Joomla extensions were more secure than WordPress plugins after the JCE hack. We disagreed: the difference is not security, it is attention. The WordPress ecosystem pays researchers to hunt plugin bugs, through bounty programs like Wordfence and, less pleasantly, a black market that buys plugin exploits, so far more eyes are on WordPress plugins. Almost no one looks at Joomla extensions with the same intensity. So we went looking, and found one to two critical or high-severity unauthenticated remote code execution flaws every day for over a week. The bugs were always there. No one was looking.
Which of these Joomla vulnerabilities was the most serious?
The Joomla CNA gave seven of them the maximum CVSS 4.0 score of 10.0. Five are unauthenticated remote code execution through file upload, where an anonymous visitor could upload and run a PHP file with no login: PageBuilder CK, SP Page Builder, Balbooa Forms, RSFiles! and iCagenda. The other two, DJ-Classifieds and jDownloads, are unauthenticated uploads we score lower at 8.8, because on a default server the file is written but does not run. Gridbox goes the other way. Its record says 9.4, on a vector that assumes the attacker already has high privileges, but it gives an anonymous visitor a Super User account, which on Joomla reaches code execution through template editing, so we rate it 10.0. Phoca Download is also code execution but scores 9.0 because it needs a logged-in member. The AcyMailing SQL injection was read-only, so we score it 8.7 where the CNA published 9.2, but it still exposes every user record and password hash.
Are any of these vulnerabilities in CISA's Known Exploited Vulnerabilities catalog?
Yes. The U.S. Cybersecurity and Infrastructure Security Agency added four of them to its Known Exploited Vulnerabilities (KEV) catalog in a single week: PageBuilder CK (CVE-2026-56290) and SP Page Builder (CVE-2026-48908) on 7 July 2026, then iCagenda (CVE-2026-48939) and Balbooa Forms (CVE-2026-56291) on 10 July 2026. A place on the KEV catalog means CISA has confirmed the flaw is being exploited in the wild, and under Binding Operational Directive 26-04 every U.S. federal agency was ordered to patch each one within three days. All four were found and disclosed by mySites.guru.
Does a firewall or an .htaccess file protect me from these?
Only partially, and never as a substitute for updating. A SQL-aware web application firewall blocks the AcyMailing-style injection, and a hardened .htaccess can stop an uploaded PHP file from executing, which limits the damage of the upload flaws. Neither stops an attacker filling your disk or dropping non-PHP files, and neither fixes the underlying bug. Update the extension.
Where can I find every security announcement mySites.guru has published?
In the full archive in this post, under 'Every security announcement we have published'. It lists all 85, newest first: 71 covering Joomla, Joomla extensions and Joomla core, and 14 covering WordPress and cross-platform issues. Each row says who found the flaw, so the ones we found ourselves are separated from vendor security releases and from reports by other researchers. The archive is a snapshot rather than a finished total, because we are still holding confirmed vulnerabilities that cannot be named until their vendor ships a fix.
How do I check which of my Joomla sites are affected?
mySites.guru tracks the installed extensions and versions on every connected Joomla site, and we add each of these vulnerabilities to our extension vulnerability database as it is disclosed. Every connected site running an affected version is flagged automatically, so you see which sites need updating in one place instead of logging into each admin panel.
EU icon: AI MODIFIEDWritten and edited by a human, with AI assistance. Our approach to AI

What our users say

Tomasz
TomaszAL-TAIR
★★★★★

I've been managing multiple Joomla! websites for years, and I honestly can't believe I wasn't using mySites.guru sooner. It has completely changed the way I maintain and monitor my sites. The service is incredibly useful, making it easy to keep track of updates, security, backups, and the overall health of all my Joomla! installations from one place. It's a huge time-saver and makes managing multiple websites so much more convenient. On top of that, the pricing is extremely attractive for everything you get. The value is outstanding, especially if you manage more than one Joomla! website. I highly recommend mySites.guru to anyone working with Joomla!. It's one of those tools that, once you start using it, you wonder how you ever managed without it.

Read more reviews
Christof Rimle
Christof RimleRimle IT Services
★★★★★

The centralized management (backups, updates, malware protection, etc.) for all 115 of my websites makes my job so much easier. I also appreciate the proactive notifications about security vulnerabilities and the extremely fast response time to support requests! Thank you very much!

Read more reviews

Read all 306 reviews →

Get an email when the next post is published

Ready to Take Control?

One free audit of one site · no card · about 2 minutes to connect

Get Your Free Site Audit