This update to the latest release of Ruby 4.0. Release announcement at
https://www.ruby-lang.org/en/news/2026/09/15/ruby-4-0-7-released/
This includes fixes for:
CVE-2026-80212: Memory exhaustion through malicious DNS responses
CVE-2026-80213: Hostname validation bypass
Tested on amd64. I plan to commit in a couple days unless I hear
objections.
Best,
Jeremy
Index: Makefile
===================================================================
RCS file: /cvs/ports/lang/ruby/4.0/Makefile,v
retrieving revision 1.12
diff -u -p -u -p -r1.12 Makefile
--- Makefile 5 Aug 2026 00:41:53 -0000 1.12
+++ Makefile 15 Sep 2026 19:39:54 -0000
@@ -1,4 +1,4 @@
-VERSION = 4.0.6
+VERSION = 4.0.7
DISTNAME = ruby-${VERSION}
PKGNAME-main = ruby-${VERSION}
PKGNAME-ri_docs = ruby${BINREV}-ri_docs-${VERSION}
Index: distinfo
===================================================================
RCS file: /cvs/ports/lang/ruby/4.0/distinfo,v
retrieving revision 1.7
diff -u -p -u -p -r1.7 distinfo
--- distinfo 5 Aug 2026 00:41:53 -0000 1.7
+++ distinfo 15 Sep 2026 19:39:54 -0000
@@ -1,2 +1,2 @@
-SHA256 (ruby-4.0.6.tar.gz) = g30pno993yvjGiKaen4BnTVJeYJRF5iayzsysam+Jio=
-SIZE (ruby-4.0.6.tar.gz) = 23904779
+SHA256 (ruby-4.0.7.tar.gz) = kRrOIPkNBoyg5N2m0OTw+B5S5S8t1PQATHIeJTQS6C0=
+SIZE (ruby-4.0.7.tar.gz) = 23937964
Index: patches/patch-compile_c
===================================================================
RCS file: /cvs/ports/lang/ruby/4.0/patches/patch-compile_c,v
retrieving revision 1.4
diff -u -p -u -p -r1.4 patch-compile_c
--- patches/patch-compile_c 5 Aug 2026 00:41:53 -0000 1.4
+++ patches/patch-compile_c 15 Sep 2026 19:39:54 -0000
@@ -6,7 +6,7 @@ Avoid unaligned accesses on mips64 and s
Index: compile.c
--- compile.c.orig
+++ compile.c
-@@ -3393,7 +3393,11 @@ static int
+@@ -3392,7 +3392,11 @@ static int
iseq_peephole_optimize(rb_iseq_t *iseq, LINK_ELEMENT *list, const int
do_tailcallopt)
{
INSN *const iobj = (INSN *)list;
@@ -18,7 +18,7 @@ Index: compile.c
again:
optimize_checktype(iseq, iobj);
-@@ -14480,8 +14484,11 @@ static VALUE
+@@ -14471,8 +14475,11 @@ static VALUE
ibf_load_object_complex_rational(const struct ibf_load *load, const struct
ibf_object_header *header, ibf_offset_t offset)
{
const struct ibf_object_complex_rational *nums = IBF_OBJBODY(struct
ibf_object_complex_rational, offset);
Index: pkg/PLIST-main
===================================================================
RCS file: /cvs/ports/lang/ruby/4.0/pkg/PLIST-main,v
retrieving revision 1.7
diff -u -p -u -p -r1.7 PLIST-main
--- pkg/PLIST-main 5 Aug 2026 00:41:53 -0000 1.7
+++ pkg/PLIST-main 15 Sep 2026 19:39:54 -0000
@@ -1451,10 +1451,10 @@ lib/ruby/gems/${REV}/gems/bigdecimal-4.0
lib/ruby/gems/${REV}/gems/bigdecimal-4.0.1/sample/linear.rb
lib/ruby/gems/${REV}/gems/bigdecimal-4.0.1/sample/nlsolve.rb
lib/ruby/gems/${REV}/gems/bigdecimal-4.0.1/sample/pi.rb
-lib/ruby/gems/${REV}/gems/bundler-4.0.16/
-lib/ruby/gems/${REV}/gems/bundler-4.0.16/exe/
-lib/ruby/gems/${REV}/gems/bundler-4.0.16/exe/bundle
-lib/ruby/gems/${REV}/gems/bundler-4.0.16/exe/bundler
+lib/ruby/gems/${REV}/gems/bundler-4.0.20/
+lib/ruby/gems/${REV}/gems/bundler-4.0.20/exe/
+lib/ruby/gems/${REV}/gems/bundler-4.0.20/exe/bundle
+lib/ruby/gems/${REV}/gems/bundler-4.0.20/exe/bundler
lib/ruby/gems/${REV}/gems/csv-3.3.5/
lib/ruby/gems/${REV}/gems/csv-3.3.5/LICENSE.txt
lib/ruby/gems/${REV}/gems/csv-3.3.5/NEWS.md
@@ -1567,9 +1567,9 @@ lib/ruby/gems/${REV}/gems/drb-2.2.3/lib/
lib/ruby/gems/${REV}/gems/drb-2.2.3/lib/drb/version.rb
lib/ruby/gems/${REV}/gems/drb-2.2.3/lib/drb/weakidconv.rb
lib/ruby/gems/${REV}/gems/english-0.8.1/
-lib/ruby/gems/${REV}/gems/erb-6.0.1.1/
-lib/ruby/gems/${REV}/gems/erb-6.0.1.1/libexec/
-lib/ruby/gems/${REV}/gems/erb-6.0.1.1/libexec/erb
+lib/ruby/gems/${REV}/gems/erb-6.0.7/
+lib/ruby/gems/${REV}/gems/erb-6.0.7/libexec/
+lib/ruby/gems/${REV}/gems/erb-6.0.7/libexec/erb
lib/ruby/gems/${REV}/gems/error_highlight-0.7.2/
lib/ruby/gems/${REV}/gems/etc-1.4.6/
lib/ruby/gems/${REV}/gems/fcntl-1.3.0/
@@ -3112,7 +3112,7 @@ lib/ruby/gems/${REV}/gems/repl_type_comp
lib/ruby/gems/${REV}/gems/repl_type_completor-0.1.12/lib/repl_type_completor/version.rb
lib/ruby/gems/${REV}/gems/repl_type_completor-0.1.12/sig/
lib/ruby/gems/${REV}/gems/repl_type_completor-0.1.12/sig/repl_type_completor.rbs
-lib/ruby/gems/${REV}/gems/resolv-0.7.0/
+lib/ruby/gems/${REV}/gems/resolv-0.7.2/
lib/ruby/gems/${REV}/gems/resolv-replace-0.1.1/
lib/ruby/gems/${REV}/gems/resolv-replace-0.1.1/Gemfile
lib/ruby/gems/${REV}/gems/resolv-replace-0.1.1/LICENSE.txt
@@ -3469,13 +3469,13 @@ lib/ruby/gems/${REV}/specifications/bigd
lib/ruby/gems/${REV}/specifications/csv-3.3.5.gemspec
lib/ruby/gems/${REV}/specifications/debug-1.11.1.gemspec
lib/ruby/gems/${REV}/specifications/default/
-lib/ruby/gems/${REV}/specifications/default/bundler-4.0.16.gemspec
+lib/ruby/gems/${REV}/specifications/default/bundler-4.0.20.gemspec
lib/ruby/gems/${REV}/specifications/default/date-3.5.1.gemspec
lib/ruby/gems/${REV}/specifications/default/delegate-0.6.1.gemspec
lib/ruby/gems/${REV}/specifications/default/did_you_mean-2.0.0.gemspec
lib/ruby/gems/${REV}/specifications/default/digest-3.2.1.gemspec
lib/ruby/gems/${REV}/specifications/default/english-0.8.1.gemspec
-lib/ruby/gems/${REV}/specifications/default/erb-6.0.1.1.gemspec
+lib/ruby/gems/${REV}/specifications/default/erb-6.0.7.gemspec
lib/ruby/gems/${REV}/specifications/default/error_highlight-0.7.2.gemspec
lib/ruby/gems/${REV}/specifications/default/etc-1.4.6.gemspec
lib/ruby/gems/${REV}/specifications/default/fcntl-1.3.0.gemspec
@@ -3497,7 +3497,7 @@ lib/ruby/gems/${REV}/specifications/defa
lib/ruby/gems/${REV}/specifications/default/prettyprint-0.2.0.gemspec
lib/ruby/gems/${REV}/specifications/default/prism-1.8.1.gemspec
lib/ruby/gems/${REV}/specifications/default/psych-5.3.1.gemspec
-lib/ruby/gems/${REV}/specifications/default/resolv-0.7.0.gemspec
+lib/ruby/gems/${REV}/specifications/default/resolv-0.7.2.gemspec
lib/ruby/gems/${REV}/specifications/default/ruby2_keywords-0.0.5.gemspec
lib/ruby/gems/${REV}/specifications/default/securerandom-0.4.1.gemspec
lib/ruby/gems/${REV}/specifications/default/shellwords-0.2.2.gemspec
Index: pkg/PLIST-ri_docs
===================================================================
RCS file: /cvs/ports/lang/ruby/4.0/pkg/PLIST-ri_docs,v
retrieving revision 1.5
diff -u -p -u -p -r1.5 PLIST-ri_docs
--- pkg/PLIST-ri_docs 5 Aug 2026 00:41:53 -0000 1.5
+++ pkg/PLIST-ri_docs 15 Sep 2026 19:39:55 -0000
@@ -1727,6 +1727,7 @@ share/ri/${REV}/system/Gem/BasicSpecific
share/ri/${REV}/system/Gem/BasicSpecification/have_extensions%3f-i.ri
share/ri/${REV}/system/Gem/BasicSpecification/have_file%3f-i.ri
share/ri/${REV}/system/Gem/BasicSpecification/ignored%3f-i.ri
+share/ri/${REV}/system/Gem/BasicSpecification/lib_dirs-i.ri
share/ri/${REV}/system/Gem/BasicSpecification/lib_dirs_glob-i.ri
share/ri/${REV}/system/Gem/BasicSpecification/loaded_from-i.ri
share/ri/${REV}/system/Gem/BasicSpecification/matches_for_glob-i.ri
@@ -2247,6 +2248,7 @@ share/ri/${REV}/system/Gem/Ext/Builder/r
share/ri/${REV}/system/Gem/Ext/Builder/run-c.ri
share/ri/${REV}/system/Gem/Ext/Builder/shelljoin-c.ri
share/ri/${REV}/system/Gem/Ext/Builder/shellsplit-c.ri
+share/ri/${REV}/system/Gem/Ext/Builder/shellsplit_command-c.ri
share/ri/${REV}/system/Gem/Ext/CargoBuilder/
share/ri/${REV}/system/Gem/Ext/CargoBuilder/DylibNotFoundError/
share/ri/${REV}/system/Gem/Ext/CargoBuilder/DylibNotFoundError/cdesc-DylibNotFoundError.ri
@@ -3212,6 +3214,8 @@ share/ri/${REV}/system/Gem/SafeMarshal/R
share/ri/${REV}/system/Gem/SafeMarshal/Reader/EOFError/cdesc-EOFError.ri
share/ri/${REV}/system/Gem/SafeMarshal/Reader/Error/
share/ri/${REV}/system/Gem/SafeMarshal/Reader/Error/cdesc-Error.ri
+share/ri/${REV}/system/Gem/SafeMarshal/Reader/LengthTooLongError/
+share/ri/${REV}/system/Gem/SafeMarshal/Reader/LengthTooLongError/cdesc-LengthTooLongError.ri
share/ri/${REV}/system/Gem/SafeMarshal/Reader/NegativeLengthError/
share/ri/${REV}/system/Gem/SafeMarshal/Reader/NegativeLengthError/cdesc-NegativeLengthError.ri
share/ri/${REV}/system/Gem/SafeMarshal/Reader/NotImplementedError/
@@ -3229,6 +3233,7 @@ share/ri/${REV}/system/Gem/SafeMarshal/R
share/ri/${REV}/system/Gem/SafeMarshal/Reader/read_bytes-i.ri
share/ri/${REV}/system/Gem/SafeMarshal/Reader/read_class-i.ri
share/ri/${REV}/system/Gem/SafeMarshal/Reader/read_class_or_module-i.ri
+share/ri/${REV}/system/Gem/SafeMarshal/Reader/read_count-i.ri
share/ri/${REV}/system/Gem/SafeMarshal/Reader/read_data-i.ri
share/ri/${REV}/system/Gem/SafeMarshal/Reader/read_element-i.ri
share/ri/${REV}/system/Gem/SafeMarshal/Reader/read_extended_object-i.ri