GHSA-pv9c-9mfh-hvxq

Suggest an improvement
Source
https://github.com/advisories/GHSA-pv9c-9mfh-hvxq
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/03/GHSA-pv9c-9mfh-hvxq/GHSA-pv9c-9mfh-hvxq.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-pv9c-9mfh-hvxq
Aliases
  • CVE-2026-33635
Published
2026-03-24T19:13:41Z
Modified
2026-03-24T19:32:38.607774Z
Severity
  • 4.3 (Medium) CVSS_V3 - CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N CVSS Calculator
Summary
iCalendar has ICS injection via unsanitized URI property values
Details

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:

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:

;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.

Database specific
{
    "github_reviewed": true,
    "github_reviewed_at": "2026-03-24T19:13:41Z",
    "cwe_ids": [
        "CWE-93"
    ],
    "nvd_published_at": null,
    "severity": "MODERATE"
}
References

Affected packages

RubyGems / icalendar

Package

Name
icalendar
Purl
pkg:gem/icalendar

Affected ranges

Type
ECOSYSTEM
Events
Introduced
2.0.0
Fixed
2.12.2

Affected versions

2.*
2.0.0
2.0.1
2.1.0
2.1.1
2.1.2
2.2.0
2.2.1
2.2.2
2.3.0
2.4.0
2.4.1
2.5.0
2.5.1
2.5.2
2.5.3
2.6.0
2.6.1
2.7.0
2.7.1
2.8.0
2.9.0
2.10.0
2.10.1
2.10.2
2.10.3
2.11.0
2.11.1
2.11.2
2.12.0
2.12.1

Database specific

source
"https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/03/GHSA-pv9c-9mfh-hvxq/GHSA-pv9c-9mfh-hvxq.json"