Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

github логотип

GHSA-mxw3-3hh2-x2mh

Опубликовано: 17 фев. 2026
Источник: github
Github: Прошло ревью
CVSS3: 7.5

Описание

Rack has a Directory Traversal via Rack:Directory

Summary

Rack::Directory’s path check used a string prefix match on the expanded path. A request like /../root_example/ can escape the configured root if the target path starts with the root string, allowing directory listing outside the intended root.

Details

In directory.rb, File.expand_path(File.join(root, path_info)).start_with?(root) does not enforce a path boundary. If the server root is /var/www/root, a path like /var/www/root_backup passes the check because it shares the same prefix, so Rack::Directory will list that directory also.

Impact

Information disclosure via directory listing outside the configured root when Rack::Directory is exposed to untrusted clients and a directory shares the root prefix (e.g., public2, www_backup).

Mitigation

  • Update to a patched version of Rack that correctly checks the root prefix.
  • Don't name directories with the same prefix as one which is exposed via Rack::Directory.

Пакеты

Наименование

rack

rubygems
Затронутые версииВерсия исправления

< 2.2.22

2.2.22

Наименование

rack

rubygems
Затронутые версииВерсия исправления

>= 3.0.0.beta1, < 3.1.20

3.1.20

Наименование

rack

rubygems
Затронутые версииВерсия исправления

>= 3.2.0, < 3.2.5

3.2.5

EPSS

Процентиль: 22%
0.00074
Низкий

7.5 High

CVSS3

Дефекты

CWE-22
CWE-548

Связанные уязвимости

CVSS3: 7.5
ubuntu
около 1 месяца назад

Rack is a modular Ruby web server interface. Prior to versions 2.2.22, 3.1.20, and 3.2.5, `Rack::Directory`’s path check used a string prefix match on the expanded path. A request like `/../root_example/` can escape the configured root if the target path starts with the root string, allowing directory listing outside the intended root. Versions 2.2.22, 3.1.20, and 3.2.5 fix the issue.

CVSS3: 7.5
redhat
около 1 месяца назад

Rack is a modular Ruby web server interface. Prior to versions 2.2.22, 3.1.20, and 3.2.5, `Rack::Directory`’s path check used a string prefix match on the expanded path. A request like `/../root_example/` can escape the configured root if the target path starts with the root string, allowing directory listing outside the intended root. Versions 2.2.22, 3.1.20, and 3.2.5 fix the issue.

CVSS3: 7.5
nvd
около 1 месяца назад

Rack is a modular Ruby web server interface. Prior to versions 2.2.22, 3.1.20, and 3.2.5, `Rack::Directory`’s path check used a string prefix match on the expanded path. A request like `/../root_example/` can escape the configured root if the target path starts with the root string, allowing directory listing outside the intended root. Versions 2.2.22, 3.1.20, and 3.2.5 fix the issue.

CVSS3: 7.5
debian
около 1 месяца назад

Rack is a modular Ruby web server interface. Prior to versions 2.2.22, ...

EPSS

Процентиль: 22%
0.00074
Низкий

7.5 High

CVSS3

Дефекты

CWE-22
CWE-548