CRITICAL 9.9 CVE-2026-57149 Published 22 Sept 2026

Plone Classic Portlet TALES Expression Code Execution Vulnerability

Worried this affects your website?

A code execution vulnerability was found in plone.app.portlets, the Plone portlets package. The Classic portlet used its user-supplied template/macro fields to build a TALES path expression that was then evaluated by the TAL path() helper. Because the value was interpreted as a full TALES expression, a user able to add or edit a Classic portlet could supply a crafted value that escapes simple path traversal and is evaluated as arbitrary code.

This is exploitable by any authenticated user who can configure a Classic portlet. With the default role map, regular users can configure one on their personal dashboard. The result is code execution in the context of the Plone process, i.e. a privilege escalation across the trust boundary between an authenticated web user and the server-side process.

Affected versions and patches:

  • Affected: 5.0.0 through before 5.0.8, 6.0.0 through before 6.0.4, and 7.0.0 through before 7.0.2.
  • Patched: 5.0.8, 6.0.4, and 7.0.2.

Workarounds:

  • Restrict who can manage portlets: remove the plone.app.portlets.ManageOwnPortlets permission from untrusted roles, and limit Manage portlets to trusted administrators.
  • Unregister the Classic portlet if it is not needed by editing a portlets.xml in your own code.
  • Customize the classic.pt template to disable it, for example by replacing its content with the text 'The classic portlet was disabled.'

Reference: CVE-2026-57149 on NVD

← Back to Security News