[CLSA-2026:1785835914] Fix CVE(s): CVE-2023-28755, CVE-2024-27280, CVE-2024-27281, CVE-2024-27282
Type:
security
Severity:
Moderate
Release date:
2026-08-04 09:32:08 UTC
Description:
* SECURITY UPDATE: uri ReDoS in the RFC3986 and RFC2396 parsers - debian/patches/CVE-2023-28755.patch: clamp the greedy quantifiers of RFC3986_URI and RFC3986_relative_ref in lib/uri/rfc3986_parser.rb to possessive ones (17 * -> *+, 9 + -> ++), so a crafted URI such as URI.parse('https://example.com/dir/' + 'a' * 80000 + '/##.jpg') no longer backtracks quadratically, and add the (?: ) group around IPv6address/IPvFuture that RFC3986_relative_ref was missing. Backport of upstream ruby/uri 37770c2 and 17861a5 (uri 0.10.0.1). The same patch also carries the CVE-2023-36617 follow-up, which upstream describes as existing "because of an incomplete fix for CVE-2023-28755": the two leading quantifiers the original fix left greedy, one in each parser. In lib/uri/rfc3986_parser.rb the whitespace run of the PORT component regexp of RFC3986_Parser#default_regexp is clamped to a possessive quantifier, and in lib/uri/rfc2396_parser.rb the leading '\A\s*' of the ABS_URI and REL_URI patterns built by RFC2396_Parser#initialize_regexp becomes '\A\s*+', so URI.parse('http://my.example.com').port = "\t" * 8000 + 'a' and URI::RFC2396_Parser.new.split(' ' * 8000 + "\0") no longer backtrack quadratically either. Backport of upstream ruby/uri 9010ee2 and 9d7bcef, folded into the same patch since upstream never ships one parser's fix without the other's and both are the same defect class; the patch header records the full provenance. This tree has a single uri copy (pre-gemified, no bundler-vendored copy) and it is now hardened in both parsers; no vendored version string is touched. - CVE-2023-28755 - CVE-2023-36617 * SECURITY UPDATE: stringio buffer overread in ungetc/ungetbyte - debian/patches/CVE-2024-27280.patch: in ext/stringio/stringio.c, strio_unget_bytes() computed the string growth as cl+rest when the position is at or past the end, so rb_str_set_len() declared cl+pos valid bytes while only cl were written and the tail of the returned String exposed stale heap contents. Grow by cl - (rest < 0 ? pos : len) instead. Backport of upstream ruby/stringio a35268a (stringio 3.0.1.1). - CVE-2024-27280 * SECURITY UPDATE: rdoc code execution via .rdoc_options and ri cache - debian/patches/CVE-2024-27281.patch: RDoc::RDoc#load_options read ./.rdoc_options with YAML.load_file and RDoc::Store loaded the ri cache with a bare Marshal.load, so a crafted project directory or ri cache instantiated arbitrary objects. Load the options file with YAML.safe_load(permitted_classes: [RDoc::Options, Symbol]) and pass a MarshalFilter proc to Marshal.load that only admits plain data types and RDoc's own classes. Backport of upstream ruby/rdoc 32ff6ba0, 60a6d74e and a5de13bf (rdoc 6.3.4 + 6.3.4.1), with safe_load_file expressed as safe_load(File.read(...)) because psych 3.1.0 has no safe_load_file. - CVE-2024-27281 * SECURITY UPDATE: regexp arbitrary heap read in Onigmo search - debian/patches/CVE-2024-27282.patch: onig_search() clamps reg->dmax to the end of the subject but not reg->dmin, so forward_search_range() (p += reg->dmin) and backward_search_range() (range += reg->dmin) could scan for the exact/map target past the end of the subject buffer. Reject the search when reg->dmin exceeds the subject length. Backport of upstream ruby/ruby 33e5b47c (Ruby 3.0.7). - CVE-2024-27282
Updated packages:
  • alt-ruby26_2.6.10-20_amd64.deb
    sha:693de34c9b33dad9470b83c33fcce501ccbf8834
  • alt-ruby26-default-gems_2.6.10-20_amd64.deb
    sha:bf5f19c06263e0a43634bc7c5f2b47c43bb1ee8b
  • alt-ruby26-devel_2.6.10-20_amd64.deb
    sha:aed4c55d1551365e9b2707c461d3cb75c165c6e9
  • alt-ruby26-devel-doc_2.6.10-20_amd64.deb
    sha:5e8fc617d318170814fcf10d8b505d85b9ef0e41
  • alt-ruby26-doc_2.6.10-20_amd64.deb
    sha:cb26df5da1c20f5ff3d68698edbf058b592d3181
  • alt-ruby26-libs_2.6.10-20_amd64.deb
    sha:03adfdcd8ca142fc16c7627c4b980b37c62ecdf7
  • alt-ruby26-rubygem-bigdecimal_1.4.1-20_amd64.deb
    sha:d9f39087621deb55cda45a69957149600b1507a4
  • alt-ruby26-rubygem-did-you-mean_2.6.10-20_amd64.deb
    sha:74b4972c97db99c769f160c7c0cda0897066507e
  • alt-ruby26-rubygem-io-console_0.4.7-20_amd64.deb
    sha:35ef02bcfd0e36fce75f625605994a62658061f8
  • alt-ruby26-rubygem-json_2.1.0-20_amd64.deb
    sha:5070acf37917299707c1d4976db3468531546106
  • alt-ruby26-rubygem-minitest_5.11.3-20_amd64.deb
    sha:287d008ccf89780968a1dd02114a3d10932785a3
  • alt-ruby26-rubygem-net-telnet_0.2.0-20_amd64.deb
    sha:43d0dcd47451da890551f2cdd2b696a232b022c5
  • alt-ruby26-rubygem-openssl_2.6.10-20_amd64.deb
    sha:950819211171149f0e36507da82ad220ef621bf7
  • alt-ruby26-rubygem-power-assert_1.1.3-20_amd64.deb
    sha:cb97e246ab184630f1faa12a964fd5137113879e
  • alt-ruby26-rubygem-psych_3.1.0-20_amd64.deb
    sha:795aaef585cd440a9c9ce7b7d8ae28e9f67756ab
  • alt-ruby26-rubygem-rake_12.3.3-20_amd64.deb
    sha:bd2213ce9cf2b1315fe72c2346c2030712db8065
  • alt-ruby26-rubygem-rdoc_6.1.2.1-20_amd64.deb
    sha:854bb1bebb82f78f042ecaec7fef1b51cdb07524
  • alt-ruby26-rubygem-test-unit_3.2.9-20_amd64.deb
    sha:1f1014fdb95898e14cb5407ec75b23b22ea3a748
  • alt-ruby26-rubygem-typeprof_2.6.10-20_amd64.deb
    sha:a56d431be2c3a9bd18d9250149c9a84ce1d97082
  • alt-ruby26-rubygem-xmlrpc_0.3.0-20_amd64.deb
    sha:8d141cc2ba0bcd1bdad226fd849268676b09fc18
  • alt-ruby26-rubygems_3.0.3.1-20_amd64.deb
    sha:1b7d96f61409ef6a3bdcf79a07a7b1bf80be8bc0
  • alt-ruby26-rubygems-devel_3.0.3.1-20_amd64.deb
    sha:15cb2afc3f430c0309df0f19ed546913e97d12cd
  • alt-ruby26_2.6.10-20_arm64.deb
    sha:b7f88cead418dba79aabe9428e7ae974823fda05
  • alt-ruby26-default-gems_2.6.10-20_arm64.deb
    sha:b4f6edd655e73906f457bbef0c0eb6e4379496c6
  • alt-ruby26-devel_2.6.10-20_arm64.deb
    sha:03baec682e33213c4205b4d1fd58b733e0de1062
  • alt-ruby26-devel-doc_2.6.10-20_arm64.deb
    sha:5824673eb1f92fd4df54cbed8e9babf23009bae2
  • alt-ruby26-doc_2.6.10-20_arm64.deb
    sha:445f44e2207304bdca2bd1ba59a8c239f780fa22
  • alt-ruby26-libs_2.6.10-20_arm64.deb
    sha:fe1330b6c9df651f958c447883f8a5678746eaa0
  • alt-ruby26-rubygem-bigdecimal_1.4.1-20_arm64.deb
    sha:f6633b1ea67ed65d1e02c6c3203d317a6d028f25
  • alt-ruby26-rubygem-did-you-mean_2.6.10-20_arm64.deb
    sha:b01fbc8af334e19d2d50620db43369d1d270efc5
  • alt-ruby26-rubygem-io-console_0.4.7-20_arm64.deb
    sha:061c54740b602a92e9348ba4b52534de636f20b4
  • alt-ruby26-rubygem-json_2.1.0-20_arm64.deb
    sha:08d53f813a7b05a688532a0a239de269d5536114
  • alt-ruby26-rubygem-minitest_5.11.3-20_arm64.deb
    sha:a016e07879affb7cb513f40481a35751b99f34b1
  • alt-ruby26-rubygem-net-telnet_0.2.0-20_arm64.deb
    sha:a6468eb37b654e5b4ccc65733e3e3388ec66cb64
  • alt-ruby26-rubygem-openssl_2.6.10-20_arm64.deb
    sha:5520593d86828af68b4dcc3505e6d82682dbacbc
  • alt-ruby26-rubygem-power-assert_1.1.3-20_arm64.deb
    sha:09c4d58f3207ff70697ebf95c97e5deea7a6180b
  • alt-ruby26-rubygem-psych_3.1.0-20_arm64.deb
    sha:7deeaff5d190ef678a370819add4de033d43ff26
  • alt-ruby26-rubygem-rake_12.3.3-20_arm64.deb
    sha:26b5f36ee124605e9694152ed9dc1e6331f6254c
  • alt-ruby26-rubygem-rdoc_6.1.2.1-20_arm64.deb
    sha:2eed5278f368c13378e0d3f9b7bcac69ba5f4041
  • alt-ruby26-rubygem-test-unit_3.2.9-20_arm64.deb
    sha:f86aa42b36e5c4842edb041ca1b96c7c4d9e3712
  • alt-ruby26-rubygem-typeprof_2.6.10-20_arm64.deb
    sha:6f2a9a1d79261f66c9b202d06287b9d1e60b26f6
  • alt-ruby26-rubygem-xmlrpc_0.3.0-20_arm64.deb
    sha:764b36f6975fb0f53ff44610a56608ebdb908751
  • alt-ruby26-rubygems_3.0.3.1-20_arm64.deb
    sha:2db103150329450ad3cbbc6ebe32d7dedf7a16e5
  • alt-ruby26-rubygems-devel_3.0.3.1-20_arm64.deb
    sha:d95fc6bb99e8f832b020f76c4b3071a57e6d4ca4
Notes:
This page is generated automatically and has not been checked for errors. For clarification or corrections please contact the CloudLinux Packaging Team.