Active Storage позволяет пользователям прикреплять облачные и локальные файлы в приложениях Rails. До версий 8.1.2.1, 8.0.4.1 и 7.2.3.1 `DiskService#path_for` Active Storage не проверяет, остается ли разрешенный путь файловой системы в корневом каталоге хранилища. Если используется ключ большого двоичного объекта, содержащий последовательности обхода пути (например, `../`), он может разрешить чтение, запись или удаление произвольных файлов на сервере.
Ожидается, что ключи BLOB-объектов будут доверенными строками, но некоторые приложения могут передавать пользовательский ввод в качестве ключей и это будет затронуто. Версии 8.1.2.1, 8.0.4.1 и 7.2.3.1 содержат исправление.
Показать оригинальное описание (EN)
Active Storage allows users to attach cloud and local files in Rails applications. Prior to versions 8.1.2.1, 8.0.4.1, and 7.2.3.1, Active Storage's `DiskService#path_for` does not validate that the resolved filesystem path remains within the storage root directory. If a blob key containing path traversal sequences (e.g. `../`) is used, it could allow reading, writing, or deleting arbitrary files on the server. Blob keys are expected to be trusted strings, but some applications could be passing user input as keys and would be affected. Versions 8.1.2.1, 8.0.4.1, and 7.2.3.1 contain a patch.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 3
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Rubyonrails Rails
cpe:2.3:a:rubyonrails:rails:*:*:*:*:*:*:*:*
|
— |
7.2.3.1
|
|
Rubyonrails Rails
cpe:2.3:a:rubyonrails:rails:*:*:*:*:*:*:*:*
|
8.0.0
|
8.0.4.1
|
|
Rubyonrails Rails
cpe:2.3:a:rubyonrails:rails:*:*:*:*:*:*:*:*
|
8.1.0
|
8.1.2.1
|