Description
icalendar is an RFC 5545 compatible parser and generator of iCalendar files for Python. From 7.1.0 until 7.1.3, the Component equality method in src/icalendar/cal/component.py compares nested subcomponents with two membership loops, and each membership test invokes the same method on child components, causing O(2^n) work relative to nesting depth. Component.from_ical accepts arbitrarily nested BEGIN:VEVENT blocks without a depth limit, so an attacker can submit a sub-kilobyte .ics file containing equal nested subtrees and trigger the cost when an application performs equality, inequality, membership, deduplication, test-assertion, round-trip, or normalization comparisons. Parsing alone does not trigger the issue, and comparisons that differ early short-circuit, but a few hundred bytes can pin a CPU core for minutes or indefinitely, causing denial of service in calendar sync or import endpoints, invite processing, and other comparison paths. This issue is fixed in version 7.1.3.
Published: 2026-08-25
Score: 7.5 High
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Apply Patch
AI Analysis

Impact

The vulnerability lies in the equality comparison of calendar components within the icalendar library, where nested subcomponents are checked with two nested membership loops. Each membership test recursively invokes the same comparison on child components, leading to exponential growth in computation time relative to the depth of nesting. An attacker can construct a small .ics file containing deeply nested equal subtrees; when an application performs equality, inequality, membership, deduplication, assertion, round-trip, or normalization checks on this data, the side‑channel causes the process to consume a CPU core for a prolonged period or indefinitely, resulting in a denial of service. The flaw does not trigger during initial parsing, only during comparison operations.

Affected Systems

This issue affects the collective iCalendar Python library from version 7.1.0 through 7.1.3. Any application that imports or synchronizes iCalendar data using these releases and subsequently performs equality or related comparisons is vulnerable. The fix was released in 7.1.3, so users on earlier versions must upgrade to avoid the attack.

Risk and Exploitability

The CVSS score of 7.5 classifies this flaw as a serious risk, with a defined value that reflects the denial‑of‑service impact and the lack of remote control. EPSS is not available, so the current estimate of exploit probability is unclear; however, vulnerabilities of this nature are commonly exploited by automated scripts that inject malicious calendars into mail servers or sync services. The attack vector is inferred to be remote, based on the fact that an adversary can supply a crafted .ics file to any endpoint that performs the affected comparison operations. Since the flaw is not listed in the CISA KEV catalog, it has not yet been evidenced in the wild, but the high severity warrants immediate mitigation.

Generated by OpenCVE AI on August 25, 2026 at 21:38 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the icalendar library to version 7.1.3 or later.
  • If an immediate upgrade is infeasible, validate incoming calendar files to limit nesting depth before they reach the equality comparison logic or reject files containing more than a safe number of nested BEGIN:VEVENT blocks.
  • Monitor system performance for abnormal CPU usage during calendar processing and set alerts or throttle processing when thresholds are exceeded to mitigate potential denial of service.

Generated by OpenCVE AI on August 25, 2026 at 21:38 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-cv84-9p8j-fj68 icalendar has Algorithmic Complexity in Equality
History

Fri, 28 Aug 2026 21:00:00 +0000

Type Values Removed Values Added
First Time appeared Collective
Collective icalendar
Vendors & Products Collective
Collective icalendar

Wed, 26 Aug 2026 16:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Tue, 25 Aug 2026 21:30:00 +0000

Type Values Removed Values Added
References

Tue, 25 Aug 2026 19:45:00 +0000

Type Values Removed Values Added
Description icalendar is an RFC 5545 compatible parser and generator of iCalendar files for Python. From 7.1.0 until 7.1.3, the Component equality method in src/icalendar/cal/component.py compares nested subcomponents with two membership loops, and each membership test invokes the same method on child components, causing O(2^n) work relative to nesting depth. Component.from_ical accepts arbitrarily nested BEGIN:VEVENT blocks without a depth limit, so an attacker can submit a sub-kilobyte .ics file containing equal nested subtrees and trigger the cost when an application performs equality, inequality, membership, deduplication, test-assertion, round-trip, or normalization comparisons. Parsing alone does not trigger the issue, and comparisons that differ early short-circuit, but a few hundred bytes can pin a CPU core for minutes or indefinitely, causing denial of service in calendar sync or import endpoints, invite processing, and other comparison paths. This issue is fixed in version 7.1.3.
Title icalendar: Algorithmic Complexity in Equality
Weaknesses CWE-400
CWE-407
References
Metrics cvssV3_1

{'score': 7.5, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'}


Subscriptions

Collective Icalendar
cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-08-26T15:05:26.062Z

Reserved: 2026-06-16T14:41:54.579Z

Link: CVE-2026-55099

cve-icon Vulnrichment

Updated: 2026-08-25T20:10:56.453Z

cve-icon NVD

Status : Deferred

Published: 2026-08-25T20:16:56.940

Modified: 2026-09-09T21:07:31.353

Link: CVE-2026-55099

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-28T20:34:38Z

Weaknesses
  • CWE-400

    Uncontrolled Resource Consumption

  • CWE-407

    Inefficient Algorithmic Complexity