CVE-2026-33635iCalendar Ruby库在2.0.0至2.12.2之前的版本中存在ICS注入漏洞。该漏洞源于库在序列化URI属性时未对回车换行符进行转义。攻击者可利用该漏洞,通过构造包含CRLF序列的恶意输入,在生成的.ics文件中注入任意日历属性。若应用基于用户输入生成日历文件,将导致下游日历客户端解析恶意内容,影响数据完整性。
该漏洞的核心在于`Icalendar::Values::Uri`类的序列化逻辑缺陷。当`URI.parse`方法无法解析输入字符串时,库会回退使用原始输入,并在后续的`to_s`序列化过程中直接输出该值。关键的安全缺失在于未对字符串中的回车(\r)和换行(\n)控制字符进行移除或转义。攻击者利用这一点,可以在URL、Organizer、Attendee等URI字段中注入包含CRLF的Payload。例如,在URL字段后插入换行符,即可闭合当前属性行,并追加新的恶意ICS属性(如修改事件时间、添加警报或更改参与者)。下游日历客户端在导入该被污染的.ics文件时,会将注入的内容解析为合法的日历数据,从而造成信息篡改或误导。