Rack — это модульный интерфейс веб-сервера Ruby. До версий 2.2.23, 3.1.21 и 3.2.6 Rack::Sendfile#map_accel_path интерполирует значение заголовка запроса X-Accel-Mapping непосредственно в регулярное выражение при перезаписи путей к файлам для X-Accel-Redirect. Поскольку значение заголовка не экранировано, злоумышленник, который может предоставить X-Accel-Mapping серверной части, может внедрить метасимволы регулярного выражения и управлять сгенерированным заголовком ответа X-Accel-Redirect.
В развертываниях с использованием Rack::Sendfile с x-accel-redirect это может позволить злоумышленнику заставить nginx обслуживать непредусмотренные файлы из настроенных внутренних расположений. Эта проблема исправлена в версиях 2.2.23, 3.1.21 и 3.2.6.
Показать оригинальное описание (EN)
Rack is a modular Ruby web server interface. Prior to versions 2.2.23, 3.1.21, and 3.2.6, Rack::Sendfile#map_accel_path interpolates the value of the X-Accel-Mapping request header directly into a regular expression when rewriting file paths for X-Accel-Redirect. Because the header value is not escaped, an attacker who can supply X-Accel-Mapping to the backend can inject regex metacharacters and control the generated X-Accel-Redirect response header. In deployments using Rack::Sendfile with x-accel-redirect, this can allow an attacker to cause nginx to serve unintended files from configured internal locations. This issue has been patched in versions 2.2.23, 3.1.21, and 3.2.6.
Характеристики атаки
Последствия
Строка CVSS v3.1