[CLSA-2026:1785910290] Fix CVE(s): CVE-2023-28755, CVE-2024-27280, CVE-2024-27281, CVE-2024-27282
Type:
security
Severity:
Moderate
Release date:
2026-08-05 06:11:45 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:03ac1b7180e116c4ec83a227f5db7633c56413e8
  • alt-ruby26-default-gems_2.6.10-20_amd64.deb
    sha:bf5f19c06263e0a43634bc7c5f2b47c43bb1ee8b
  • alt-ruby26-devel_2.6.10-20_amd64.deb
    sha:a323ff651dfcf1b84e501f55d9792097196bac43
  • 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:75a85df79a9b485dc1e041d4bd18d006c768a10f
  • alt-ruby26-rubygem-bigdecimal_1.4.1-20_amd64.deb
    sha:42d66fe97b0f7bd6b44cae2710951533256eaa9e
  • 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:6c33762d04f6d8c4e7d5d5bf90c5bb3a4c491db3
  • alt-ruby26-rubygem-json_2.1.0-20_amd64.deb
    sha:6c3a57b859c6d66fb1c53dfba9e10d9a93d986c5
  • 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:84c5ca5eb9344fa63b898b57a37a579fbc289057
  • alt-ruby26-rubygem-power-assert_1.1.3-20_amd64.deb
    sha:cb97e246ab184630f1faa12a964fd5137113879e
  • alt-ruby26-rubygem-psych_3.1.0-20_amd64.deb
    sha:b0e3382a22f9344abdf2f7b64aec8bf781415e24
  • 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:5b5c5a9793d27a975c8832257901de71b363ce44
  • alt-ruby26-default-gems_2.6.10-20_arm64.deb
    sha:b4f6edd655e73906f457bbef0c0eb6e4379496c6
  • alt-ruby26-devel_2.6.10-20_arm64.deb
    sha:04459d2b899fa879ea7a3526ff6acca23d0b7ab3
  • 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:c1c0eb21973f79ef55208ebd90c3743c4249d8e1
  • alt-ruby26-rubygem-bigdecimal_1.4.1-20_arm64.deb
    sha:6d332bb8db91ba93a863392785c42bf633dbe09d
  • 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:3186f735b56e9d750cc59cdd759a3b20307dc1d8
  • alt-ruby26-rubygem-json_2.1.0-20_arm64.deb
    sha:5b3b886aadbbc153e3d725b544c3f0a77cb8645f
  • 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:417e4fb11430b393f1567c817c22e7d4f7ca25c6
  • alt-ruby26-rubygem-power-assert_1.1.3-20_arm64.deb
    sha:09c4d58f3207ff70697ebf95c97e5deea7a6180b
  • alt-ruby26-rubygem-psych_3.1.0-20_arm64.deb
    sha:954887c6029c4829e6e0d9df6f0846aa72bb5a83
  • 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.