rack/file.rb (Rack::File) in Rack 1.5.x before 1.5.2 and 1.4.x before 1.4.5 allows attackers to access arbitrary files outside the intended
rack/file.rb (Rack::File) in Rack 1.5.x before 1.5.2 and 1.4.x before 1.4.5 allows attackers to access arbitrary files outside the intended root directory via a crafted PATH_INFO environment variable, probably a directory traversal vulnerability that is remotely exploitable, aka "symlink path traversals."
- GHSA-85r7-w5mv-c849
- openSUSE-SU-2024:10115-1
- openSUSE-SU-2024:12119-1
- openSUSE-SU-2024:12397-1
- openSUSE-SU-2024:12974-1
- openSUSE-SU-2024:13167-1
- openSUSE-SU-2024:13726-1
- openSUSE-SU-2024:13727-1
- openSUSE-SU-2025:14811-1
- openSUSE-SU-2025:14875-1
- openSUSE-SU-2026:10286-1
- openSUSE-SU-2026:10358-1
- RHSA-2013:0638
- Опубликовано
- 8 февр. 2013 г.
- Обновлено
- 16 июн. 2026 г.
- EPSS
- 2,9 % · 87-й процентиль
- CWE
- CWE-22
Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.
Инструменты для отчёта
Оценка срочности
18
Наблюдать
Пока низкий приоритет.
- CVSS
- 17 / 40 · 4.3 / 10
- CISA KEV
- 0 / 30 · Нет в списке
- EPSS
- 1 / 30 · 2,9 %
Затронутые системы
| Вендор | Продукт | CPE |
|---|---|---|
| rack project | rack | cpe:2.3:a:rack_project:rack |
Затронутые версии
Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.
- rack project rack1.4.0
- rack project rack1.4.1
- rack project rack1.4.2
- rack project rack1.4.3
- rack project rack1.4.4
- rack project rack1.5.0
- rack project rack1.5.1
Затронутые пакеты
Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.
| Экосистема | Пакет | Затронутый диапазон | Исправление |
|---|---|---|---|
| Debian:12 | ruby-rack | до 1.4.1-2.1 | 1.4.1-2.1 |
| openSUSE:Tumbleweed | ruby3.2-rubygem-rack | до 3.0.7-1.2 | 3.0.7-1.2 |
| openSUSE:Tumbleweed | ruby3.2-rubygem-rack-2.2 | до 2.2.7-1.1 | 2.2.7-1.1 |
| openSUSE:Tumbleweed | rubyem-rack | до 1.4.7-1.8 | 1.4.7-1.8 |
| openSUSE:Tumbleweed | rubygem-rack | до 3.0.9.1-1.1 | 3.0.9.1-1.1 |
| openSUSE:Tumbleweed | rubygem-rack | до 3.1.18-1.3 | 3.1.18-1.3 |
| openSUSE:Tumbleweed | rubygem-rack | до 3.1.12-1.1 | 3.1.12-1.1 |
| openSUSE:Tumbleweed | rubygem-rack | до 2.2.3.1-1.1 | 2.2.3.1-1.1 |
| openSUSE:Tumbleweed | rubygem-rack-2.2 | до 2.2.4-1.1 | 2.2.4-1.1 |
| openSUSE:Tumbleweed | rubygem-rack-2.2 | до 2.2.8.1-1.1 | 2.2.8.1-1.1 |
| openSUSE:Tumbleweed | rubygem-rack-2.2 | до 2.2.11-1.1 | 2.2.11-1.1 |
| openSUSE:Tumbleweed | rubygem-rack-2.2 | до 2.2.22-1.1 | 2.2.22-1.1 |
| Red Hat:openshift:1::el6 | jenkins | до 0:1.502-1.el6op | 0:1.502-1.el6op |
| Red Hat:openshift:1::el6 | openshift-origin-cartridge-jenkins-1.4 | до 0:1.0.3-1.el6op | 0:1.0.3-1.el6op |
| Red Hat:openshift:1::el6 | ruby193-rubygem-rack | до 1:1.4.1-4.el6 | 1:1.4.1-4.el6 |
| Red Hat:openshift:1::el6 | rubygem-rack | до 1:1.3.0-4.el6op | 1:1.3.0-4.el6op |
| RubyGems | rack | с 1.4.0 · до 1.4.5 | 1.4.5 |
| RubyGems | rack | с 1.5.0 · до 1.5.2 | 1.5.2 |
Тот же продукт
rack project: все записиДругие записи с наивысшей оценкой для того же основного продукта.
- CVE-2022-30123A sequence injection vulnerability exists in Rack <2.0.9.1, <2.1.4.1 and <2.2.3.1 which could allow is a possible shell escape in the Lint a41В плане
- CVE-2020-8161A directory traversal vulnerability exists in rack < 2.2.0 that allows an attacker perform directory traversal vulnerability in the Rack::Di35Наблюдать
- CVE-2022-30122A possible denial of service vulnerability exists in Rack <2.0.9.1, <2.1.4.1 and <2.2.3.1 in the multipart parsing component of Rack.31Наблюдать
- CVE-2020-8184A reliance on cookies without validation/integrity check security vulnerability exists in rack < 2.2.3, rack < 2.1.4 that makes it is possib31Наблюдать
- CVE-2018-16470There is a possible DoS vulnerability in the multipart parser in Rack before 2.0.6.31Наблюдать
- CVE-2018-16471There is a possible XSS vulnerability in Rack before 2.0.6 and 1.6.11.25Наблюдать
Исправление
На какую версию обновиться
Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.
| Продукт / пакет | Исправленная версия | Источник |
|---|---|---|
| debian:ruby-rack | 1.4.1-2.1 · Debian:12 | Реестр пакетов (OSV) |
| opensuse:ruby3.2-rubygem-rack | 3.0.7-1.2 · openSUSE:Tumbleweed | Реестр пакетов (OSV) |
| opensuse:ruby3.2-rubygem-rack-2.2 | 2.2.7-1.1 · openSUSE:Tumbleweed | Реестр пакетов (OSV) |
| opensuse:rubyem-rack | 1.4.7-1.8 · openSUSE:Tumbleweed | Реестр пакетов (OSV) |
| opensuse:rubygem-rack | 2.2.3.1-1.1 · openSUSE:Tumbleweed | Реестр пакетов (OSV) |
| opensuse:rubygem-rack-2.2 | 2.2.4-1.1 · openSUSE:Tumbleweed | Реестр пакетов (OSV) |
| red hat:jenkins | 0:1.502-1.el6op · Red Hat:openshift:1::el6 | Реестр пакетов (OSV) |
| red hat:openshift-origin-cartridge-jenkins-1.4 | 0:1.0.3-1.el6op · Red Hat:openshift:1::el6 | Реестр пакетов (OSV) |
| red hat:ruby193-rubygem-rack | 1:1.4.1-4.el6 · Red Hat:openshift:1::el6 | Реестр пакетов (OSV) |
| red hat:rubygem-rack | 1:1.3.0-4.el6op · Red Hat:openshift:1::el6 | Реестр пакетов (OSV) |
| RubyGems:rack | 1.4.5 | Реестр пакетов (OSV) |
| RubyGems:rack | 1.5.2 | Реестр пакетов (OSV) |
Статус эксплойта
Публичный эксплойт неизвестен
Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.
Контекст для исследователя
Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.
Хронология
От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.
Кроме публикации датированных событий нет.
Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).
Ссылки на патчи и коммиты
Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.
Авторы
Все исследователиНашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.
В записи CNA нет авторов.
Кандидаты в варианты
Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.
Ночной расчёт связей ничего не нашёл.
Кандидаты в цепочки
Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.
—
Охват bug bounty
Известной публичной программы нет.
Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).
Технические детали
Условия атаки
В случае успеха
- Конфиденциальность
- P · данные могут быть прочитаны
- Целостность
- нет
- Доступность
- нет
- Сложность атаки
- M
- Влияние на конфиденциальность
- P
- Влияние на целостность
- Нет
- Влияние на доступность
- Нет
Класс уязвимости (CWE)
CWE-22 · Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')Вектор CVSS
AV:N/AC:M/Au:N/C:P/I:N/A:N
nvd-primary
Первопричина
Имя файла, переданное пользователем, объединяется с разрешённым каталогом, но не проверяется, остаётся ли результат внутри этого каталога.
Ошибка в коде
Весь класс CWE-22Показательный пример этого класса уязвимостей. Это не исходный код вендора; показан ошибочный шаблон и его исправление.
Уязвимый код
const file = path.join(ROOT, req.query.name);res.sendFile(file);Исправленный код
const file = path.resolve(ROOT, req.query.name);if (!file.startsWith(ROOT + path.sep)) { return res.sendStatus(400);}res.sendFile(file);Контекст атаки
Шаблоны атак MITRE CAPEC и техники ATT&CK для этого класса уязвимости (CWE). Отправная точка для правил обнаружения и threat hunting.
Шаблоны атак (CAPEC)
- Path TraversalCAPEC-126вероятность: High · Very High
- Using Slashes and URL Encoding Combined to Bypass Validation LogicCAPEC-64вероятность: High · High
- Manipulating Web Input to File System CallsCAPEC-76вероятность: High · Very High
- Using Escaped Slashes in Alternate EncodingCAPEC-78вероятность: High · High
- Using Slashes in Alternate EncodingCAPEC-79вероятность: High · High
Техники ATT&CK
—
Анализ Noroxi
Анализа Noroxi для этой записи пока нет
Мы не пишем анализ вручную для всех 385 000+ уязвимостей; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.
Мы используем этот продукт, нужна помощьЖурнал изменений
- Исправление✗ → ✓
Для отслеживаемых записей эти изменения приходят и как уведомления. →
Источники
- lists.opensuse.org/opensuse-updates/2013-03/msg00048.html
- rack.github.com/
- secunia.com/advisories/52033
- bugzilla.redhat.com/show_bug.cgi?id=909071
- bugzilla.redhat.com/show_bug.cgi?id=909072
- gist.github.com/rentzsch/4736940
- github.com/rack/rack/blob/master/lib/rack/file.rb#L56
- github.com/rack/rack/commit/6f237e4c9fab649d3750482514f0fde76c56ab30
- groups.google.com/forum/#%21msg/rack-devel/bf937jPZxJM/1s6x95vIhmAJ
- groups.google.com/forum/#%21msg/rack-devel/mZsuRonD7G8/DpZIOmMLbOgJ
Рекомендации вендоров и официальные записи. Ссылки на эксплойты/PoC намеренно исключены.