Debian dla-4706 : ruby-rack - security update
| Reporter | Title | Published | Views | Family All 642 |
|---|---|---|---|---|
| Security Bulletin: IBM Cloud Pak for Data is vulnerable to denial of service due to Rack ( CVE-2024-26141 ) | 21 May 202506:53 | – | ibm | |
| Security Bulletin: IBM Watson Discovery for IBM Cloud Pak for Data affected by vulnerability in rack-2.0.7.gem | 15 Apr 202503:42 | – | ibm | |
| Security Bulletin: Multiple vulnerabilities in IBM Aspera Console | 16 Apr 202622:21 | – | ibm | |
| Security Bulletin: Multiple vulnerabilities in IBM Aspera Enterprise WebApps | 29 Apr 202618:41 | – | ibm | |
| CVE-2026-34830 | 2 Apr 202616:47 | – | attackerkb | |
| CVE-2026-34763 | 2 Apr 202616:43 | – | attackerkb | |
| CVE-2026-34785 | 2 Apr 202616:44 | – | attackerkb | |
| CVE-2026-26961 | 2 Apr 202616:42 | – | attackerkb | |
| CVE-2026-34230 | 2 Apr 202616:41 | – | attackerkb | |
| CVE-2026-34826 | 2 Apr 202616:45 | – | attackerkb |
10
| Source | Link |
|---|---|
| security-tracker | www.security-tracker.debian.org/tracker/source-package/ruby-rack |
| security-tracker | www.security-tracker.debian.org/tracker/CVE-2024-26141 |
| security-tracker | www.security-tracker.debian.org/tracker/CVE-2026-26961 |
| security-tracker | www.security-tracker.debian.org/tracker/CVE-2026-34230 |
| security-tracker | www.security-tracker.debian.org/tracker/CVE-2026-34763 |
| security-tracker | www.security-tracker.debian.org/tracker/CVE-2026-34785 |
| security-tracker | www.security-tracker.debian.org/tracker/CVE-2026-34786 |
| security-tracker | www.security-tracker.debian.org/tracker/CVE-2026-34826 |
| security-tracker | www.security-tracker.debian.org/tracker/CVE-2026-34829 |
| security-tracker | www.security-tracker.debian.org/tracker/CVE-2026-34830 |
10
#%NASL_MIN_LEVEL 80900
#
# (C) Tenable, Inc.
#
# The descriptive text and package checks in this plugin were
# extracted from Debian Security Advisory dla-4706. The text
# itself is copyright (C) Software in the Public Interest, Inc.
#
include('compat.inc');
if (description)
{
script_id(331301);
script_version("1.1");
script_set_attribute(attribute:"plugin_modification_date", value:"2026/07/30");
script_cve_id(
"CVE-2024-26141",
"CVE-2026-26961",
"CVE-2026-34230",
"CVE-2026-34763",
"CVE-2026-34785",
"CVE-2026-34786",
"CVE-2026-34826",
"CVE-2026-34829",
"CVE-2026-34830",
"CVE-2026-34831"
);
script_name(english:"Debian dla-4706 : ruby-rack - security update");
script_set_attribute(attribute:"synopsis", value:
"The remote Debian host is missing one or more security-related updates.");
script_set_attribute(attribute:"description", value:
"The remote Debian 11 / 12 host has a package installed that is affected by multiple vulnerabilities as referenced in the
dla-4706 advisory.
- -------------------------------------------------------------------------
Debian LTS Advisory DLA-4706-1 [email protected]
https://www.debian.org/lts/security/ Abhijith PA
July 31, 2026 https://wiki.debian.org/LTS
- -------------------------------------------------------------------------
Package : ruby-rack
Version : 2.1.4-3+deb11u6 2.2.22-0+deb12u2
CVE ID : CVE-2026-26961 CVE-2026-34230 CVE-2026-34763 CVE-2026-34785
CVE-2026-34786 CVE-2026-34826 CVE-2026-34829 CVE-2026-34830
CVE-2026-34831
Multiple vulnerabilities were found in ruby-rack, a modular Ruby
webserver interface
CVE-2026-26961
Rack::Multipart::Parser extracts the boundary parameter from
multipart/form-data using a greedy regular expression. When a
Content-Type header contains multiple boundary parameters, Rack
selects the last one rather than the first. In deployments where
an upstream proxy, WAF, or intermediary interprets the first
boundary parameter, this mismatch can allow an attacker to smuggle
multipart content past upstream inspection and have Rack parse a
different body structure than the intermediary validated.
CVE-2026-34230
Rack::Utils.select_best_encoding processes Accept-Encoding values
with quadratic time complexity when the header contains many
wildcard (*) entries. Because this method is used by
Rack::Deflater to choose a response encoding, an unauthenticated
attacker can send a single request with a crafted Accept-Encoding
header and cause disproportionate CPU consumption on the
compression middleware path. This results in a denial of service
condition for applications using Rack::Deflater.
CVE-2026-34763
Rack::Directory interpolates the configured root path directly
into a regular expression when deriving the displayed directory
path. If root contains regex metacharacters such as +, *, or .,
the prefix stripping can fail and the generated directory listing
may expose the full filesystem path in the HTML output.
CVE-2026-34785
Rack::Static determines whether a request should be served as a
static file using a simple string prefix check. When configured
with URL prefixes such as /css, it matches any request path that
begins with that string, including unrelated paths such as
/css-config.env or /css-backup.sql. As a result, files under
the static root whose names merely share the configured prefix may
be served unintentionally, leading to information disclosure.
CVE-2026-34786
Rack::Static#applicable_rules evaluates several header_rules types
against the raw URL-encoded PATH_INFO, while the underlying
file-serving path is decoded before the file is served. As a
result, a request for a URL-encoded variant of a static path can
serve the same file without the headers that header_rules were
intended to apply. In deployments that rely on Rack::Static to
attach security-relevant response headers to static content, this
can allow an attacker to bypass those headers by requesting an
encoded form of the path.
CVE-2026-34826
Rack::Utils.get_byte_ranges parses the HTTP Range header without
limiting the number of individual byte ranges. Although the
existing fix for CVE-2024-26141 rejects ranges whose total byte
coverage exceeds the file size, it does not restrict the count of
ranges. An attacker can supply many small overlapping ranges such
as 0-0,0-0,0-0,... to trigger disproportionate CPU, memory, I/O,
and bandwidth consumption per request. This results in a denial of
service condition in Rack file-serving paths that process
multipart byte range responses.
CVE-2026-34829
Rack::Multipart::Parser only wraps the request body in a BoundedIO
when CONTENT_LENGTH is present. When a multipart/form-data request
is sent without a Content-Length header, such as with HTTP chunked
transfer encoding, multipart parsing continues until end-of-stream
with no total size limit. For file parts, the uploaded body is
written directly to a temporary file on disk rather than being
constrained by the buffered in-memory upload limit. An
unauthenticated attacker can therefore stream an arbitrarily large
multipart file upload and consume unbounded disk space. This
results in a denial of service condition for Rack applications
that accept multipart form data.
CVE-2026-34830
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.
CVE-2026-34831
Rack::Files#fail sets the Content-Length response header using
String#size instead of String#bytesize. When the response body
contains multibyte UTF-8 characters, the declared Content-Length
is smaller than the number of bytes actually sent on the
wire. Because Rack::Files reflects the requested path in 404
responses, an attacker can trigger this mismatch by requesting a
non-existent path containing percent-encoded UTF-8
characters. This results in incorrect HTTP response framing and
may cause response desynchronization in deployments that rely on
the incorrect Content-Length value.
For Debian 11 bullseye, these problems have been fixed in version
2.1.4-3+deb11u6.
For Debian 12 bookworm, these problems have been fixed in version
2.2.22-0+deb12u2.
We recommend that you upgrade your ruby-rack packages.
For the detailed security status of ruby-rack please refer to
its security tracker page at:
https://security-tracker.debian.org/tracker/ruby-rack
Further information about Debian LTS security advisories, how to apply
these updates to your system and frequently asked questions can be
found at: https://wiki.debian.org/LTS
Tenable has extracted the preceding description block directly from the Debian security advisory.
Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version
number.");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/source-package/ruby-rack");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2024-26141");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2026-26961");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2026-34230");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2026-34763");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2026-34785");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2026-34786");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2026-34826");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2026-34829");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2026-34830");
script_set_attribute(attribute:"see_also", value:"https://security-tracker.debian.org/tracker/CVE-2026-34831");
script_set_attribute(attribute:"see_also", value:"https://packages.debian.org/source/bookworm/ruby-rack");
script_set_attribute(attribute:"see_also", value:"https://packages.debian.org/source/bullseye/ruby-rack");
script_set_attribute(attribute:"solution", value:
"Upgrade the ruby-rack packages.");
script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:C/I:N/A:N");
script_set_cvss_temporal_vector("CVSS2#E:POC/RL:OF/RC:C");
script_set_cvss3_base_vector("CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N");
script_set_cvss3_temporal_vector("CVSS:3.0/E:P/RL:O/RC:C");
script_set_attribute(attribute:"cvss_score_source", value:"CVE-2026-34830");
script_set_attribute(attribute:"exploitability_ease", value:"Exploits are available");
script_set_attribute(attribute:"exploit_available", value:"true");
script_set_attribute(attribute:"vuln_publication_date", value:"2024/02/28");
script_set_attribute(attribute:"patch_publication_date", value:"2026/07/31");
script_set_attribute(attribute:"plugin_publication_date", value:"2026/07/30");
script_set_attribute(attribute:"plugin_type", value:"local");
script_set_attribute(attribute:"cpe", value:"p-cpe:/a:debian:debian_linux:ruby-rack");
script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:11.0");
script_set_attribute(attribute:"cpe", value:"cpe:/o:debian:debian_linux:12.0");
script_set_attribute(attribute:"generated_plugin", value:"current");
script_end_attributes();
script_category(ACT_GATHER_INFO);
script_family(english:"Debian Local Security Checks");
script_copyright(english:"This script is Copyright (C) 2026 and is owned by Tenable, Inc. or an Affiliate thereof.");
script_dependencies("ssh_get_info.nasl");
script_require_keys("Host/local_checks_enabled", "Host/Debian/release", "Host/Debian/dpkg-l");
exit(0);
}
include('debian_package.inc');
if (!get_kb_item("Host/local_checks_enabled")) audit(AUDIT_LOCAL_CHECKS_NOT_ENABLED);
if (!get_kb_item("Host/Debian/dpkg-l")) audit(AUDIT_PACKAGE_LIST_MISSING);
var debian_release = get_kb_item('Host/Debian/release');
if ( isnull(debian_release) ) audit(AUDIT_OS_NOT, 'Debian');
debian_release = chomp(debian_release);
if (! preg(pattern:"^(11)\.[0-9]+|^(12)\.[0-9]+", string:debian_release)) audit(AUDIT_OS_NOT, 'Debian 11.0 / 12.0', 'Debian ' + debian_release);
var cpu = get_kb_item('Host/cpu');
if (isnull(cpu)) audit(AUDIT_UNKNOWN_ARCH);
if ('x86_64' >!< cpu && cpu !~ "^i[3-6]86$" && 'aarch64' >!< cpu) audit(AUDIT_LOCAL_CHECKS_NOT_IMPLEMENTED, 'Debian', cpu);
var pkgs = [
{'release': '11.0', 'prefix': 'ruby-rack', 'reference': '2.1.4-3+deb11u6'},
{'release': '12.0', 'prefix': 'ruby-rack', 'reference': '2.2.22-0+deb12u2'}
];
var flag = 0;
foreach package_array ( pkgs ) {
var _release = NULL;
var prefix = NULL;
var reference = NULL;
if (!empty_or_null(package_array['release'])) _release = package_array['release'];
if (!empty_or_null(package_array['prefix'])) prefix = package_array['prefix'];
if (!empty_or_null(package_array['reference'])) reference = package_array['reference'];
if (_release && prefix && reference) {
if (deb_check(release:_release, prefix:prefix, reference:reference)) flag++;
}
}
if (flag)
{
security_report_v4(
port : 0,
severity : SECURITY_HOLE,
extra : deb_report_get()
);
exit(0);
}
else
{
var tested = deb_pkg_tests_get();
if (tested) audit(AUDIT_PACKAGE_NOT_AFFECTED, tested);
else audit(AUDIT_PACKAGE_NOT_INSTALLED, 'ruby-rack');
}
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation
30 Jul 2026 00:00Current
6.5Medium risk
Vulners AI Score6.5
CVSS 3.17.5
EPSS0.01612
SSVC