CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-55247

CVE-2026-55247: Multiple Vulnerabilities (DoS, SSRF, and Stored XSS) in plone.app.event iCalendar Import

Alon Barad
Alon Barad
Software Engineer

Aug 28, 2026·6 min read·6 visits

Executive Summary (TL;DR)

Plone's event importer failed to validate input sizes and URL protocols, enabling authenticated users to trigger Denial of Service, execute Server-Side Request Forgery, and inject Stored XSS.

A critical security vulnerability exists in plone.app.event, the event content type package for the Plone CMS. Prior to versions 5.2.4 and 6.0.1, the iCalendar import component lacked proper file size controls, URL scheme validation, and network isolation filters. Authenticated editors could exploit these deficiencies to cause denial of service via memory exhaustion, read local files, perform server-side request forgery, and inject stored cross-site scripting vectors.

Vulnerability Overview

The core event management functionality of the Plone CMS is provided by the plone.app.event package. This component features an iCalendar (.ics) import mechanism allowing editors to sync external calendars with the CMS database.

The import functionality represents a significant attack surface because it accepts arbitrary URLs from users and fetches external content directly on the server host. Prior to the release of security patches, this interface did not implement proper boundary checks or validation constraints on imported data.

Consequently, authenticated editors could leverage this trust boundary to trigger three distinct classes of security vulnerabilities: uncontrolled resource consumption leading to Denial of Service, Server-Side Request Forgery facilitating access to internal assets, and Stored Cross-Site Scripting through unvalidated URL attributes.

Root Cause Analysis

The primary vulnerability lies within the iCalendar parsing implementation in src/plone/app/event/ical/importer.py and structural URL handling in src/plone/app/event/base.py. Under default configurations, the application used Python's native urllib.request.urlopen library to fetch the resource specified by the editor.

Because the network call lacked size constraints, timeouts, or scheme validation, the server would unconditionally download and attempt to parse any remote file. During parsing, the application invoked the Zope Object Database (ZODB) transaction manager to commit changes to disk for every single imported event record. This repetitive disk I/O, combined with unrestricted file sizes, allowed attackers to exhaust server memory and CPU cycles.

Additionally, the absence of protocol and domain restrictions enabled attackers to supply non-HTTP schemes such as file:// to fetch arbitrary local server files. The system also accepted URLs pointing to loopback or private networks, turning the server into a proxy for internal scanning. Finally, the calendar fields permitted malicious URI schemes like javascript: to be saved as active hyperlinks, introducing stored XSS vectors into the CMS frontend.

Code Analysis

To address these vulnerabilities, the developers introduced substantial structural changes in commits 1e3c83c15a24d1a789cdb012593505bc5620e28e and 4de5eb3ea9e4f7f1781622e6d64fc086629d1437. The key updates replaced basic urllib calls with streaming requests objects and integrated syntactic validators.

The updated download implementation enforces binary size limits and prevents infinite redirect loops during retrieval. The logic now raises a ValueError if the HTTP headers or the actual payload size exceeds configured bounds.

Below is the comparison of the network retrieval mechanisms before and after the remediation:

# VULNERABLE CODE
# Allowed uncontrolled resource download and file:// schemas
ical_resource = urllib.request.urlopen(ical_url).read()
 
# PATCHED CODE
# Implements size limits, redirects prevention, and explicit timeouts
def download_ical(url, limit=MAXIMUM_ICAL_IMPORT_SIZE_BYTES):
    if limit <= 0:
        raise ValueError('You must pass a limit for the number of bytes.')
    
    response = requests.get(url, stream=True, allow_redirects=False, timeout=3.5)
    response.raise_for_status()
 
    length = response.headers.get('Content-Length')
    if length and int(length) > limit:
        raise ValueError('Content-Length header too large')
 
    # Limit chunk iteration to prevent downloading massive data streams
    for chunk in response.iter_content(limit + 1):
        if len(chunk) > limit:
            raise ValueError('Downloaded too much content.')
    return chunk

The fix also introduced the no_file_protocol_url validator, which restricts the destination domain. It blocks ports in URLs, stops single-label hostnames, and rejects IP notation to neutralize SSRF and local file disclosures.

Exploitation

Exploitation of these flaws requires authenticated access as an editor with permissions to configure or trigger an iCalendar import. Although authentication is required, many CMS installations grant event creation privileges to broad directories of low-privileged users.

To execute a Denial of Service attack, the attacker hosts a crafted .ics file containing hundreds of thousands of valid event definitions or a highly nested recursive structure. Upon submitting the URL to the Plone importer, the server begins retrieving the file and initiating individual ZODB commits. The server quickly reaches maximum CPU utilization, disk write bottlenecks, and eventually experiences memory exhaustion, crashing the daemon process.

To execute a Server-Side Request Forgery or Local File Disclosure, the attacker registers an import source pointing to local paths. By specifying file:///etc/passwd, the importer reads the local operating system file, which is then parsed as an iCalendar stream. Errors raised during parsing can leak snippets of the local file contents through application stack traces or logs.

Impact Assessment

The combination of Denial of Service, SSRF, and Stored XSS yields a CVSS Base Score of 9.1, indicating a critical security impact. The scope of the vulnerability is classified as changed because an attacker can leverage the application's network privileges to access external and internal systems.

While the Denial of Service impact primarily affects system availability, the SSRF vulnerability exposes highly sensitive backend infrastructure. On modern cloud architectures, this can allow attackers to probe local metadata endpoints (such as 169.254.169.254) and retrieve sensitive instance credentials or API tokens.

Lastly, the stored XSS vector jeopardizes the confidentiality of administrative sessions. If an administrative user views the imported calendar event containing a malicious URL, the payload executes in their browser, potentially leading to administrative session takeover or remote code execution via administrative endpoints.

Remediation & Bypass Analysis

The implementation of syntactic filters significantly reduces the attack surface, but several theoretical bypasses remain due to the reliance on string-based checks rather than structural resolution.

First, the no_file_protocol_url function does not resolve domain names to IP addresses before initiating the request. This leaves the system vulnerable to DNS Rebinding attacks, where an attacker-controlled domain initially resolves to a safe public IP to pass the string validation, but subsequently resolves to 127.0.0.1 during the socket connection phase.

Second, the IPv4-centric parser splits the domain string by dots to identify integer-based IPs. This parser fails to account for bracketed IPv6 notation, which may allow attackers to bypass the check and access local IPv6 interfaces (e.g., http://[::1]). System administrators must implement operating system or firewall-level controls to fully isolate outbound traffic.

Official Patches

PloneOfficial GitHub Security Advisory
PloneRelease v5.2.4
PloneRelease v6.0.1

Fix Analysis (2)

Technical Appendix

CVSS Score
9.1/ 10
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:L/A:H

Affected Systems

Plone CMS (via plone.app.event)

Affected Versions Detail

Product
Affected Versions
Fixed Version
plone.app.event
Plone
< 5.2.45.2.4
plone.app.event
Plone
>= 6.0.0, < 6.0.16.0.1
AttributeDetail
CWE IDCWE-400 (Uncontrolled Resource Consumption)
Attack VectorNetwork
CVSS Score9.1 (Critical)
ImpactDenial of Service, SSRF, Stored XSS
Exploit StatusNone
KEV StatusNot Listed
Access RequiredLow Privilege (Authenticated Editor)

MITRE ATT&CK Mapping

T1499Endpoint Denial of Service
Impact
T1190Exploit Public-Facing Application
Initial Access
CWE-400
Uncontrolled Resource Consumption

The software does not adequately control the allocation and maintenance of a limited resource, thereby enabling an actor to influence the amount of resources consumed and exhaust them.

References & Sources

  • [1]GitHub Security Advisory GHSA-r82h-mqw3-fc56

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•31 minutes ago•CVE-2026-55764
8.7

CVE-2026-55764: Integer Overflow in SFT Circulation Counter in Klever-Go

An integer overflow vulnerability (CWE-190) exists in klever-go, the Go implementation of the Klever blockchain protocol, within the Semi-Fungible Token (SFT) addition path. An attacker with a mint role can exploit this by passing an extremely large positive value when adding SFT quantity, which overflows a signed 64-bit integer. This bypasses the maximum supply checks and allows minting arbitrary tokens while corrupting the state.

Alon Barad
Alon Barad
1 views•8 min read
•about 2 hours ago•CVE-2026-55841
7.5

CVE-2026-55841: Log Evasion and Tampering in Graylog FortiGate Syslog Parser

A high-severity log evasion and tampering vulnerability in Graylog's FortiGate key-value syslog parser allows unauthenticated remote attackers to modify, delete, or overwrite critical security log fields, potentially bypassing security controls and monitoring systems.

Alon Barad
Alon Barad
2 views•7 min read
•about 3 hours ago•CVE-2026-55867
5.3

CVE-2026-55867: Insecure Direct Object Reference in Graylog Access-Token Revocation

An Insecure Direct Object Reference (IDOR) vulnerability exists within the access-token revocation endpoint of Graylog. Authenticated users can exploit this flaw to delete access tokens belonging to other users, including high-privileged administrator accounts, thereby disrupting active integrations and API access.

Alon Barad
Alon Barad
2 views•7 min read
•about 3 hours ago•CVE-2026-55873
4.3

CVE-2026-55873: Improper Authorization in SeaweedFS S3Tables and Iceberg REST Management APIs

An improper authorization vulnerability in SeaweedFS versions 4.08 through 4.33 allows authenticated, low-privileged users to bypass directory isolation and perform unauthorized metadata operations within S3Tables and Iceberg REST interfaces. The vulnerability arises from an automatic collapse of account-less static identities to the default administrative principal, combined with a fail-open default policy configuration and self-referential authorization parameters in the table bucket listing routines. Together, these logical flaws expose administrative configurations and namespace architectures to unprivileged actors. The issue is resolved in version 4.34 by enforcing capability-based access checks, isolating fallback modes, and performing granular access verification on target buckets.

Alon Barad
Alon Barad
2 views•6 min read
•about 4 hours ago•CVE-2026-55874
7.7

CVE-2026-55874: Cross-Bucket Path Traversal in SeaweedFS S3 API Gateway

A critical path traversal vulnerability (CVE-2026-55874) in the SeaweedFS S3 API Gateway prior to version 4.34 allows authenticated remote attackers with write access to at least one bucket to bypass isolation. By supplying crafted directory traversal sequences in the X-Amz-Copy-Source header, an attacker can read objects from arbitrary buckets on the same deployment.

Amit Schendel
Amit Schendel
2 views•7 min read
•about 6 hours ago•CVE-2026-55779
5.4

CVE-2026-55779: Stored Cross-Site Scripting (XSS) in Silverstripe Archive Admin Restore

A Stored Cross-Site Scripting (XSS) vulnerability exists in the silverstripe/versioned package prior to version 3.2.1. When an administrator restores an archived page containing a crafted Title or URLSegment, the generated restoration message is rendered as CAST_HTML without proper sanitization. This allows malicious JavaScript to execute in the administrator's browser session, compromising the confidentiality and integrity of the CMS dashboard.

Amit Schendel
Amit Schendel
2 views•6 min read