icalendar: Algorithmic Complexity in Equality
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Denial of service
- Confidentiality · integrity · availability
- None · None · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-400.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- Yes
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| collective | icalendar | 7.1.0 to before 7.1.3 | 7.1.3 | Patch available | CNA |
| — | icalendar (PyPI) | 7.1.0 to before 7.1.3 | 7.1.3 | Patch available | GHSA-cv84-9p8j-fj68 |
- icalendar Vendorcollective Affected 7.1.0 to before 7.1.3 Fixed in 7.1.3 Patch available CNA
- icalendar (PyPI) Vendor— Affected 7.1.0 to before 7.1.3 Fixed in 7.1.3 Patch available GHSA-cv84-9p8j-fj68
Remediation
- Fix · CNA icalendar (collective) Fixed in 7.1.3
- Fix · GHSA-cv84-9p8j-fj68 icalendar (PyPI) Fixed in 7.1.3 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-55099
- 2026-10-03 Alias added: GHSA-cv84-9p8j-fj68
- 2026-10-28 EPSS moved to the 50th–90th percentile
References
Other 5
- https://github.com/collective/icalendar/security/advisories/GHSA-cv84-9p8j-fj68
- https://github.com/collective/icalendar/commit/b6b2608ae3af6de40695b4e40f71847485aa0b49
- https://github.com/collective/icalendar/commit/cad40cd112c93fd142ec12cc5b37445a849b8a79
- https://github.com/collective/icalendar/releases/tag/v7.1.3
- https://github.com/collective/icalendar
More collective vulnerabilities
- TI-2026-53991 icalendar: Denial of service via unbounded VALARM REPEAT expansion CVSS 3.1MEDIUM 6.5
- TI-2012-04038 Cross-site scripting (XSS) vulnerability in admin/login.asp in Acuity CMS 2.6.2 allows… CVSS 2.0MEDIUM 4.3
- TI-2005-04112 Cross-site scripting (XSS) vulnerability in Acuity CMS 2.6.2 allows remote attackers to… CVSS 2.0MEDIUM 4.3
Sources
- CVE-2026-55099 · CVE Program
- CVE-2026-55099 · NVD
- FIRST EPSS
- GHSA-cv84-9p8j-fj68 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences