CVE-2026-55099 json
icalendar: Algorithmic Complexity in Equality
published 2026-08-25 2 mo ago modified 2026-09-10 59 d ago also GHSA-cv84-9p8j-fj68 , PYSEC-2026-3851 , EUVD-2026-65743
- cvss
- 7.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.6%
- EPSS 0.6% chance of exploitation in 30 days, percentile 50%
- public exploits
- 0
- none known
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.
Patch / fix
- pypi icalendar 7.1.3
CISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 2 mo ago
Exploit prediction
0.63% chance of exploitation in the next 30 days, higher than 50% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/collective/icalendar/security/advisories/GHSA-cv84-9p8j-fj68 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| OSV | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
| GitHub | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | icalendar | >=7.1.0, <7.1.3 |
7.1.3 |
Affected products
- collective icalendar
Classification
References
-
github.com
/collective/icalendar/commit/b6b2608ae3af6de40695b4e40f71847485aa0b49
web
-
github.com
/collective/icalendar/commit/cad40cd112c93fd142ec12cc5b37445a849b8a79
web
-
github.com
/collective/icalendar/security/advisories/GHSA-cv84-9p8j-fj68
exploit, web
-
github.com
/collective/icalendar/releases/tag/v7.1.3
web
- openwall.com /lists/oss-security/2026/06/23/8
-
github.com
/collective/icalendar
package
-
pypi.org
/project/icalendar
package
-
github.com
/advisories/GHSA-cv84-9p8j-fj68
advisory
-
nvd.nist.gov
/vuln/detail/CVE-2026-55099
advisory
Sources
- CVE List CVE-2026-55099
- GitHub Advisory GHSA-cv84-9p8j-fj68
- NVD CVE-2026-55099
- OSV PYSEC-2026-3851
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.