Vulnerability in plone.app.portlets (CVE-2026-57149)
Summary
Vulnerability in plone.app.portlets (CVE-2026-57149). Successful exploitation can lead to full system takeover. Exploitable via plone.app.portlets. Mitigation: upgrade to 5.0.8 or later.
Original description
The description as published by the source.
Impact
The Classic portlet (plone.app.portlets.portlets.classic) 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 - which, with the default role map, includes regular users 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.
Patches
The problem has been patched in plone.app.portlets
- For Plone 6.2, upgrade to
plone.app.portlets7.0.2. - For Plone 6.1, upgrade to
plone.app.portlets6.0.4. - For Plone 6.0, upgrade to
plone.app.portlets5.0.8.
Workarounds
If upgrading is not immediately possible:
- Restrict who can manage portlets: remove the
plone.app.portlets.ManageOwnPortletspermission from untrusted roles, and limit Manage portlets to trusted administrators (usually this is already restricted to the Manager and Site Administrator roles). - Where the Classic portlet is not needed, unregister it so it cannot be added. This would need to be done by editing a
portlets.xmlin your own code, so it is not a quick fix. - You could als…
Source: NIST National Vulnerability Database NVD GitHub Advisory
Auto-generated summary
Assembled by SecPulse from the source data (CVSS, CWE, affected versions) using templates — no AI involved. Check the original description and references below for exact details.
A vulnerability tracked as CVE-2026-57149 has been found in plone.app.portlets.
Attackers can target a specific entry point like plone.app.portlets over the network to misuse the product.
Successful exploitation can lead to full system takeover. CVSS score: 9.9/10.
What to do: upgrade plone.app.portlets to 5.0.8 or later.
If unsure, ask your IT team or search "plone.app.portlets CVE-2026-57149" on the vendor's site.
CVE-2026-57149 (plone.app.portlets) — CWE-95 / CVSS v3 9.9
Attack vector: remote (network-reachable) / no user interaction
Attack surface: plone.app.portlets / plone.app.portlets.ManageOwnPortlets / portlets.xml / portal_view_customizations
Patched: 5.0.8 — apply immediately
Workaround: - Restrict who can manage portlets: remove the `plone.
Plan: 1) Audit SBOM/dependencies, 2) Stage→prod upgrade, 3) Add WAF/proxy monitoring on affected endpoints, 4) Hunt IOCs in logs.
Refs: see the GHSA / vendor advisory / patched release linked on this page.
A vulnerability (CWE-95) exists in plone.app.portlets. Attackers reach the vulnerable code path via plone.app.portlets.
Check the vendor advisory for the affected versions of plone.app.portlets. Attack surface: plone.app.portlets / plone.app.portlets.ManageOwnPortlets / portlets.xml / portal_view_customizations.
Severity: Critical (CVSS 9.9/10). Successful exploitation can lead to full system takeover.
Update to 5.0.8.
Workaround: - Restrict who can manage portlets: remove the `plone.
Search webserver/proxy logs for unusual request patterns matching this CVE's known IOCs. Run grep -r 'plone.app.portlets' . against your dependency files (package-lock.json, requirements.txt, go.sum) to find affected services.
Response actions
Concrete steps and command examples for SOC/SRE teams to execute in order
-
1Identify exposure identify
grep -r 'plone.app.portlets' . | grep -v node_modulesリポジトリと本番環境の依存ファイル (package-lock.json / requirements.txt / go.sum / Gemfile.lock 等) で
plone.app.portletsを grep し、稼働しているサービス・バージョンを把握する。 -
2Apply temporary workaround mitigate
- Restrict who can manage portlets: remove the `plone.パッチが適用されるまでの応急処置として、- Restrict who can manage portlets: remove the `plone. を実施。回避策の副作用 (機能低下) を確認した上で。
-
3Apply patch patch
Upgrade plone.app.portlets to 5.0.8ステージング環境で 5.0.8 に上げて回帰テスト → 本番反映。回帰テストはアプリの主要ハッピーパスを含めること。
-
4Post-deployment verification verify
Confirm patched version is live in productionパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。
Affected packages
References
- advisory nvd.nist.gov
- advisory github.com
- package github.com
- package pypi.org
- web github.com
- web github.com
- web github.com
- web github.com
- web github.com
- web github.com
- web github.com