Release date:
2026-08-05 08:42:46 UTC
Description:
* SECURITY UPDATE: ReDoS in the vendored Bundler::URI RFC3986 parser
- debian/patches/CVE-2023-28755.patch: clamp the greedy quantifiers in
Bundler::URI::RFC3986_Parser's RFC3986_URI and RFC3986_relative_ref
to possessive form, so an invalid URI no longer backtracks
quadratically before raising InvalidURIError. NOTE: the 2.7.8
tarball's own two RFC3986 uri copies are already fixed; the
vulnerable parser comes from the ruby-rubygems-bundler-v2.2.24.txz
override tree that replaces lib/bundler at build time, so this
patch is applied from debian/rules after that substitution and is
deliberately NOT listed in debian/patches/series. The vendored
version.rb is left at 0.10.0 so the build-time bundler_uri_version
assertion still holds.
The same patch additionally carries the CVE-2023-36617 follow-up
hardening of the leading whitespace quantifiers of both parsers
that back URI.parse / URI.split, from upstream ruby/uri 9d7bcef
("Fix quadratic backtracking on invalid port number") and 9010ee2
("Fix quadratic backtracking on invalid relative URI"), which
always ship together: the rfc3986 PORT pattern and the rfc2396
ABS_URI / REL_URI patterns each go from greedy to possessive. No
ELSLANG ticket exists for CVE-2023-36617, so it is documented here
and in the patch header rather than listed as a tracked id. Applied to all four in-tree copies
(lib/uri/rfc3986_parser.rb, lib/uri/rfc2396_parser.rb and both
lib/bundler/vendor/uri equivalents), so no copy is left
half-patched; the vendored pair carries the override tree's content
at that point. Both changes are timing-only -- the accepted and
rejected inputs are unchanged -- and upstream's
test_rfc2822_parse_relative_uri and test_rfc3986_port_check
regression tests are added verbatim to test/uri/test_parser.rb.
- CVE-2023-28755
* SECURITY UPDATE: buffer over-read in StringIO#ungetc / #ungetbyte
- debian/patches/CVE-2024-27280.patch: compute the expansion in
strio_unget_bytes() as cl - (rest < 0 ? pos : len) instead of
(rest < 0 ? cl-pos : cl+rest), so pushing back more bytes than the
current position no longer over-extends the string and expose
uninitialized heap memory through StringIO#string and a later
#gets. Adapted byte-identically from upstream ruby/stringio
a35268a; upstream's test_ungetc_fill / test_ungetbyte_fill are
added to test/stringio/test_stringio.rb and equivalent examples to
spec/ruby/library/stringio/ungetc_spec.rb and ungetbyte_spec.rb.
STRINGIO_VERSION is deliberately not bumped because the default
gemspec filename is derived from it.
- CVE-2024-27280
* SECURITY UPDATE: code execution in RDoc via unrestricted deserialisation
- debian/patches/CVE-2024-27281.patch: load .rdoc_options with
YAML.safe_load and permitted_classes: [RDoc::Options, Symbol], and
route all four RDoc::Store Marshal.load call sites through a new
private marshal_load helper whose filter proc rejects any object
that is not a plain scalar/container, Class, Encoding or an
RDoc::-namespaced object. Backported from upstream ruby/rdoc
32ff6ba0 ("Filter marshaled objects"), 60a6d74e ("Use safe_load
and safe_load_file for .rdoc_options") and the mandatory follow-up
a5de13bf ("Fix NoMethodError for start_with"), i.e. rdoc 6.3.4.1.
safe_load_file does not exist in psych 3.1.0, so the .rdoc_options
call uses the earlier upstream form YAML.safe_load File.read(...).
RDoc::VERSION is deliberately not bumped because the spec pins it.
- CVE-2024-27281
* SECURITY UPDATE: arbitrary heap read in the regexp engine
- debian/patches/CVE-2024-27282.patch: bail out of Onigmo's
forward_search_range() and backward_search_range() when reg->dmin
exceeds end - str, so a crafted pattern can no longer advance the
search pointer past the end of the subject and match against
out-of-bounds heap memory. Also record mem_start_stk[mem] before
STACK_PUSH_MEM_END() in OP_MEMORY_END_PUSH_REC, fixing a
use-after-free of the backtrack-stack pointer. Taken verbatim from
the ruby_3_0 backports of upstream 33e5b47c and 989a2355 (ruby
3.0.7); ruby-2.7.8's regexec.c is identical to 3.0.6's at all
three sites.
- CVE-2024-27282
Updated packages:
-
alt-ruby27_2.7.8-7_amd64.deb
sha:6d639681d1d7742f6de4f7dab3c6aacc0f711841
-
alt-ruby27-default-gems_2.7.8-7_amd64.deb
sha:f99d4040b9b415021c77a14858593874bb548caf
-
alt-ruby27-devel_2.7.8-7_amd64.deb
sha:ee9a1fa9007ab1ad2cb28bf3397da5b8b0b848e3
-
alt-ruby27-doc_2.7.8-7_amd64.deb
sha:dfb18de1fae3618d6b34ee24d3ebe0fb5494cd58
-
alt-ruby27-libs_2.7.8-7_amd64.deb
sha:d721df41c3bc3e5c9d1d09fee350a4383bb58322
-
alt-ruby27-rubygem-bigdecimal_2.0.0-7_amd64.deb
sha:1d15cdc581c418782c414e3878be0f3616191311
-
alt-ruby27-rubygem-bundler_2.2.24-7_amd64.deb
sha:6be058c2f715938c59daaac95284ed9595deb48f
-
alt-ruby27-rubygem-io-console_0.5.6-7_amd64.deb
sha:70ae91a5fc2139d19e730599b2bbcc7fc4501936
-
alt-ruby27-rubygem-irb_1.2.6-7_amd64.deb
sha:c1a55eb046e6ee1f00a1ba8d06e454c3c6b8c517
-
alt-ruby27-rubygem-json_2.3.0-7_amd64.deb
sha:62f7c659587684d2404d40682183be9c70841629
-
alt-ruby27-rubygem-minitest_5.13.0-7_amd64.deb
sha:4430c3f7f292405b3a37b272fcaa370def517ef6
-
alt-ruby27-rubygem-net-telnet_0.2.0-7_amd64.deb
sha:67f416ec6cb8b46efde959148206d5fce3c5e697
-
alt-ruby27-rubygem-power-assert_1.1.7-7_amd64.deb
sha:3b156115599f18cb73d4740cbc82aed087f43297
-
alt-ruby27-rubygem-psych_3.1.0-7_amd64.deb
sha:66d7063458bcb2757f6a3613472f54c0606b5fd6
-
alt-ruby27-rubygem-rake_13.0.1-7_amd64.deb
sha:1d843772b13d7f2e0ad8b0ad27b50e81f5ade9be
-
alt-ruby27-rubygem-rdoc_6.2.1.1-7_amd64.deb
sha:9a9d2ba8971ede8db42cdee6439fd70f8bd70910
-
alt-ruby27-rubygem-test-unit_3.3.4-7_amd64.deb
sha:0e8291ae041dec11c38a2b7b51e0577b31cb80c2
-
alt-ruby27-rubygem-typeprof_2.7.8-7_amd64.deb
sha:7556de77c16a6c77e6e242e41f70bd1c0b09ea2c
-
alt-ruby27-rubygem-xmlrpc_0.3.0-7_amd64.deb
sha:405c4acf6c35e92eb6cdf35763af1440209a9d41
-
alt-ruby27-rubygems_3.1.6-7_amd64.deb
sha:ae1fccb7d44aebda6a928e04584e13d573e61881
-
alt-ruby27-rubygems-devel_3.1.6-7_amd64.deb
sha:83e672d4a1d31a57425a006725f46e376118c8a1
Notes:
This page is generated automatically and has not been checked for errors. For clarification or
corrections please contact the
CloudLinux Packaging Team.