Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rubygem-rails-html-sanitizer for 
openSUSE:Factory checked in at 2026-11-06 19:47:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-rails-html-sanitizer (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-rails-html-sanitizer.new.3759290 
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-rails-html-sanitizer"

Fri Nov  6 19:47:31 2026 rev:15 rq:1395480 version:1.7.2

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/rubygem-rails-html-sanitizer/rubygem-rails-html-sanitizer.changes
        2026-09-10 11:51:13.184158885 +0200
+++ 
/work/SRC/openSUSE:Factory/.rubygem-rails-html-sanitizer.new.3759290/rubygem-rails-html-sanitizer.changes
   2026-11-06 19:53:40.073357459 +0100
@@ -1,0 +2,48 @@
+Wed Nov  4 10:24:46 UTC 2026 - Marcus Rueckert <[email protected]>
+
+- update to 1.7.2
+  - Deciding whether an SVG `href` or `xlink:href` is a local
+    reference no longer takes quadratic time.
+
+    `PermitScrubber` matched the attribute value against a pattern
+    that rescanned the value's whitespace run from every line
+    start, so an all-whitespace value took seconds to scrub. Only
+    Ruby 3.1 and earlier are affected, because Ruby 3.2 introduced
+    linear-time regexp matching. Through `PermitScrubber`,
+    applications are only affected if the allowed tags are
+    overridden to include an SVG reference element such as `use`;
+    the default configuration is not affected.
+
+    This change addresses GHSA-cpgf-5mjf-73p7. `PermitScrubber` now
+    applies the html5lib attribute value rules by calling
+    `Loofah::HTML5::Scrub.scrub_attribute_value` rather than
+    carrying its own copy. The minimum Loofah dependency is now `~>
+    2.25, >= 2.25.3`.
+
+    *Mike Dalessio*
+
+  - rails-html-sanitizer now requires Ruby >= 3.2, because Loofah
+    2.25.3 requires it.
+
+    The `1.6.x` and `1.5.x` release branches no longer receive
+    security updates. Every Rails release in security support
+    accepts rails-html-sanitizer 1.7 and requires Ruby >= 3.2.
+
+    *Mike Dalessio*
+
+  - `SafeListSanitizer` no longer shares a `PermitScrubber` across
+    calls.
+
+    Previously one sanitizer instance reused a single
+    `PermitScrubber`, assigning its `tags` and `attributes` on
+    every call. Action View memoizes one sanitizer per helper
+    module, so two concurrent `sanitize` calls with different
+    `tags:` or `attributes:` options could interleave and one call
+    could be scrubbed with the other call's allowlist. Each call
+    now builds its own `PermitScrubber`.
+
+    This change addresses GHSA-h7wh-q2qr-458c.
+
+    *Mike Dalessio*
+
+-------------------------------------------------------------------
@@ -129,0 +178,5 @@
+
+-------------------------------------------------------------------
+Sun May 14 01:31:23 UTC 2023 - Marcus Rueckert <[email protected]>
+
+- cleanup ruby version restrictions

Old:
----
  rails-html-sanitizer-1.7.1.gem

New:
----
  rails-html-sanitizer-1.7.2.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-rails-html-sanitizer.spec ++++++
--- /var/tmp/diff_new_pack.Ig18qm/_old  2026-11-06 19:53:41.116401132 +0100
+++ /var/tmp/diff_new_pack.Ig18qm/_new  2026-11-06 19:53:41.119401258 +0100
@@ -16,19 +16,25 @@
 #
 
 
+#
+# This file was generated with a gem2rpm.yml and not just plain gem2rpm.
+# All sections marked as MANUAL, license headers, summaries and descriptions
+# can be maintained in that file. Please consult this file before editing any
+# of those fields
+#
+
 Name:           rubygem-rails-html-sanitizer
-Version:        1.7.1
+Version:        1.7.2
 Release:        0
 %define mod_name rails-html-sanitizer
 %define mod_full_name %{mod_name}-%{version}
-BuildRequires:  %{ruby >= 2.7.0}
+BuildRequires:  %{ruby >= 3.2.0}
 BuildRequires:  %{rubygem gem2rpm}
 BuildRequires:  ruby-macros >= 5
 URL:            https://github.com/rails/rails-html-sanitizer
 Source:         https://rubygems.org/gems/%{mod_full_name}.gem
-# This file was generated with a gem2rpm.yml and not just plain gem2rpm.
 Source1:        gem2rpm.yml
-Summary:        This gem is responsible to sanitize HTML fragments in Rails
+Summary:        HTML sanitization to Rails applications (part of Rails)
 License:        MIT
 
 %description

++++++ rails-html-sanitizer-1.7.1.gem -> rails-html-sanitizer-1.7.2.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/CHANGELOG.md new/CHANGELOG.md
--- old/CHANGELOG.md    1980-01-02 01:00:00.000000000 +0100
+++ new/CHANGELOG.md    1980-01-02 01:00:00.000000000 +0100
@@ -1,3 +1,42 @@
+## next / unreleased
+
+
+## v1.7.2 / 2026-11-02
+
+* Deciding whether an SVG `href` or `xlink:href` is a local reference no 
longer takes quadratic time.
+
+  `PermitScrubber` matched the attribute value against a pattern that 
rescanned the value's
+  whitespace run from every line start, so an all-whitespace value took 
seconds to scrub. Only
+  Ruby 3.1 and earlier are affected, because Ruby 3.2 introduced linear-time 
regexp matching.
+  Through `PermitScrubber`, applications are only affected if the allowed tags 
are overridden to
+  include an SVG reference element such as `use`; the default configuration is 
not affected.
+
+  This change addresses GHSA-cpgf-5mjf-73p7. `PermitScrubber` now applies the 
html5lib attribute
+  value rules by calling `Loofah::HTML5::Scrub.scrub_attribute_value` rather 
than carrying its own
+  copy. The minimum Loofah dependency is now `~> 2.25, >= 2.25.3`.
+
+  *Mike Dalessio*
+
+* rails-html-sanitizer now requires Ruby >= 3.2, because Loofah 2.25.3 
requires it.
+
+  The `1.6.x` and `1.5.x` release branches no longer receive security updates. 
Every Rails release
+  in security support accepts rails-html-sanitizer 1.7 and requires Ruby >= 
3.2.
+
+  *Mike Dalessio*
+
+* `SafeListSanitizer` no longer shares a `PermitScrubber` across calls.
+
+  Previously one sanitizer instance reused a single `PermitScrubber`, 
assigning its `tags` and
+  `attributes` on every call. Action View memoizes one sanitizer per helper 
module, so two
+  concurrent `sanitize` calls with different `tags:` or `attributes:` options 
could interleave and
+  one call could be scrubbed with the other call's allowlist. Each call now 
builds its own
+  `PermitScrubber`.
+
+  This change addresses GHSA-h7wh-q2qr-458c.
+
+  *Mike Dalessio*
+
+
 ## v1.7.1 / 2026-07-15
 
 * SVG reference elements now restrict both `href` and `xlink:href` to local 
references.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/README.md new/README.md
--- old/README.md       1980-01-02 01:00:00.000000000 +0100
+++ new/README.md       1980-01-02 01:00:00.000000000 +0100
@@ -234,8 +234,9 @@
 
 | branch | ruby support | actively maintained | security support               
        |
 
|--------|--------------|---------------------|----------------------------------------|
-| 1.6.x  | >= 2.7       | yes                 | yes                            
        |
-| 1.5.x  | >= 2.5       | no                  | while Rails 6.1 is in security 
support |
+| 1.7.x  | >= 3.2       | yes                 | yes                            
        |
+| 1.6.x  | >= 2.7       | no                  | no                             
        |
+| 1.5.x  | >= 2.5       | no                  | no                             
        |
 | 1.4.x  | >= 1.8.7     | no                  | no                             
        |
 
 
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rails/html/sanitizer/version.rb 
new/lib/rails/html/sanitizer/version.rb
--- old/lib/rails/html/sanitizer/version.rb     1980-01-02 01:00:00.000000000 
+0100
+++ new/lib/rails/html/sanitizer/version.rb     1980-01-02 01:00:00.000000000 
+0100
@@ -3,7 +3,7 @@
 module Rails
   module HTML
     class Sanitizer
-      VERSION = "1.7.1"
+      VERSION = "1.7.2"
     end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rails/html/sanitizer.rb 
new/lib/rails/html/sanitizer.rb
--- old/lib/rails/html/sanitizer.rb     1980-01-02 01:00:00.000000000 +0100
+++ new/lib/rails/html/sanitizer.rb     1980-01-02 01:00:00.000000000 +0100
@@ -154,7 +154,7 @@
           end
 
           def initialize(prune: false)
-            @permit_scrubber = PermitScrubber.new(prune: prune)
+            @prune = prune
           end
 
           def scrub(fragment, options = {})
@@ -162,9 +162,10 @@
               # No duck typing, Loofah ensures subclass of Loofah::Scrubber
               fragment.scrub!(scrubber)
             elsif allowed_tags(options) || allowed_attributes(options)
-              @permit_scrubber.tags = allowed_tags(options)
-              @permit_scrubber.attributes = allowed_attributes(options)
-              fragment.scrub!(@permit_scrubber)
+              permit_scrubber = PermitScrubber.new(prune: @prune)
+              permit_scrubber.tags = allowed_tags(options)
+              permit_scrubber.attributes = allowed_attributes(options)
+              fragment.scrub!(permit_scrubber)
             else
               fragment.scrub!(:strip)
             end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/rails/html/scrubbers.rb 
new/lib/rails/html/scrubbers.rb
--- old/lib/rails/html/scrubbers.rb     1980-01-02 01:00:00.000000000 +0100
+++ new/lib/rails/html/scrubbers.rb     1980-01-02 01:00:00.000000000 +0100
@@ -160,21 +160,9 @@
         end
 
         def scrub_attribute(node, attr_node)
-          attr_name = if attr_node.namespace
-            "#{attr_node.namespace.prefix}:#{attr_node.node_name}"
-          else
-            attr_node.node_name
-          end
+          attr_name = Loofah::HTML5::Scrub.prefixed_attribute_name(attr_node)
 
-          return if 
Loofah::HTML5::SafeList::ATTR_VAL_IS_URI.include?(attr_name) && 
Loofah::HTML5::Scrub.scrub_uri_attribute(attr_node)
-
-          if 
Loofah::HTML5::SafeList::SVG_ATTR_VAL_ALLOWS_REF.include?(attr_name)
-            
Loofah::HTML5::Scrub.scrub_attribute_that_allows_local_ref(attr_node)
-          end
-
-          if Loofah::HTML5::SafeList::SVG_ALLOW_LOCAL_HREF.include?(node.name) 
&& Loofah::HTML5::SafeList::SVG_HREF_ATTRIBUTES.include?(attr_name) && 
attr_node.value =~ /^\s*[^#\s].*/m
-            attr_node.remove
-          end
+          return if Loofah::HTML5::Scrub.scrub_attribute_value(node, 
attr_node, attr_name)
 
           node.remove_attribute(attr_node.name) if attr_name == "src" && 
attr_node.value !~ /[^[:space:]]/
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        1980-01-02 01:00:00.000000000 +0100
+++ new/metadata        1980-01-02 01:00:00.000000000 +0100
@@ -1,7 +1,7 @@
 --- !ruby/object:Gem::Specification
 name: rails-html-sanitizer
 version: !ruby/object:Gem::Version
-  version: 1.7.1
+  version: 1.7.2
 platform: ruby
 authors:
 - Rafael Mendonça França
@@ -20,7 +20,7 @@
         version: '2.25'
     - - ">="
       - !ruby/object:Gem::Version
-        version: 2.25.2
+        version: 2.25.3
   type: :runtime
   prerelease: false
   version_requirements: !ruby/object:Gem::Requirement
@@ -30,7 +30,7 @@
         version: '2.25'
     - - ">="
       - !ruby/object:Gem::Version
-        version: 2.25.2
+        version: 2.25.3
 - !ruby/object:Gem::Dependency
   name: nokogiri
   requirement: !ruby/object:Gem::Requirement
@@ -120,9 +120,9 @@
 - MIT
 metadata:
   bug_tracker_uri: https://github.com/rails/rails-html-sanitizer/issues
-  changelog_uri: 
https://github.com/rails/rails-html-sanitizer/blob/v1.7.1/CHANGELOG.md
-  documentation_uri: https://www.rubydoc.info/gems/rails-html-sanitizer/1.7.1
-  source_code_uri: https://github.com/rails/rails-html-sanitizer/tree/v1.7.1
+  changelog_uri: 
https://github.com/rails/rails-html-sanitizer/blob/v1.7.2/CHANGELOG.md
+  documentation_uri: https://www.rubydoc.info/gems/rails-html-sanitizer/1.7.2
+  source_code_uri: https://github.com/rails/rails-html-sanitizer/tree/v1.7.2
 rdoc_options: []
 require_paths:
 - lib
@@ -130,14 +130,14 @@
   requirements:
   - - ">="
     - !ruby/object:Gem::Version
-      version: 2.7.0
+      version: 3.2.0
 required_rubygems_version: !ruby/object:Gem::Requirement
   requirements:
   - - ">="
     - !ruby/object:Gem::Version
       version: '0'
 requirements: []
-rubygems_version: 4.0.10
+rubygems_version: 4.0.20
 specification_version: 4
 summary: This gem is responsible to sanitize HTML fragments in Rails 
applications.
 test_files: []

Reply via email to