{"id":"CVE-2026-55099","summary":"icalendar: Algorithmic Complexity in Equality","details":"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.","aliases":["GHSA-cv84-9p8j-fj68"],"modified":"2026-08-28T11:30:57.160713941Z","published":"2026-08-25T19:27:02.236Z","database_specific":{"cwe_ids":["CWE-400","CWE-407"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55099.json","cna_assigner":"GitHub_M"},"references":[{"type":"WEB","url":"http://www.openwall.com/lists/oss-security/2026/06/23/8"},{"type":"WEB","url":"https://github.com/collective/icalendar/releases/tag/v7.1.3"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55099.json"},{"type":"ADVISORY","url":"https://github.com/collective/icalendar/security/advisories/GHSA-cv84-9p8j-fj68"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-55099"},{"type":"FIX","url":"https://github.com/collective/icalendar/commit/b6b2608ae3af6de40695b4e40f71847485aa0b49"},{"type":"FIX","url":"https://github.com/collective/icalendar/commit/cad40cd112c93fd142ec12cc5b37445a849b8a79"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/collective/icalendar","events":[{"introduced":"1300b76fb3fe40d987cc3715735c026b3c1a2191"},{"fixed":"b6b2608ae3af6de40695b4e40f71847485aa0b49"},{"fixed":"cad40cd112c93fd142ec12cc5b37445a849b8a79"},{"fixed":"f7240bc661548f9806c930f2a95ee2f003cfa8ca"}],"database_specific":{"extracted_events":[{"introduced":"7.1.0"},{"fixed":"7.1.3"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["v7.1.2","v7.1.1","v7.1.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-55099.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}]}