CVE-2026-55099 json
icalendar: Algorithmic Complexity in Equality
published 4mo ago modified 2mo ago also EUVD-2026-65743 , GHSA-cv84-9p8j-fj68 , PYSEC-2026-3851
- 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
Is CVE-2026-55099 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- Proof of concept is public
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 2mo ago
Exploit prediction
0.63% chance of exploitation in the next 30 days, higher than 50% of all scored CVEs (FIRST EPSS, 2026-11-11).
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 |
| GitHub | 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 |
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, advisory
-
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
- Maintainer advisory GHSA-cv84-9p8j-fj68
Fencer Intel 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.
The maintainers of collective/icalendar published their own advisory on GitHub. Reviewed sources take precedence over it.