Loofah — это общая библиотека для управления и преобразования документов и фрагментов HTML/XML, построенная на основе Nokogiri. С 2.25.0 по 2.25.2 Loofah::HTML5::Scrub.allowed_uri? не отклоняет URI javascript: или vbscript:, схема которых разделена ссылками на числовые символы без точки с запятой, такими как :, 	, 
 или 
. CGI.unescapeHTML оставляет эти ссылки закодированными, поэтому разрешено_uri? сообщает, что URL-адрес безопасен, даже если браузер декодирует закодированное двоеточие или удаляет закодированные пробелы и выполняет полученную схему URI.
Эта проблема затрагивает только вызывающих абонентов, которые передают строки в кодировке HTML непосредственно в Allow_uri?; Путь Sanitize() по умолчанию в Loofah не затрагивается. Эта проблема исправлена в версии 2.25.2.
Показать оригинальное описание (EN)
Loofah is a general library for manipulating and transforming HTML/XML documents and fragments, built on top of Nokogiri. From 2.25.0 until 2.25.2, Loofah::HTML5::Scrub.allowed_uri? does not reject javascript: or vbscript: URIs whose scheme is split by semicolon-less numeric character references such as :, 	, 
, or 
. CGI.unescapeHTML leaves these references encoded, so allowed_uri? reports the URL safe even though a browser decodes an encoded colon or strips encoded whitespace and executes the resulting URI scheme. This issue affects only callers that pass HTML-encoded strings directly to allowed_uri?; Loofah's default sanitize() path is not affected. This issue is fixed in version 2.25.2.
Характеристики атаки
Последствия
Строка CVSS v4.0