
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-55248 is a multi-vector vulnerability in plone.app.portlets, the portlet management package for the Plone CMS, encompassing denial of service (DoS), server-side request forgery (SSRF), and stored cross-site scripting (XSS). An authenticated member with portlet management permissions can configure the RSS portlet's feed URL to point to an arbitrarily large resource, causing excessive memory consumption; use internal hostnames, IP addresses, or explicit ports to probe internal network services; or supply a javascript: URL in a feed item link to execute script in a victim's browser. Affected versions are plone.app.portlets < 5.0.8, >= 6.0.0 and < 6.0.4, and >= 7.0.0 and < 7.0.2. The vulnerability was published on August 28, 2026, and carries a CVSS v3.1 base score of 9.1 (Critical) (GitHub Advisory, Feedly).
The root cause is insufficient input validation in the RSS portlet's URL handling logic, classified as CWE-400 (Uncontrolled Resource Consumption) with an estimated secondary weakness of CWE-918 (SSRF). The affected functions — _rss_feed_url_validator, _normal_url_validator, RSSFeed._retrieveFeed, RSSFeed._buildItemDict, and the FEED_DATA in-memory cache — failed to restrict feed URLs to safe external hosts, impose download size limits, or sanitize item link URLs. Specifically, the old _retrieveFeed implementation passed the feed URL directly to feedparser.parse() without a size cap, allowing unbounded memory allocation; the URL validator only checked for multi-line input and non-HTTP schemes, permitting internal IP addresses, single-word hostnames (e.g., http://backend/), and explicit port numbers (e.g., http://internal:8080/). Additionally, _buildItemDict stored item link URLs without validating them, allowing javascript: scheme URLs to persist in the FEED_DATA cache and be rendered to users (GitHub Advisory, Patch Commit).
Exploitation can result in three distinct impacts: a denial of service by exhausting server memory when the Plone process downloads an unbounded response into the FEED_DATA RAM cache; information disclosure and internal network reconnaissance via SSRF, where the server can be directed to probe internal hosts, private IP ranges, and open ports; and stored XSS, where a javascript: URL embedded in a feed item link is persisted and executed in the browser of any user who clicks the rendered portlet link. The scope is changed (S:C in CVSS terms), meaning the XSS impact extends beyond the Plone application to affect end-user browsers. Availability impact is rated High, while confidentiality and integrity impacts are rated Low (GitHub Advisory).
Exploitation requires low privileges — specifically, the plone.app.portlets.ManageOwnPortlets permission, which may be granted to regular site members depending on site configuration. No public proof-of-concept exploit code has been identified, and there is no evidence of in-the-wild exploitation at this time. The EPSS score is 0.0, and the vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. NVD's SSVC assessment classifies exploitation as "none" and the attack as non-automatable (Feedly, GitHub Advisory).
plone.app.portlets (< 5.0.8, 6.0.0–6.0.3, or 7.0.0–7.0.1). Confirm that the authenticated account has the ManageOwnPortlets or Manage portlets permission.RSSFeed._retrieveFeed passes the URL directly to feedparser.parse(), downloading the entire response into the FEED_DATA in-memory cache, exhausting server RAM.http://192.168.1.1/, http://backend/, or http://internal-service:8080/. The server will make an outbound HTTP request to the specified target, allowing the attacker to infer open ports and internal service availability based on response behavior or error messages.<link> element uses a javascript: scheme URL (e.g., <link>javascript:alert(document.cookie)</link>). Configure the RSS portlet to fetch this feed. The _buildItemDict function stores the link without validation. When a victim user views the portlet and clicks the feed item link, the JavaScript executes in their browser context (GitHub Advisory, Patch Commit).feedparser.parse() calls to internal IP addresses (e.g., 10.x.x.x, 192.168.x.x, 172.16.x.x), single-word hostnames, or URLs with explicit port numbers; log entries from _retrieveFeed attempting to load feeds from file:// or javascript: scheme URLs."Refusing to load stored RSS url" or "Refusing to use link from RSS item" (present only after patching; absence of these on unpatched systems may indicate exploitation without detection).javascript: scheme URLs in the FEED_DATA cache (GitHub Advisory, Patch Commit).Upgrade plone.app.portlets to the patched versions: 7.0.2 (for Plone 6.2), 6.0.4 (for Plone 6.1), or 5.0.8 (for Plone 6.0). The patches introduce strict URL validation via _rss_feed_url_validator (blocking IP addresses, single-word domains, explicit ports, and non-HTTP schemes), enforce a configurable download size limit (default 1 MB, adjustable via the MAXIMUM_RSS_FEED_SIZE_BYTES environment variable), and validate feed item link URLs to reject javascript: scheme URLs. If immediate upgrade is not possible, remove the plone.app.portlets.ManageOwnPortlets permission from untrusted roles and restrict portlet management to the Manager and Site Administrator roles only; additionally, unregister the RSS portlet via portlets.xml if it is not needed (GitHub Advisory).
The vulnerability was discovered and disclosed by the Plone Security Team, who identified it by analogy with a similar SSRF/DoS issue previously found in plone.app.event. The advisory was authored by mauritsvanrees and published on June 23, 2026, with patches released on August 28, 2026. No significant broader media coverage or notable external researcher commentary has been identified beyond the official advisory and automated CVE tracking services (GitHub Advisory).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."