TL;DR
The Plone/Zope Security Team released fixes on November 10, 2026, for a Plone remote code execution flaw chain. According to the team, it is “a chain of several issues, which together let an anonymous visitor run code on the server.” Every supported release is affected, and so are older versions back to at least Plone 4.3. The team’s message to site owners is short: “Please update now.”
Five advisories, four of them critical, combine into unauthenticated code execution on Plone sites. Fixed packages and a hotfix covering Plone 4.3 through 6.2 are available now. Update, restart Zope and check whether attackers already changed your versioning conditions.
Why It Matters
The top flaw scores CVSS 9.8 and needs no login. Moreover, the details are now public. The team warns that “with current AI tools it may not take long to turn them into a working exploit.” The CMFEditions advisory also states that “a working proof of concept exists,” though the team has not released it.
So far, nobody has reported attacks in the wild. However, a successful attack can leave changes in the database that survive patching, so checking for compromise matters. No CVE IDs have been assigned yet. The team says CVEs “have been requested and will be added to the advisories.”
How the Attack Works
Step one: anonymous access to versioning settings
The entry point sits in Products.CMFEditions (CVSS 9.8). Its conditional modifier classes “declare no security.” As a result, an anonymous visitor can reach a modifier object and change its TALES condition, title or size limits.
That condition later runs as code. An attacker can trigger it directly. Alternatively, it runs “when an editor saves versioned content,” so it can execute with an editor’s higher privileges even without the other bugs.
Step two: escaping the sandbox
Plone runs this kind of code inside Restricted Python, a sandbox. However, Products.CMFPlone, Products.MimetypesRegistry and plone.batching each opened whole modules to restricted code with allow_module. This exposed everything those modules import as well. According to the announcement, this “allowed restricted code (TALES expressions, Python Scripts) to escape the sandbox and reach modules like os.” Each of these three advisories is rated critical at CVSS 9.1.
A permission bypass in plone.restapi
Finally, plone.restapi opened Python’s json module to restricted code (CVSS 4.7). Some of its functions “could be used to call protected methods on any object.” The setting dates from 2015, and nothing in plone.restapi still needs it.
Who found it
Mokrane ABDELMALEK reported the issues through the Ghent University vulnerability disclosure programme. Andreas Jung also suggested extra hardening.
Affected Versions
- Plone 6.0, 6.1 and 6.2 before the fixed package versions below
- Plone 4.3, 5.0, 5.1 and 5.2, which are out of support but still affected
Patch and Mitigation
Update the packages
For Plone 6.2, install Products.CMFPlone 6.2.3, Products.CMFEditions 5.0.2, Products.MimetypesRegistry 4.0.2, plone.batching 3.0.3 and plone.restapi 10.2.1. For Plone 6.1, use CMFPlone 6.1.6 with CMFEditions 4.0.7, MimetypesRegistry 3.0.2, plone.batching 2.0.8 and plone.restapi 9.15.8. Plone 6.0 uses the same versions with CMFPlone 6.0.16.
Or install the hotfix
Older sites can install Products.PloneHotfix20261110, which works on Plone 4.3 through 6.2. Restart all Zope instances afterwards. In addition, keep blocking URLs that contain “portal_modifier” at your web server, as the pre-announcement advised.
Check for compromise
Log in as Manager and open @@check-modifier-conditions on the site root to compare conditions with the defaults. If you use the hotfix, watch the startup log for “POSSIBLE ATTACK: MODIFIED VERSIONING CONDITIONS FOUND.” If you do not recognize a changed condition, “treat your server as compromised.”
Note that custom Python Scripts may now hit Unauthorized errors if they imported other names from these modules. Given the public details, treat this Plone remote code execution chain as an emergency patch.
Support Our Threat Intelligence
Find our vulnerability reports and weekly recaps helpful? Support our work today and unlock a 100% ad-free reading experience!