iCalendar — это библиотека Ruby для работы с файлами iCalendar в формате iCalendar, определенном RFC-5545. Начиная с версии 2.0.0 и до версии 2.12.2, сериализация .ics не очищает должным образом значения свойств URI, позволяя внедрение ICS через входные данные, контролируемые злоумышленником, добавляя произвольные календарные строки к выходным данным. `Icalendar::Values::Uri` возвращается к необработанной входной строке в случае сбоя `URI.parse` и позже сериализует ее с помощью `value.to_s` без удаления или экранирования символов `\r` или `\n`. Это значение встраивается непосредственно в последнюю строку ICS обычным сериализатором, поэтому полезные данные, содержащие CRLF, могут завершить исходное свойство и создать новое свойство или компонент ICS. (Похоже, из-за этого вы можете внедрить через URL, источник, изображение, органайзер, вложение, участника, конференцию, цурл).
Это затрагивает приложения, которые генерируют файлы `.ics` из частично ненадежных метаданных. В результате последующие клиенты или импортеры календаря могут обрабатывать контент, предоставленный злоумышленником, как если бы это были законные данные о событиях, такие как добавленные участники, измененные URL-адреса, сигналы тревоги или другие поля календаря. Версия 2.12.2 содержит исправление этой проблемы.
Показать оригинальное описание (EN)
iCalendar is a Ruby library for dealing with iCalendar files in the iCalendar format defined by RFC-5545. Starting in version 2.0.0 and prior to version 2.12.2, .ics serialization does not properly sanitize URI property values, enabling ICS injection through attacker-controlled input, adding arbitrary calendar lines to the output. `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). 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. Version 2.12.2 contains a patch for the issue.
Характеристики атаки
Последствия
Строка CVSS v3.1
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Icalendar_Project Icalendar
cpe:2.3:a:icalendar_project:icalendar:*:*:*:*:*:ruby:*:*
|
2.0.0
|
2.12.2
|