CVE-2026-55248
plone.app.portlets: Denial of service via RSS feed portlet
plone.app.portlets provides portlets and a Plone-specific user interface for plone.portlets. Prior to 5.0.8, 6.0.4, and 7.0.2, a member who can add an RSS portlet can set its feed URL to a very large response, causing src/plone/app/portlets/portlets/rss.py to download and retain excessive data in memory and deny service. The same RSS URL handling accepts internal hosts, IP addresses, single-word domains, and explicit ports, allowing server-side requests that can probe internal network services and open ports. A malicious feed item can also supply a JavaScript URL that is retained as the item link and can execute script when used by a victim. The affected logic includes _rss_feed_url_validator, _normal_url_validator, RSSFeed._retrieveFeed, RSSFeed._buildItemDict, and the FEED_DATA in-memory cache. This issue is fixed in versions 5.0.8, 6.0.4, and 7.0.2.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
9.1
plone.app.portlets: Denial of service via RSS feed portlet
plone.app.portlets provides portlets and a Plone-specific user interface for plone.portlets. Prior to 5.0.8, 6.0.4, and 7.0.2, a member who can add an RSS portlet can set its feed URL to a very large response, causing src/plone/app/portlets/portlets/rss.py to download and retain excessive data in memory and deny service. The same RSS URL handling accepts internal hosts, IP addresses, single-word domains, and explicit ports, allowing server-side requests that can probe internal network services and open ports. A malicious feed item can also supply a JavaScript URL that is retained as the item link and can execute script when used by a victim. The affected logic includes _rss_feed_url_validator, _normal_url_validator, RSSFeed._retrieveFeed, RSSFeed._buildItemDict, and the FEED_DATA in-memory cache. This issue is fixed in versions 5.0.8, 6.0.4, and 7.0.2.
- Record
CVE-2026-55248- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:H - Weakness
- CWE-400
- Updated
- 2026-11-02
EUVDEUVD-2026-67864
9.1
plone.app.portlets provides portlets and a Plone-specific user interface for plone.portlets. Prior to 5.0.8, 6.0.4, and 7.0.2, a member who can add an RSS portlet can set its feed URL to a very large response, causing src/plone/app/portlets/portlets/rss.py to download and retain excessive data in memory and deny service. The same RSS URL handling accepts internal hosts, IP addresses, single-word domains, and explicit ports, allowing server-side requests that can probe internal network services and open ports. A malicious feed item can also supply a JavaScript URL that is retained as the item link and can execute script when used by a victim. The affected logic includes _rss_feed_url_validator, _normal_url_validator, RSSFeed._retrieveFeed, RSSFeed._buildItemDict, and the FEED_DATA in-memory cache. This issue is fixed in versions 5.0.8, 6.0.4, and 7.0.2.
- Record
EUVD-2026-67864- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-x5g3-w747-2h8q
9.1
plone.app.portlets vulnerable to denial of service via RSS feed portlet
Impact
By adding an RSS portlet, and giving this a link to a very large file, a member can cause a denial of service attack, because Plone will use lots of memory. The member could also use different urls to try to get information about the internal network and open port numbers (SSRF). A malicious RSS feed could cause stored XSS, when the url of a feed item is a javascript url.
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 RSS 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.
References
This is similar to this plone.app.event vulnerability. It was discovered by the Plone Security Team by thinking of similar cases to the plone.app.event problem.
- Record
GHSA-x5g3-w747-2h8q- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:H - Weakness
- CWE-400
- Updated
- 2026-11-02
NVD
9.1
plone.app.portlets provides portlets and a Plone-specific user interface for plone.portlets. Prior to 5.0.8, 6.0.4, and 7.0.2, a member who can add an RSS portlet can set its feed URL to a very large response, causing src/plone/app/portlets/portlets/rss.py to download and retain excessive data in memory and deny service. The same RSS URL handling accepts internal hosts, IP addresses, single-word domains, and explicit ports, allowing server-side requests that can probe internal network services and open ports. A malicious feed item can also supply a JavaScript URL that is retained as the item link and can execute script when used by a victim. The affected logic includes _rss_feed_url_validator, _normal_url_validator, RSSFeed._retrieveFeed, RSSFeed._buildItemDict, and the FEED_DATA in-memory cache. This issue is fixed in versions 5.0.8, 6.0.4, and 7.0.2.
- Record
CVE-2026-55248- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:H - Weakness
- CWE-400
- Updated
- 2026-11-02
OSV
9.1
plone.app.portlets: Denial of service via RSS feed portlet
plone.app.portlets provides portlets and a Plone-specific user interface for plone.portlets. Prior to 5.0.8, 6.0.4, and 7.0.2, a member who can add an RSS portlet can set its feed URL to a very large response, causing src/plone/app/portlets/portlets/rss.py to download and retain excessive data in memory and deny service. The same RSS URL handling accepts internal hosts, IP addresses, single-word domains, and explicit ports, allowing server-side requests that can probe internal network services and open ports. A malicious feed item can also supply a JavaScript URL that is retained as the item link and can execute script when used by a victim. The affected logic includes _rss_feed_url_validator, _normal_url_validator, RSSFeed._retrieveFeed, RSSFeed._buildItemDict, and the FEED_DATA in-memory cache. This issue is fixed in versions 5.0.8, 6.0.4, and 7.0.2.
- Record
CVE-2026-55248- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:H - Weakness
- CWE-400
- Updated
- 2026-11-02
OSVGHSA-x5g3-w747-2h8q
9.1
plone.app.portlets vulnerable to denial of service via RSS feed portlet
Impact
By adding an RSS portlet, and giving this a link to a very large file, a member can cause a denial of service attack, because Plone will use lots of memory. The member could also use different urls to try to get information about the internal network and open port numbers (SSRF). A malicious RSS feed could cause stored XSS, when the url of a feed item is a javascript url.
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 RSS 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.
References
This is similar to this plone.app.event vulnerability. It was discovered by the Plone Security Team by thinking of similar cases to the plone.app.event problem.
- Record
GHSA-x5g3-w747-2h8q- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:H - Weakness
- CWE-400
- Updated
- 2026-11-02
OSVPYSEC-2026-3884
9.1
plone.app.portlets vulnerable to denial of service via RSS feed portlet
Impact
By adding an RSS portlet, and giving this a link to a very large file, a member can cause a denial of service attack, because Plone will use lots of memory. The member could also use different urls to try to get information about the internal network and open port numbers (SSRF). A malicious RSS feed could cause stored XSS, when the url of a feed item is a javascript url.
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 RSS 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.
References
This is similar to this plone.app.event vulnerability. It was discovered by the Plone Security Team by thinking of similar cases to the plone.app.event problem.
- Record
PYSEC-2026-3884- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:H - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
plone-app-portletsPyPI |
7.0.0 to 7.0.1 | 7.0.2 |
plone-app-portletsPyPI |
6.0.0 up to 6.0.4 | 6.0.4 |
plone-app-portletsPyPI |
before 5.0.8 | 5.0.8 |
plone-app-portletsPyPI |
7.0.0 up to 7.0.2, plus listed versions 7.0.1 |
7.0.2 |
plone-app-portletsPyPI |
6.0.0 up to 6.0.4, plus listed versions 6.0.16.0.26.0.3 |
6.0.4 |
plone-app-portletsPyPI |
before 5.0.8, plus listed versions 1.01.0.11.0.1.11.0.21.0.3 Show 45 moreShow less1.0.51.0.61.0a21.0b11.0b1.11.0b21.0b31.0rc11.0rc21.1.01.1.0a11.1.21.1.31.1.51.1.5.11.1.61.1rc11.21.2.11.2b11.2rc11.2rc32.02.0.12.0.22.0.32.0.42.0a12.0a22.0a32.0a42.0b12.0b102.0b112.0b22.0b32.0b42.0b52.0b62.0b72.0b82.0b92.1.02.1.22.1.3 |
5.0.8 |
plone-app-portletsPyPI |
before 5.0.8, 6.0.0 up to 6.0.4, 7.0.0 up to 7.0.2, plus listed versions 1.01.0.11.0.1.11.0.21.0.3 Show 45 moreShow less1.0.51.0.61.0a21.0b11.0b1.11.0b21.0b31.0rc11.0rc21.1.01.1.0a11.1.21.1.31.1.51.1.5.11.1.61.1rc11.21.2.11.2b11.2rc11.2rc32.02.0.12.0.22.0.32.0.42.0a12.0a22.0a32.0a42.0b12.0b102.0b112.0b22.0b32.0b42.0b52.0b62.0b72.0b82.0b92.1.02.1.22.1.3 |
5.0.86.0.47.0.2 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-55248 is a critical vulnerability (CVSS 9.1) in Plone Plone.app.portlets, published August 28, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.44%, the 38th percentile. Fixed in plone-app-portlets 7.0.2.
References
github.com/plone/plone.app.portlets/security/advisories/GHSA-x5g3-w747-2h8q
github.com/plone/plone.app.portlets/commit/09da52ef7b297daa8e0cfd2361e47c37d9b073ad
github.com/plone/plone.app.portlets/commit/9f16b6fb10211916686c6c346ea174bf517e3fbd
github.com/plone/plone.app.portlets/commit/a3b2c2887165b308cd915cbb87b8276f90a76680
github.com/plone/plone.app.portlets/commit/df5e256baee55083cbd6b9a2623675d4cb26b6cd
github.com/advisories/GHSA-x5g3-w747-2h8q
Left out here: 208 versions. The JSON record has them.