Loading...
Skip to main content

CVE-2026-33635 — Vulnerability in icalendar — CVE Details

MEDIUM

iCalendar has ICS injection via unsanitized URI property values

Published March 24, 2026Updated March 27, 2026Source: osv

Summary

### Summary .ics serialization does not properly sanitize URI property values, enabling ICS injection through attacker-controlled input, adding arbitrary calendar lines to the output. ### Details `Icalendar::Values::Uri` falls back to the raw input string when `URI.parse` fails and later serializes it with `value.to_s` without removing or escaping `\r` or `\n` characters. That value is embedded directly into the final ICS line by the normal serializer, so a payload containing CRLF can terminate the original property and create a new ICS property or component. (It looks like you can inject via url, source, image, organizer, attach, attendee, conference, tzurl because of this) Relevant code: - `lib/icalendar/values/uri.rb:16` ### PoC Run the following with the library loaded: ```ruby require "icalendar/value" require "icalendar/values/uri" v = Icalendar::Values::Uri.new("https://a.example/ok\r\nATTENDEE:mailto:evil@example.com") puts v.to_ical(Icalendar::Values::Text) ``` output: ```text ;VALUE=URI:https://a.example/ok ATTENDEE:mailto:evil@example.com ``` ### Impact Applications that generate `.ics` files from partially untrusted metadata are impacted. As a result, downstream calendar clients or importers may process attacker-supplied content as if it were legitimate event data, such as added attendees, modified URLs, alarms, or other calendar fields. ## Fix Reject raw CR and LF characters in `URI`-typed values before serialization, or escape/encode them so they cannot terminate the current ICS content line.

Advisory Timeline

  • First published March 24, 2026 (202 days ago).
  • Last revised March 27, 2026 — 3 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

Bundler
Update icalendar to 2.12.2 or later
gem install icalendar -v 2.12.2

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (1)

Affects 1 ecosystem: rubygems (1).

PackageEcosystemAffectedFixed In
icalendar
rubygems
2.0.0, 2.0.1, 2.1.0, 2.1.1 (+26 more)2.12.2

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 4.3 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
None
Integrity
Low
Availability
None

CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N

Frequently Asked Questions

What is CVE-2026-33635?
iCalendar has ICS injection via unsanitized URI property values This vulnerability has been assigned a severity rating of MEDIUM (CVSS score: 4.3/10).
How do I check if my project is affected by CVE-2026-33635?
CVE-2026-33635 affects icalendar. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-33635 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
4.3

Exploitation requires specific conditions or has limited impact. Remediate within weeks.

Also Known As

GHSA-pv9c-9mfh-hvxq

Related CVEs

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies