CVE-2025-27610 Information
Description
Rack provides an interface for developing web applications in Ruby. Prior to versions 2.2.13 3.0.14 and 3.1.12 Rack::Static can serve files under the specified root: even if urls: are provided which may expose other files under the specified root: unexpectedly. The vulnerability occurs because Rack::Static does not properly sanitize user-supplied paths before serving files. Specifically encoded path traversal sequences are not correctly validated allowing attackers to access files outside the designated static file directory. By exploiting this vulnerability an attacker can gain access to all files under the specified root: directory provided they are able to determine then path of the file. Versions 2.2.13 3.0.14 and 3.1.12 contain a patch for the issue. Other mitigations include removing usage of Rack::Static or ensuring that root: points at a directory path which only contains files which should be accessed publicly. It is likely that a CDN or similar static file server would also mitigate the issue.
Reference
https://github.com/rack/rack/commit/50caab74fa01ee8f5dbdee7bb2782126d20c6583
https://github.com/rack/rack/security/advisories/GHSA-7wqh-767x-r66v
Rack
provides
an
interface
for
developing
web
applications
in
Ruby.
Prior
to
versions
2.2.13
3.0.14
and
3.1.12
Rack::Static
can
serve
files
under
the
specified
root:
even
if
urls:
are
provided
which
may
expose
other
files
under
the
specified
root:
unexpectedly.
The
vulnerability
occurs
because
Rack::Static
does
not
properly
sanitize
user-supplied
paths
before
serving
files.
Specifically
encoded
path
traversal
sequences
are
not
correctly
validated
allowing
attackers
to
access
files
outside
the
designated
static
file
directory.
By
exploiting
this
vulnerability
an
attacker
can
gain
access
to
all
files
under
the
specified
root:
directory
provided
they
are
able
to
determine
then
path
of
the
file.
Versions
2.2.13
3.0.14
and
3.1.12
contain
a
patch
for
the
issue.
Other
mitigations
include
removing
usage
of
Rack::Static
or
ensuring
that
root:
points
at
a
directory
path
which
only
contains
files
which
should
be
accessed
publicly.
It
is
likely
that
a
CDN
or
similar
static
file
server
would
also
mitigate
the
issue.