Skip to main content
mySites.guru
New features added last monthRelease RadarFile ManagerImpostor FilesUpdate QueueRogue AdminsMCP & APIJoomla VELCVE Index

Three CVEs in miniOrange Extensions for Joomla, All Now Fixed

Three CVEs in miniOrange Extensions for Joomla, All Now Fixed

Update, 4 September 2026: a third record, and the earlier complaint is resolved

This post now covers three CVEs against the same vendor. CVE-2026-77995 in the miniOrange OAuth Client and CVE-2026-77998 in miniOrange SAML SSO for Joomla are both authentication bypasses at CVSS 10.0, and the SAML one is already being exploited in the vendor’s WordPress plugin.

CVE-2026-78074 is new, arrived on 31 August, and reaches a great deal further: a missing authentication check lets an unauthenticated visitor uninstall any extension on the site. It names 23 miniOrange extensions and all 23 now have a fix. Two of those numbers supersede the earlier round, so a site patched in late August is not done: the OAuth Client needs 3.2.1 rather than 3.2.0, and SAML SSO needs 11.0.3 rather than 11.0.2.

This post previously complained that CVE-2026-77998 described only the free line, so a paid install checked against it read as clean. That was fixed on the evening of 26 August. The record now names Basic to 13.1.0, Standard to 24.1.0, Premium to 34.1.0 and Enterprise to 44.1.0, along with the ADFS and Google Apps editions and the three OIDC extensions that had appeared in no record at all.

The last open question has now been answered, though by the vendor rather than by the record. On 4 September miniOrange told us the paid OAuth Client editions were never affected by CVE-2026-77995, that their investigation found the flaw in no paid build, and that this is why no paid security release was ever issued. What that is worth, and what it is not.

Start here: which of the three applies to you

The three records scope themselves differently, which is the single most confusing thing about this whole episode. One covers free and paid alike, one is free-only by design, and one has never said what it does to paid customers. So before any of the detail below, work out which line you are on and read one row.

Step 1: are you on a free or a paid build?

The leading digit of the version number tells you, because with miniOrange it identifies the edition, not the age. A one or two segment number in the low range (3.0.2, 6.4, 11.0.2, 1.2.2) is the free edition. Anything in the tens is paid: the 10s are Basic, the 20s Standard, the 30s Premium and the 40s Enterprise. A site reporting 32.0.2 is a Premium build, not something newer than 3.2.0.

Step 2: read your row

Free editionPaid editions (Basic, Standard, Premium, Enterprise)
CVE-2026-77995
OAuth Client account takeover
Affected to 3.1.9. Fixed in 3.2.0Not affected, on the vendor’s word. miniOrange say the flaw was never present in any paid build. The record itself still names only the free plugin, so nothing independent confirms it
CVE-2026-77998
SAML SSO authentication bypass
Affected to 11.0.1. Fixed in 11.0.2 (ADFS and Google Apps 6.4, the three OIDC extensions 1.2.2)Affected to 13.1, 24.1, 34.1 and 44.1. Fixed in 13.2, 24.2, 34.2, 44.2
CVE-2026-78074
Unauthenticated remote uninstall
Affected across 23 extensions, each with its own range. See the table of 23Not affected. The record limits itself to the free editions in its own description

The short version, if you only want the number

On a free build? Update to the version in the table of 23 and you are done. Because CVE-2026-78074 was fixed last, its number sits above the earlier ones for every extension the earlier records touched, so that single number closes all three: the OAuth Client’s 3.2.1 covers the 3.2.0 that fixed CVE-2026-77995, SAML SSO’s 11.0.3 covers 11.0.2, the ADFS and Google Apps 6.5 covers 6.4, and the OIDC extensions’ 1.2.3 covers 1.2.2.

On a paid SAML SP build? You need 13.2, 24.2, 34.2 or 44.2 according to your edition. CVE-2026-78074 does not apply to you.

On a paid OAuth Client build? miniOrange told us on 4 September that the paid editions were never affected by CVE-2026-77995, so on their account there is nothing for you to do. There is no number to install because they say no paid build ever needed one. That rests on the vendor’s word rather than on the record, which still names only the free plugin, so read the caveat before you file it as closed.

The rest of this post is how each record got to that state, in the order it happened, including the two days when a paid install checked against the SAML record was wrongly told it was fine.

The first flaw: CVE-2026-77995 in the OAuth Client

The miniOrange OAuth Client extension lets a Joomla site use an external OAuth provider to log its users in. Every free version below 3.2.0 has a flaw that needs no login, no account and no help from anyone on the site. It is scored CVSS 10.0, the maximum, and it ends with an attacker sitting in your Joomla administrator account.

What the flaw is

The extension works out who a visitor is from a cookie value. That value is set on the visitor’s own machine, so the visitor controls it completely. Change it to name a different account and the extension logs you in as that account. Name an administrator and you are an administrator, with no password and nothing to bypass, because there was never a check to bypass in the first place.

If that sounds familiar, it should. It is the same shape of flaw we found in Gridbox for Joomla back in July, where setting a single cookie, gridbox_username=admin, logged a visitor straight in as a Super User. Trusting a value the browser sends to decide who someone is has a name, improper authentication, and it keeps turning up in Joomla extensions because a cookie reads like server-side state right up until you remember the browser is the thing that writes it.

The Joomla record for this is CVE-2026-77995, published on 24 August 2026 by the Joomla project as the CNA, and credited to Krzysztof Zając of CERT PL. Its own summary is blunt: “The manipulation of a cookie value allows actors to login as arbitrary accounts, including admins.” The affected range is 1.0.0 up to and including 3.1.9, and the fix is 3.2.0.

What to do about the account takeover

Update the miniOrange OAuth Client extension on every Joomla site that runs it. 3.2.0 is what closes this record, but install 3.2.1 or later instead: the third record below affects 3.2.0 as well, and 3.2.1 closes both.

Read the version number carefully when you check. miniOrange ships the same extension as several separately numbered editions, and the leading digit is the edition, not the age: the 20s are Standard, the 30s are Premium, the 40s are Enterprise. A site showing 32.0.2 is not running something newer than 3.2.0, it is a Premium build. miniOrange have told us the paid OAuth editions were never affected, which is why no fixed build exists for them, though that rests on their assessment rather than on the record.

If you cannot update a site straight away, disable or remove the extension rather than leaving it in place. An extension that hands out administrator sessions to anyone who asks is worse than no OAuth login at all for the short time it takes to patch.

Then, because the flaw hands out administrator access, check the site was not already used. Look at your Joomla user list for administrator or super user accounts you do not recognise, and at accounts created or changed recently. Check the Joomla action logs and your web server logs for administrator sessions from IP addresses that are not yours. If anything looks off, treat the site as compromised and clean it properly rather than only updating the extension.

The second flaw: CVE-2026-77998 in SAML SSO

On 25 August 2026 the Joomla CNA published a second record against the same vendor: CVE-2026-77998, an unauthenticated authentication bypass in miniOrange SAML SSO for Joomla, scored CVSS 4.0 10.0. This one is a different extension from the OAuth Client above, and if you use miniOrange for SAML single sign-on it matters more to you than the OAuth flaw does.

What goes wrong

PHP’s openssl_verify() does not answer yes or no. It answers one of three things: 1 if the signature is valid, 0 if it is not, and -1 if OpenSSL could not complete the check at all. That third answer is the trap. The extension tests the result as though it were a plain true or false, and in PHP -1 is true.

So an attacker does not need to forge a valid signature. They need to send one broken enough to make OpenSSL give up. They post a SAML response naming whichever account they like, attach a signature value engineered to trigger an OpenSSL error, and the extension reads the resulting -1 as “signature verified”. It then logs them in as the account they named. A Super User account is as easy to name as any other. There is no login step, no credential to guess and nothing for anyone on the site to click.

It is the same shape of mistake as the OAuth flaw above, just one level further in. The OAuth Client trusted a value the browser sent. The SAML extension does check a signature, but then misreads what the check told it, which gets to the same place.

It is already being used on WordPress

This is not a bug sitting in a database waiting for someone to notice it.

miniOrange build the same single sign-on product for WordPress, where the identical misreading of openssl_verify() is tracked as CVE-2026-15981. Patchstack report that it is being exploited, chained with a second flaw in the same plugin. DigitalOcean caught an unrecognised WordPress administrator session on 16 August, attempts and opportunistic scanning are coming from six addresses across Europe, Africa and the United States, and a working proof of concept is public.

The Joomla record is new enough that we have seen no reports of it being attacked. We would not read much comfort into that. The vendor builds both editions from the same ideas, the mechanism is now described in public on both platforms, and attackers already have working code for one of them.

What happened next on the WordPress side is the part worth sitting with, because it is about to be the Joomla story too. Both flaws were fixed back in July. The vendor’s advisory covered only the free edition, so customers on the six paid editions were never told they were affected, and their WordPress dashboards showed no update prompt because paid editions do not update through the plugin directory. Plenty of them did nothing, reasonably enough, because nothing told them to. Those are the sites now being broken into. The bug was patched for a month before anyone got hurt by it, and the patch is not what failed.

The version numbers do not line up

The CVE record says the fix is version 11.0.2, with 6.4 given for the ADFS and Google Apps editions. Joomla sites running this extension do not report versions that look anything like that. Real installs report 9.7, 10.8, 11.2, 22.7, 32.7, 42.5, 42.6, 44.0, 44.1 and similar. Until the day this record was published we had never seen a single site reporting 11.0.2 at all. One has since updated to it.

miniOrange ships the same underlying extension as several separately numbered editions, which is the problem Patchstack documented on the WordPress side under the title One slug, seven editions. Their write-up was about exactly this: the bug was fixed, but a large number of sites and enterprise customers had no way of working out whether their build was one of the fixed ones. That same trap has now arrived on the Joomla side.

A site reporting version 44.0 is not “newer than 11.0.2”. It is on a different numbering scheme, and for two days nobody outside miniOrange could say whether it was fixed. So we asked them. Their first answer settled the free editions and left the paid ones exactly where they were. Their second, thirty hours later, finally gave the paid editions a number. The rule survives both: do not read a big version number as reassurance.

What miniOrange told us

On 25 August we put a narrow question to miniOrange through their own support form: for Joomla, what are the exact fixed versions of each of your products affected by this round of vulnerabilities?

They answered the next morning, which is already more than the WordPress side got. Nutan Barad of miniOrange sent this table, prefaced with five words that matter as much as the numbers do: “All are the free versions.”

This table is a record of 26 August, not your update target

Every number below has since been superseded by CVE-2026-78074, which shipped on 31 August and moved each of these free editions up one release. It is kept here because the rest of this section is about what the table did and did not say at the time. For the version to actually install, use the table of 23.

miniOrange product for JoomlaFixed versionIn a CVE record?
SAML SSO for Joomla11.0.2CVE-2026-77998
SAML SP Single Sign-On, Login with ADFS6.4CVE-2026-77998
SAML SSO Login with Google Apps6.4CVE-2026-77998
miniOrange OAuth Client3.2.0CVE-2026-77995
OAuth Single Sign-On, OIDC SSO, Login with Azure AD1.2.2No
Login with Keycloak OAuth Single Sign-On (SSO)1.2.2No
Single Sign-On for Educational Institutes1.2.2No

Three things are worth pulling out of that.

The first is that it confirms both CVE records. The 11.0.2, 6.4 and 3.2.0 figures match what the Joomla CNA published, so if you are on a free edition you now have a number you can act on with some confidence behind it.

The second is that three of those extensions were, at the time, fixed with no CVE at all. The Azure AD, Keycloak and Educational Institutes editions are each given as fixed in 1.2.2, and on 26 August neither published record mentioned any of them, so anyone running one had no advisory to be warned by. That has since been put right: the revision to CVE-2026-77998 later the same evening added all three, at an affected range of 1.0.0 to 1.2.1. They are named again in CVE-2026-78074, where the number moves on to 1.2.3.

The third is the one that mattered most, and it was the sentence above the table rather than anything in it. Every version quoted is for the free edition. The paid editions, the ones on that two-segment numbering line, were left unanswered.

So a site reporting 42.6 or 44.0 was exactly where it had been before we asked. We had read the vulnerable code in a live install on the 42.x line, where the tri-state openssl_verify() return was still being tested for truthiness, so that build was affected and its owner still had no version number to compare themselves against.

That was the WordPress story arriving on Joomla almost word for word. Both WordPress flaws were fixed back in July, the vendor’s advisory covered only the free edition, the paid editions were never told, and those are the sites that got broken into.

So we went back to miniOrange and asked for the paid-edition build numbers.

The paid editions, answered

That gap lasted about thirty hours.

At 12:07 on 26 August, miniOrange emailed its paying Joomla customers directly, under the subject “Urgent! Critical fix released for miniOrange Joomla SAML SP Plugin. Update Now!”. This time the numbers were the ones the free table left out:

SAML SP editionAffected up toFixed in
Basic13.113.2
Standard24.124.2
Premium34.134.2
Enterprise44.144.2

David Jardin of the Joomla Security Strike Team posted the same four numbers publicly half an hour later, so this does not rest on a single forwarded email.

Those four rows decode the whole thing. The leading digit is the edition, not the age. A version in the 40s is an Enterprise build, the 30s are Premium, the 20s are Standard, and the low numbers are Basic or free, which share that range. A site on 44.0 was never “newer than 11.0.2”. It was an Enterprise build two releases behind its own line’s fix. Read that way, every version we have seen in the wild falls into place: 22.7 is a Standard build needing 24.2, 32.7 is a Premium build needing 34.2, 42.6 and 44.1 are Enterprise builds needing 44.2.

There is a trap in the update path

miniOrange say that 13.0, 13.1, 24.0, 24.1, 34.0, 34.1, 44.0 and 44.1 can take the fixed version straight over the top, but anything below 13.0, 24.0, 34.0 or 44.0 has to be uninstalled first and then reinstalled. On a site where SAML is the only way anybody signs in, uninstalling the SAML plugin locks everyone out, administrators included. Before you remove anything, confirm you have a local Joomla Super User account whose password you have actually tested, and take a backup. If the plugin was customised for you, save its configuration and tell miniOrange before you replace it.

One of the two gaps has closed

The CVE record moved the same evening. At 22:35 UTC on 26 August, hours after we published the complaint above, CVE-2026-77998 was revised to describe the paid line: SAML SSO Basic affected to 13.1.0, Standard to 24.1.0, Premium to 34.1.0 and Enterprise to 44.1.0, alongside the ADFS and Google Apps editions at 6.3.0 and the three OIDC extensions at 1.2.1. An automated check reading that record now flags a site on 34.1 correctly, which is the outcome that matters. We are spelling that out because the version of this post you may have read a week ago said the opposite.

The paid OAuth Client editions, answered by the vendor

That left one question outstanding for eleven days, and we put it to miniOrange twice. Joomla sites report com_miniorange_oauth versions such as 13.0.0, 21.0.1, 32.0.0, 32.0.2 and 34.0.0, which on the scheme above are Basic, Standard and Premium builds, and the only fixed versions ever published for that extension are the free 3.2.0 for CVE-2026-77995 and 3.2.1 for CVE-2026-78074.

On 4 September miniOrange answered it. Their position is that CVE-2026-77995 “was associated only with the free version of the OAuth Client plugin”, that their investigation “confirmed that the vulnerability was not present in any version of the paid OAuth plugins”, and that this is precisely why no paid security build and no customer communication ever followed. On that account there was never a gap to close: the paid editions were not affected, so there was nothing to publish.

What that answer is, and what it is not

It is the vendor’s own investigation, stated in writing, and it is the answer we asked for. It is not a change to the published record, which still names one product, “miniOrange OAuth Client extension for Joomla”, with no edition qualifier at all. Anyone reading CVE-2026-77995 on its own still cannot tell that the paid line was assessed and cleared, because the record does not say so.

Weigh it against what happened three records ago. miniOrange scoped the SAML fixes to the free line too, and told us in writing that “all are the free versions”. Thirty hours later they shipped security releases for all four paid SAML editions, and the CVE record was widened to name every one of them. The same vendor has now twice said a flaw stopped at the free line. The first time that turned out to be wrong.

So this is reasonable evidence rather than proof, and the honest thing is to say which it is. If you run a paid OAuth Client build and want more than a vendor’s assurance, ask them to put the assessed version range in the CVE record itself, where an automated check can read it.

What to do about the SAML bypass

If your site runs a free edition, do not use the 26 August table above as your target. Those numbers close this record and have since been superseded by CVE-2026-78074, so updating to 11.0.2, 6.4 or 1.2.2 today leaves the third flaw open. Go to the table of 23 and take the number there, which closes both.

If it runs a paid SAML SP edition, update it to 13.2, 24.2, 34.2 or 44.2 according to your plan, reading the leading digit of your current version to work out which line you are on. That is the end of it for you, because CVE-2026-78074 does not touch the paid editions.

If your site runs a paid OAuth Client edition, miniOrange say there is nothing for you to do, because the flaw was never in a paid build. There is therefore no number to install. Read what that answer rests on before treating the question as shut.

In the meantime, if the site can function without it, disable or remove the extension. An SSO extension that will log an anonymous visitor in as an administrator is worse than no SSO for the day or two it takes to get a straight answer. If you cannot remove it, restrict access to the Joomla administrator area by IP or by network while you wait.

Then check whether it has already been used, the same way as for the OAuth flaw: unfamiliar administrator or Super User accounts, recently created or modified users, and administrator sessions in your logs from addresses that are not yours.

The third flaw: CVE-2026-78074, an unauthenticated uninstall

On 31 August 2026 the Joomla CNA published a third record against the same vendor, CVE-2026-78074, and it names 23 miniOrange extensions rather than one. Krzysztof Zając of CERT PL found this one too.

This one is a different class of flaw from the two above. A miniOrange endpoint is missing its authentication check, so an unauthenticated visitor can tell the site to uninstall an extension, and the site does it. Any extension, not just a miniOrange one.

Why an uninstall is worse than it sounds

An uninstall does considerably more than switch the extension off. Joomla runs the extension’s own uninstall script and drops the database tables that go with it, so the content and configuration held in those tables goes too, and no amount of reinstalling brings it back without a backup. Point that at a forum, a shop or a form builder and the damage is measured in whatever the last backup missed.

The second-order problem is what an attacker would aim it at first. Nothing restricts the target to the vendor’s own extensions, so a two-factor plugin, an admin-IP restriction, a security extension or a login handler can all be removed by someone with no account on the site. That is a useful thing to do immediately before trying something else.

The record scores it CVSS 4.0 8.8 High under CWE-284: Improper Access Control, below the two 10.0 records above it, and the vector says why: VC:N, no confidentiality impact. The attacker destroys, it does not read.

The 23 extensions and what fixes each

miniOrange released the fix for all of these on 31 August 2026, with Two Factor Authentication following on 1 September. We checked every number below against the extension’s own Joomla Extensions Directory listing rather than accepting the vendor’s list, and the release dates match.

Only the free editions are affected. The CVE says so in its own description, every range it publishes stops on the free numbering line, and miniOrange confirmed it to us in writing. Paid builds on the decade numbering, the 12.x, 21.x, 32.x and 44.x versions, are outside this record.

miniOrange extension for JoomlaAffected up toFixed in
SAML SSO for Joomla11.0.211.0.3
miniOrange OAuth Client3.2.03.2.1
SAML SP Single Sign On, Login with ADFS6.46.5
SAML SSO login with Google Apps6.46.5
OAuth Single Sign-On, OIDC SSO, Login with Azure AD1.2.21.2.3
Login with Keycloak OAuth Single Sign-On1.2.21.2.3
Single Sign On for Educational Institutes1.2.21.2.3
SAML 2.0 IDP for Joomla7.77.8
OAuth Server for Joomla5.1.55.1.6
Two Factor Authentication 2FA for Joomla5.0.95.0.10
OTP Verification For Joomla6.66.7
LDAP Integration with Active Directory and OpenLDAP6.4.76.4.8
Import Export Users for Joomla4.64.7
Custom API for Joomla4.24.3
SCIM User Provisioning for Joomla4.0.54.0.6
Restrict Files / Folders / Media Access3.73.8
Web3, Crypto wallet Login and NFT token gating3.5.13.5.2
Staff/Employee Business Directory Search for Active Directory2.0.42.0.5
Okta User Sync / Bi-directional user management1.1.01.1.1
Keycloak user sync / User management1.1.01.1.1
miniOrange User Provisioning with Azure1.1.01.1.1
JoomAI, AI Assistant for Joomla1.0.51.0.6
JoomShield by miniOrange1.0.21.0.3

Patching in August was not enough

Seven of those rows supersede a fix from the previous round, so the sites most likely to be caught out are the ones that did the right thing a week ago. The OAuth Client’s 3.2.0 closed CVE-2026-77995 and is affected by this one, which needs 3.2.1. SAML SSO’s 11.0.2 closed CVE-2026-77998 and needs 11.0.3. The ADFS and Google Apps editions were fixed at 6.4 and now need 6.5. The three OIDC extensions were fixed at 1.2.2 and now need 1.2.3. If you updated in late August and stopped, update again.

Across the Joomla sites we monitor that run a miniOrange component, 53% are on a build this record covers, which is the highest share of any of the three.

What to do about the uninstall flaw

Update every miniOrange extension on the site to the version in the table, not just the one you were told about last time. The extension inventory is the quickest way to see which of the 23 you actually run and at what version, because several of them install under a display name that does not match the name in the CVE: the Restrict Files extension reports itself as the Joomla Content Access Manager, and the OAuth Client, the OAuth Server and the Azure AD extension all share one element and are told apart only by that name.

If an extension is installed but not actually used, remove it rather than updating it. Several of these turn up on sites that trialled a single sign-on option years ago and left the component behind, and an unused component is a live endpoint regardless.

Where you cannot update immediately, block unauthenticated access to the component’s endpoints at the firewall or in the web server. Unlike the two bypasses above, there is no compromise to hunt for afterwards. If this one was used against a site you would know, because something would be missing.

The part worth remembering

Days before this Joomla record appeared, the same vendor was in the WordPress security news for two critical unauthenticated authentication bypasses in its SAML Single Sign On plugin, both letting an attacker forge their way into /wp-admin as any user. Different extension, different platform, but the same vendor and the same underlying idea: an authentication extension trusting a value the attacker gets to set. That write-up is worth reading in full, not least for the way one WordPress listing turned out to hide seven separately versioned editions, which is the same version-numbering trap to watch for on the Joomla side.

We saw the WordPress write-up on 21 August, thought the vendor’s Joomla extensions deserved the same scrutiny, and forwarded it to the Joomla Security Strike Team that evening. Four days later there were two Joomla records. The OAuth one, CVE-2026-77995, was found by CERT PL and the credit there is theirs. The SAML one, CVE-2026-77998, is credited to us alongside Supakiad S. (m3ez). The lesson is the one we acted on: when a vendor ships a trust-the-client authentication flaw on one CMS, its extensions on the other CMS are worth checking straight away, rather than waiting for a separate disclosure to arrive on its own schedule.

There is a bigger version of this problem sitting behind the specific one. Plenty of extensions ship in both a WordPress and a Joomla edition, built by the same vendor from broadly the same ideas, and it is almost always the WordPress side that gets the security news first. Not because WordPress is more exposed, but because WordPress has Patchstack and Wordfence: funded projects whose whole job is to find these flaws, coordinate the disclosure with the vendor, and push the alert out to the people running the software. Joomla has no equivalent. When a Joomla extension is fixed, there is often nothing between the vendor’s changelog and the next hacked site. So the Joomla edition of a shared flaw tends to arrive later, with less noise around it, on sites whose owners never saw the WordPress headline that would have warned them.

That gap is a good part of why we write these up at all, and why we check a vendor’s Joomla extensions the moment its WordPress ones make the news. We track known security issues across every extension on every site we monitor, because a single vendor’s mistake rarely stays inside one product or one platform, and the sites that get hurt are the ones where nobody was watching the version numbers.

The scores

CVE-2026-77995, miniOrange OAuth Client

10.0CVSS 4.0

CriticalThe Joomla CNA’s score, and the maximum possible

CVE-2026-77995 is scored AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H, which is every metric at its worst: reachable over the network, no login, no user interaction, nothing that has to be true first, and consequences that reach past the extension into the system around it. The record is titled “Joomla Extension - miniorange.com - Arbitrary account takeover in miniOrange OAuth Client < 3.2.0”.

CVE-2026-77995Full account takeoverCookie manipulationNo login neededReaches admin accounts
FieldDetail
ExtensionminiOrange OAuth Client for Joomla (com_miniorange_oauth)
VendorminiOrange (miniorange.com)
TypeAuthentication bypass leading to account takeover
CVECVE-2026-77995, published 24 August 2026 by the Joomla CNA
CVSS 4.010.0 (critical), AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
CWECWE-287: Improper Authentication
Affected versions1.0.0 up to and including 3.1.9
Fixed in3.2.0
FinderKrzysztof Zając, CERT PL, credited in the CVE record

CVE-2026-77998, miniOrange SAML SSO

10.0CVSS 4.0

CriticalThe second maximum score against this vendor in two days

CVE-2026-77998 is scored AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H. A malformed SAML signature makes OpenSSL error, the error return value of -1 is read as a successful verification, and the attacker is logged in as whichever account they named.

CVE-2026-77998SAML signature bypassNo login neededReaches admin accountsVersion numbering unreliable
FieldDetail
ExtensionminiOrange SAML SSO for Joomla (com_miniorange_saml)
VendorminiOrange (miniorange.com)
TypeAuthentication bypass leading to account takeover
CVECVE-2026-77998, published 25 August 2026 by the Joomla CNA
CVSS 4.010.0 (critical), AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
CWECWE-639: Authorization Bypass Through User-Controlled Key
Affected versionsFree 1.0.0 to 11.0.1. Paid Basic to 13.1.0, Standard to 24.1.0, Premium to 34.1.0, Enterprise to 44.1.0. ADFS and Google Apps to 6.3.0, the three OIDC extensions to 1.2.1. The record was revised to this wider scope on 26 August 2026; it originally listed the free range alone
Fixed inFree editions 11.0.2, and 6.4 for ADFS and Google Apps. Paid SAML SP editions 13.2 Basic, 24.2 Standard, 34.2 Premium, 44.2 Enterprise. Note that CVE-2026-78074 later supersedes several of these
FinderSupakiad S. (m3ez) and Phil Taylor, mySites.guru, both credited in the CVE record

CVE-2026-78074, 23 miniOrange extensions

8.8CVSS 4.0

HighThe Joomla CNA's published record · CVE-2026-78074

A missing authentication check lets an unauthenticated visitor uninstall any extension on the site, running its uninstall script and dropping its database tables. It scores below the two records above it because there is no confidentiality impact: the attacker destroys rather than reads.

AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
Remote uninstallNo login neededDestroys data23 extensionsFree editions only
FieldDetail
Extensions23 miniOrange extensions for Joomla, free editions only
VendorminiOrange (miniorange.com)
TypeImproper access control leading to unauthenticated arbitrary extension uninstallation
CVECVE-2026-78074, published 31 August 2026 by the Joomla CNA
CVSS 4.08.8 (high), AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
CWECWE-284: Improper Access Control
Affected versionsOne range per extension, all on the free numbering line. See the table above
Fixed inOne version per extension, released 31 August 2026, with Two Factor Authentication on 1 September
FinderKrzysztof Zając, CERT PL, credited in the CVE record

Timeline

  1. The WordPress side is already being attacked

    DigitalOcean catches an unrecognised WordPress administrator session. The identical misreading of openssl_verify() there is CVE-2026-15981, reported as exploited in the wild and chained with a second flaw in the same plugin.

  2. We forward the WordPress write-up to the Joomla Strike Team

    We saw the Patchstack write-up that day, thought the vendor's Joomla extensions deserved the same scrutiny, and passed it on the same evening. We did not audit these extensions ourselves.

  3. CVE-2026-77995 is published for the OAuth Client at CVSS 10.0

    "The manipulation of a cookie value allows actors to login as arbitrary accounts, including admins." Affected range 1.0.0 to 3.1.9, fixed in 3.2.0. Found by Krzysztof Zajac of CERT PL, and the credit there is theirs.

  4. CVE-2026-77998 is published for SAML SSO, also at CVSS 10.0

    A different extension, and the one that matters more if you use miniOrange for single sign-on. Credited to mySites.guru alongside Supakiad S. Four days after the forward.

  5. We ask miniOrange a deliberately narrow question

    Through their own support form: for Joomla, what are the exact fixed versions of each of your products affected by this round. The published records are written on version numbers that do not match what real installs report.

  6. miniOrange answers, and the table includes three extensions fixed with no CVE at all

    The full list of fixed versions for every affected Joomla product, which is what an administrator actually needs and what no CVE record gave them. One line above the table limits all of it: all are the free versions.

  7. The paid editions are released with the fix, and finally have version numbers

    Thirty hours after telling us the numbers were free editions only, miniOrange emails its paying customers a per-edition table. SAML SP Basic is fixed in 13.2, Standard in 24.2, Premium in 34.2, Enterprise in 44.2, with everything up to 13.1, 24.1, 34.1 and 44.1 affected. David Jardin of the Joomla Security Strike Team posts the same four numbers publicly the same lunchtime, which is the first time any of them appear outside a customer mailbox.

  8. The CVE record still says 1.0.0 to 11.0.1

    Checked straight after the paid versions were announced. The published record was last updated that morning, before the announcement, and still describes the free line only. Anyone comparing a paid install against CVE-2026-77998 alone is told they are fine when they are not.

  9. That gap closes the same evening

    CVE-2026-77998 is revised at 22:35 UTC to name all four paid editions (Basic to 13.1.0, Standard to 24.1.0, Premium to 34.1.0, Enterprise to 44.1.0), plus the ADFS and Google Apps editions and the three OIDC ones that had no record at all. An automated check reading the record now flags a paid install correctly.

  10. A third record, CVE-2026-78074, and this time 23 extensions

    A different flaw from the two bypasses: a missing authentication check lets an unauthenticated visitor uninstall any extension on the site, dropping its database tables with it. CVSS 8.8 High, CWE-284, credited to Krzysztof Zajac of CERT PL again. The record limits it to the free editions in its own description.

  11. miniOrange ships fixes for all 23 the same day

    Every affected free edition gets a release, confirmed against the Joomla Extensions Directory rather than the vendor's word. Two of the numbers move past the earlier fixes: OAuth Client needs 3.2.1 rather than 3.2.0, and SAML SSO needs 11.0.3 rather than 11.0.2.

  12. Two Factor Authentication follows in 5.0.10

    The last of the 23, a day behind the rest. At this point the CVE record disagreed with itself here, giving 5.1.0 in its HTML solution block and 5.0.10 in the plain-text one. The directory listing and the vendor both say 5.0.10.

  13. miniOrange write to us asking for the fixed versions to be published

    Nutan Barad reports users arriving at their support desk from our coverage, sends the table of 23 fixed versions, and states that no paid edition is affected by this record. Asked why paying customers were emailed about a vulnerability in late August, they point out that message was CVE-2026-77998, a separate flaw that did affect the paid editions. That checks out against both records.

  14. miniOrange close the last open question, on their own word

    Asked a second time about the paid OAuth Client editions, miniOrange reply that CVE-2026-77995 was associated only with the free plugin and that their investigation found the flaw in no paid build, which is why no paid security release ever followed. It is the answer we asked for. It is also not a change to the record, which still names one product with no edition qualifier, and the same vendor scoped the SAML fixes to the free line before widening them to all four paid editions thirty hours later.

  15. The Joomla CNA corrects both errors within the hour

    We checked all 23 fixed versions against their Joomla Extensions Directory listings rather than publishing the vendor's list on trust, found two wrong entries in the record's own solution block, and reported them to the CNA. Two Factor Authentication now reads 5.0.10 rather than 5.1.0, and Import Export Users reads 4.7 rather than the truncated "4.". The revision is timestamped 10:30 UTC, about half an hour after the report.

Further Reading

Frequently Asked Questions

I am on a free build. Which of the three records affect me, and what do I install?
All three can affect a free build, and one number closes all three. Work out that you are on the free line first: with miniOrange the leading digit of the version is the edition rather than the age, so a low number such as 3.0.2, 6.4, 11.0.2 or 1.2.2 is free, while anything in the tens is paid (10s Basic, 20s Standard, 30s Premium, 40s Enterprise). For a free build, go to the CVE-2026-78074 table of 23 fixed versions and install the number listed for your extension. That single version closes all three records, because CVE-2026-78074 was fixed last and its number sits above the earlier fixes: the OAuth Client's 3.2.1 covers the 3.2.0 that fixed CVE-2026-77995, SAML SSO's 11.0.3 covers 11.0.2, the ADFS and Google Apps 6.5 covers 6.4, and the OIDC extensions' 1.2.3 covers 1.2.2. Do not stop at the older numbers, because they leave the third flaw open.
I am on a paid build. Which of the three records affect me?
Two of the three, and the answer depends on which extension. CVE-2026-78074 does not affect you at all: that record limits itself to the free editions in its own description, and miniOrange confirmed it in writing on 4 September 2026. CVE-2026-77998 does affect the paid SAML SP editions, which are affected up to 13.1, 24.1, 34.1 and 44.1 and fixed in 13.2, 24.2, 34.2 and 44.2 respectively; the CVE record was revised on the evening of 26 August 2026 to name all four, having originally described the free line alone. CVE-2026-77995 in the OAuth Client was the open one for eleven days, and miniOrange answered it on 4 September 2026: they say the flaw was associated only with the free plugin, that their investigation found it in no version of the paid OAuth editions, and that this is why no paid security build was ever released. So on the vendor's account a paid OAuth Client build needs nothing. Two things to weigh. That is the vendor's own assessment rather than a change to the record, which still names one product with no edition qualifier, so nothing an automated check reads will tell you the paid line was cleared. And the same vendor scoped the SAML fixes to the free line before shipping paid security releases for all four editions thirty hours later, so a free-line scoping from miniOrange has been wrong once already.
What is the miniOrange OAuth Client vulnerability?
CVE-2026-77995 is an unauthenticated account takeover in the miniOrange OAuth Client extension for Joomla, scored CVSS 10.0, the maximum. Manipulating a single cookie value lets an attacker with no login sign in as any account on the site, administrators included. There is no form to fill in and no credential to guess: the extension trusts a value the visitor controls to decide who they are. It affects every version from 1.0.0 up to and including 3.1.9, and is fixed in 3.2.0.
Which version fixes it, and how do I update?
Version 3.2.0 fixes this particular record in the free edition, but 3.2.0 is no longer the version to install. A third record, CVE-2026-78074, was published on 31 August 2026 against the same extension and is fixed in 3.2.1, so 3.2.1 or later is the number you actually want and it closes both. Update the miniOrange OAuth Client to 3.2.1 or later on every Joomla site that runs it. Be careful reading the version number, because miniOrange ships the same extension as several separately numbered editions and the leading digit is the edition rather than the age: the 20s are Standard, the 30s are Premium and the 40s are Enterprise. A site reporting 32.0.2 is a Premium build, not something newer than 3.2.0. miniOrange named the fixed versions for the paid SAML SP editions on 26 August 2026, and on 4 September 2026 told us the paid OAuth Client editions were never affected by this flaw at all, which is why no equivalent build exists for them. That is the vendor's own assessment and the published record still names one product with no edition qualifier, so treat it as a strong answer rather than a settled one. If you cannot update straight away, disable or remove the extension rather than leaving an anonymous admin login open.
How do I find every site running this extension?
Manually you would log in to each Joomla site in turn and read its installed extensions list. With mySites.guru you open the extension inventory, search for miniOrange OAuth, and see every connected site running it, with its installed version, on one screen. Anything below 3.2.1 needs the update, because 3.2.1 closes both CVE-2026-77995 and the later CVE-2026-78074, and you can push updates from the same place instead of touching each site by hand.
My site was on a vulnerable version. How do I know if it was used?
Updating closes the door but does not tell you whether anyone already walked through it. Because the flaw hands an attacker an administrator session, look first at your Joomla user list for administrator or super user accounts you do not recognise, and at recently created or recently modified user accounts. Check the Joomla action logs and your web server access logs for administrator sessions from IP addresses outside your normal ranges. Look for unexpected changes to templates, extensions or user permissions made around the time in question. If anything looks wrong, treat it as a compromise and clean the site properly rather than only updating the extension.
Is this the same bug as the miniOrange WordPress one in the news?
It started there. In July 2026 two critical unauthenticated authentication bypasses were disclosed in miniOrange's SAML Single Sign On plugin for WordPress, both letting an attacker sign in as any WordPress user. That prompted a look at the same vendor's Joomla extensions, and two Joomla records followed: CVE-2026-77995 in the OAuth Client, and CVE-2026-77998 in miniOrange SAML SSO for Joomla, which is the Joomla equivalent of the WordPress SAML flaw. Same vendor, same class of trust-the-client flaw, twice on Joomla after once on WordPress.
What is CVE-2026-77998 in miniOrange SAML SSO for Joomla?
It is an unauthenticated authentication bypass in miniOrange's SAML Single Sign On extension for Joomla, scored CVSS 4.0 10.0, the maximum. The extension checks a SAML signature by calling PHP's openssl_verify(), which returns three possible values: 1 for a valid signature, 0 for an invalid one, and -1 when OpenSSL hits an error. The code tests that result as a simple true or false, and -1 counts as true. So an attacker sends a SAML response naming whichever account they want with a deliberately broken signature, OpenSSL errors, the error is read as success, and they are logged in as that user. Administrators included. No login and no credential needed.
Is anyone actually exploiting this?
The same flaw in the same vendor's WordPress plugin is being exploited right now. It is tracked there as CVE-2026-15981, Patchstack report attempts and opportunistic scanning from six addresses across Europe, Africa and the United States, DigitalOcean caught an unrecognised WordPress administrator session on 16 August, and a working proof of concept is public. We have seen no reports yet of the Joomla record being attacked, but it was only published on 25 August, the mechanism is the same, and attackers already have working code for the other platform. The WordPress lesson is the one to take: both flaws were fixed in July, the vendor only told customers on the free edition, the paid editions got no dashboard warning, and those are the sites being broken into now.
My Joomla site shows miniOrange SAML version 44.0. Am I patched?
No. Version 44.0 is an Enterprise edition build, and the Enterprise line is fixed in 44.2. On 26 August 2026 miniOrange emailed its paying customers the fixed version for every paid edition of the SAML SP plugin: Basic is fixed in 13.2, Standard in 24.2, Premium in 34.2 and Enterprise in 44.2, with everything up to 13.1, 24.1, 34.1 and 44.1 affected. That also decodes the numbering: the leading digit tells you the edition rather than the age, so 44.0 was never newer than the free edition's 11.0.2. Two things go with it. For two days the published CVE record gave its affected range as 1.0.0 to 11.0.1, the free line only, so a paid install checked against it read as clean; that was corrected on the evening of 26 August and the record now names all four paid editions. And if your version is below 13.0, 24.0, 34.0 or 44.0, miniOrange say you cannot update over the top and have to uninstall first, which on a site where SAML is the only login method is how you lock yourself out.
Which miniOrange Joomla extensions are affected, and which versions fix them?
There are two sets of numbers, one for the free editions and one for the paid ones. For the free editions, miniOrange gave us seven products on 26 August 2026. SAML SSO for Joomla is fixed in 11.0.2. SAML SP Single Sign-On with Login with ADFS, and SAML SSO Login with Google Apps, are both fixed in 6.4. miniOrange OAuth Client is fixed in 3.2.0. OAuth Single Sign-On with OIDC SSO and Login with Azure AD, Login with Keycloak OAuth Single Sign-On, and Single Sign-On for Educational Institutes are each fixed in 1.2.2. For the paid SAML SP editions, announced later the same day: Basic is fixed in 13.2, Standard in 24.2, Premium in 34.2 and Enterprise in 44.2. Those numbers all address CVE-2026-77998 and CVE-2026-77995. A third record, CVE-2026-78074, arrived on 31 August against 23 miniOrange extensions and needs a further update on top: OAuth Client 3.2.1, SAML SSO 11.0.3, and a separate number for each of the other 21. The paid editions of the OAuth Client are the one remaining gap. Joomla sites report OAuth Client versions such as 13.0.0, 21.0.1 and 34.0.0, which are paid builds on the same edition numbering, and CVE-2026-77995 has never been re-scoped to name them.
How do I update without locking myself out of the site?
The update path is not the same for everyone, which is what catches people out. miniOrange say that if your paid SAML SP version is 13.0, 13.1, 24.0, 24.1, 34.0, 34.1, 44.0 or 44.1, you can install the fixed version straight over the top. If you are below 13.0, 24.0, 34.0 or 44.0, you have to uninstall the current plugin first and then install the latest one. On a site where SAML single sign-on is the only way anybody signs in, uninstalling the SAML plugin locks every user out, administrators included, until the new one is installed and reconfigured. Before you remove anything, make sure you have a local Joomla Super User account with a password you know and have tested, and take a backup. If you had custom modifications made to the plugin, back up its configuration first and tell miniOrange, because a clean install discards them.
What is CVE-2026-78074, the third miniOrange record?
It is a different flaw from the two authentication bypasses and it names far more extensions. A miniOrange endpoint is missing its authentication check, so an unauthenticated visitor can uninstall any extension on the site. Uninstalling runs the extension's uninstall script and drops its database tables, so the damage is destructive rather than temporary, and it can be pointed at anything installed, including the site's security and login extensions. It is scored CVSS 4.0 8.8 High under CWE-284 Improper Access Control, lower than the two 10.0 records because the attacker destroys rather than reads: there is no confidentiality impact. The Joomla CNA published it on 31 August 2026, credited to Krzysztof Zajac of CERT PL, and it names 23 miniOrange extensions for Joomla.
Which version fixes CVE-2026-78074?
A different one for each of the 23 extensions, and for two of them the number is higher than the version that fixed the earlier flaw. The miniOrange OAuth Client needs 3.2.1, not the 3.2.0 that fixed CVE-2026-77995, and SAML SSO for Joomla needs 11.0.3 rather than 11.0.2. A site that updated in late August for the account takeover is therefore still exposed to this one until it updates again. The full table of 23 fixed versions is in this post. miniOrange released all of them on 31 August 2026, with Two Factor Authentication following on 1 September, and we confirmed each number against the Joomla Extensions Directory listing rather than taking the vendor's word for it.
Does CVE-2026-78074 affect the paid miniOrange editions too?
No, and this is the one place where the vendor's free-only scoping holds up. The CVE record states in its own description that only the free versions of the miniOrange extensions are affected, and every affected range it lists stops on the free numbering line rather than the paid one. miniOrange confirmed the same in writing on 4 September 2026. That distinction matters, because the earlier SAML record, CVE-2026-77998, was initially scoped to the free line and later had to be widened to name all four paid editions. The two look alike without being the same case: this record was written that way on purpose, and the vendor's separate email to paying customers in late August was about CVE-2026-77998 rather than this one.
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
Artful Web Print Design
Artful Web Print Designartful.com.au
★★★★★

Having all our managed sites in one place is an incredible a time saver not to mention receiving the heads up on updates and vulnerabilities, tracking php versions and software via tagging. Invaluable to our business.

Read more reviews

Read all 282 reviews →

Ready to Take Control?

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

Get Your Free Site Audit