[CLSA-2026:1785917956] Fix CVE(s): CVE-2023-28755, CVE-2024-27280, CVE-2024-27281, CVE-2024-27282
Type:
security
Severity:
Moderate
Release date:
2026-08-05 08:19:35 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:6244b7b106b24cafa8dd4ac2e6b138dd0674ffa3
  • alt-ruby27-default-gems_2.7.8-7_amd64.deb
    sha:772977fed9865f2017a9117deb32ad625d4a04f8
  • alt-ruby27-devel_2.7.8-7_amd64.deb
    sha:7619f9fec53a559152fb0132c569fb97cf1c8b6b
  • alt-ruby27-doc_2.7.8-7_amd64.deb
    sha:405bd117f636b263c7e634f1919acd4b17546c01
  • alt-ruby27-libs_2.7.8-7_amd64.deb
    sha:883ec4293e1adad609a1f2704668a6c91c216b77
  • alt-ruby27-rubygem-bigdecimal_2.0.0-7_amd64.deb
    sha:e4996a0de964c91c07137de5412ed82da6d8b26f
  • alt-ruby27-rubygem-bundler_2.2.24-7_amd64.deb
    sha:ed45c5545104356bd2dee83caf5a18b2df3484f2
  • alt-ruby27-rubygem-io-console_0.5.6-7_amd64.deb
    sha:5c7a15688757a389207602b26c3ca3222aa08a95
  • alt-ruby27-rubygem-irb_1.2.6-7_amd64.deb
    sha:c23f1e8797ec8dfd1c2eed2c65f588147d1aee0e
  • alt-ruby27-rubygem-json_2.3.0-7_amd64.deb
    sha:59c1377fe441eef265fe3d3b167b088340bbe135
  • alt-ruby27-rubygem-minitest_5.13.0-7_amd64.deb
    sha:5a2b1981295ecdb7b82616d5564cb6653fbce4ee
  • alt-ruby27-rubygem-net-telnet_0.2.0-7_amd64.deb
    sha:afb041111a4bd7735acd98b660bbfff5e7063533
  • alt-ruby27-rubygem-power-assert_1.1.7-7_amd64.deb
    sha:1daed974eae7f8d0348ede038ca8a92568e902e0
  • alt-ruby27-rubygem-psych_3.1.0-7_amd64.deb
    sha:f5df2279d59cc9a2b69059fd7734be739d9d0a64
  • alt-ruby27-rubygem-rake_13.0.1-7_amd64.deb
    sha:e70efa145988a856a6ed921e10f09d8dfb99e2a7
  • alt-ruby27-rubygem-rdoc_6.2.1.1-7_amd64.deb
    sha:de8c842f28e502467b02cf1204f88522365009d2
  • alt-ruby27-rubygem-test-unit_3.3.4-7_amd64.deb
    sha:c402182842f81dc1f5573f9a141dc943c73afa42
  • alt-ruby27-rubygem-typeprof_2.7.8-7_amd64.deb
    sha:8ad4fe9ea1b570aadde0ea4038ff08472b673125
  • alt-ruby27-rubygem-xmlrpc_0.3.0-7_amd64.deb
    sha:6106a7f9fb566b2dd8695cba6313a340674c108d
  • alt-ruby27-rubygems_3.1.6-7_amd64.deb
    sha:17fa880d86f833d67494e3721bbc361d4870f632
  • alt-ruby27-rubygems-devel_3.1.6-7_amd64.deb
    sha:e8f4ab0c458754f74a70251d473d384b103e2b0f
  • alt-ruby27_2.7.8-7_arm64.deb
    sha:4d4e980b1e646b723530aa75d63b17458adacd3c
  • alt-ruby27-default-gems_2.7.8-7_arm64.deb
    sha:17be76edf76da14b20d89d4977723d6306a2e17a
  • alt-ruby27-devel_2.7.8-7_arm64.deb
    sha:6b59a6acdbc79f89fa353d8a524fd877bbb73b72
  • alt-ruby27-doc_2.7.8-7_arm64.deb
    sha:669a83fbee541bae30cf19566e5e60320b593be4
  • alt-ruby27-libs_2.7.8-7_arm64.deb
    sha:286010d531db7d86ce8a6cc415a5e3a122a2857b
  • alt-ruby27-rubygem-bigdecimal_2.0.0-7_arm64.deb
    sha:91011909356d607208a7918ed5ebaedc4a0f1107
  • alt-ruby27-rubygem-bundler_2.2.24-7_arm64.deb
    sha:d4ca51c56b25ad18d948cb4267d34dc75d84d72d
  • alt-ruby27-rubygem-io-console_0.5.6-7_arm64.deb
    sha:50b28037832ad00e78dd0ec72bd0f75c9584f85c
  • alt-ruby27-rubygem-irb_1.2.6-7_arm64.deb
    sha:0e4b1d95c8ddcdc4018731512fc587e4dc005718
  • alt-ruby27-rubygem-json_2.3.0-7_arm64.deb
    sha:1686eaac5f96d582f7210e7c09aaae2f562f82ec
  • alt-ruby27-rubygem-minitest_5.13.0-7_arm64.deb
    sha:c2e3d605450c00a44887ed24abcf6416febf4133
  • alt-ruby27-rubygem-net-telnet_0.2.0-7_arm64.deb
    sha:f5d738b8549630fd8e33723f9ba549e2722fb375
  • alt-ruby27-rubygem-power-assert_1.1.7-7_arm64.deb
    sha:ecd7516c95f44089dc04eb35e0c1a27f5bc44cd1
  • alt-ruby27-rubygem-psych_3.1.0-7_arm64.deb
    sha:ca2f38254f0017df4c6bbd09266c16c4be623da4
  • alt-ruby27-rubygem-rake_13.0.1-7_arm64.deb
    sha:fb047a18940719afff7e089ef5723fd9455ac6fe
  • alt-ruby27-rubygem-rdoc_6.2.1.1-7_arm64.deb
    sha:c9319769181ffae597d33cf754ad006009a3a33c
  • alt-ruby27-rubygem-test-unit_3.3.4-7_arm64.deb
    sha:ccf8771a490720317c311d462d4cdb6f94c19d70
  • alt-ruby27-rubygem-typeprof_2.7.8-7_arm64.deb
    sha:867b32dca1337a24af579fa278663bb9fcf64efd
  • alt-ruby27-rubygem-xmlrpc_0.3.0-7_arm64.deb
    sha:1ab6addca4bd715e0383f849a5a9a0d5c01a97d9
  • alt-ruby27-rubygems_3.1.6-7_arm64.deb
    sha:00510e04f4fbf9b7e1b3336e06c3b2485a116b65
  • alt-ruby27-rubygems-devel_3.1.6-7_arm64.deb
    sha:52b8e7eb7324b56f83432fcbc906c082a63533a5
Notes:
This page is generated automatically and has not been checked for errors. For clarification or corrections please contact the CloudLinux Packaging Team.