[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#700438: marked as done (unblock: ruby-activemodel-3.2/3.2.6-3)



Your message dated Tue, 12 Feb 2013 19:56:10 +0000
with message-id <1360698970.31703.1.camel@jacala.jungle.funky-badger.org>
and subject line Re: Bug#700438: unblock: ruby-activemodel-3.2/3.2.6-3
has caused the Debian Bug report #700438,
regarding unblock: ruby-activemodel-3.2/3.2.6-3
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
700438: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=700438
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package ruby-activemodel-3.2, ruby-activerecord-2.3 and ruby-activeresource-2.3.

Hi,

another round of ruby on rails CVEs, and one FTBFS fix and a CVE fix; debdiffs are attached.

$ diffstat /tmp/ruby-activemodel-3.2_3.2.6-3.debdiff
 changelog                   |    6 ++++++
 patches/CVE-2013-0276.patch |   34 ++++++++++++++++++++++++++++++++++
 patches/series              |    1 +
 3 files changed, 41 insertions(+)

$ diffstat /tmp/ruby-activerecord-2.3_2.3.14-5.debdiff
 changelog                   |    7 +++++
 patches/CVE-2013-0276.patch |   38 ++++++++++++++++++++++++++++
 patches/CVE-2013-0277.patch |   58 ++++++++++++++++++++++++++++++++++++++++++++
 patches/series              |    2 +
 4 files changed, 105 insertions(+)

$ diffstat /tmp/ruby-activeresource-2.3_2.3.14-3.debdiff
 changelog                                           |   10 ++++
 patches/0003-remove-test-for-XML-YAML-parsing.patch |   48 ++++++++++++++++++++
 patches/series                                      |    1 
 3 files changed, 59 insertions(+)

Ondrej

unblock ruby-activemodel-3.2/3.2.6-3
unblock ruby-activerecord-2.3/2.3.14-5
unblock ruby-activeresource-2.3/2.3.14-3

-- System Information:
Debian Release: 7.0
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -Nru ruby-activemodel-3.2-3.2.6/debian/changelog ruby-activemodel-3.2-3.2.6/debian/changelog
--- ruby-activemodel-3.2-3.2.6/debian/changelog	2012-06-25 00:24:14.000000000 +0200
+++ ruby-activemodel-3.2-3.2.6/debian/changelog	2013-02-12 16:58:28.000000000 +0100
@@ -1,3 +1,9 @@
+ruby-activemodel-3.2 (3.2.6-3) unstable; urgency=low
+
+  * Fix circumvention of attr_protected [CVE-2013-0276]
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 12 Feb 2013 16:58:09 +0100
+
 ruby-activemodel-3.2 (3.2.6-2) unstable; urgency=low
 
   * Bump build dependency on gem2deb to >- 0.3.0~
diff -Nru ruby-activemodel-3.2-3.2.6/debian/patches/CVE-2013-0276.patch ruby-activemodel-3.2-3.2.6/debian/patches/CVE-2013-0276.patch
--- ruby-activemodel-3.2-3.2.6/debian/patches/CVE-2013-0276.patch	1970-01-01 01:00:00.000000000 +0100
+++ ruby-activemodel-3.2-3.2.6/debian/patches/CVE-2013-0276.patch	2013-02-12 16:58:28.000000000 +0100
@@ -0,0 +1,34 @@
+From 060bb7250b963609a0d8a5d0559e36b99d2402c6 Mon Sep 17 00:00:00 2001
+From: joernchen of Phenoelit <joernchen@phenoelit.de>
+Date: Sat, 9 Feb 2013 15:46:44 -0800
+Subject: [PATCH] Fix issue with attr_protected where malformed input could
+ circumvent protection
+
+Fixes: CVE-2013-0276
+---
+ activemodel/lib/active_model/attribute_methods.rb                       | 2 +-
+ activemodel/lib/active_model/mass_assignment_security/permission_set.rb | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+--- a/lib/active_model/attribute_methods.rb
++++ b/lib/active_model/attribute_methods.rb
+@@ -365,7 +365,7 @@ module ActiveModel
+             end
+ 
+             @prefix, @suffix = options[:prefix] || '', options[:suffix] || ''
+-            @regex = /^(#{Regexp.escape(@prefix)})(.+?)(#{Regexp.escape(@suffix)})$/
++            @regex = /\A(#{Regexp.escape(@prefix)})(.+?)(#{Regexp.escape(@suffix)})\z/
+             @method_missing_target = "#{@prefix}attribute#{@suffix}"
+             @method_name = "#{prefix}%s#{suffix}"
+           end
+--- a/lib/active_model/mass_assignment_security/permission_set.rb
++++ b/lib/active_model/mass_assignment_security/permission_set.rb
+@@ -19,7 +19,7 @@ module ActiveModel
+     protected
+ 
+       def remove_multiparameter_id(key)
+-        key.to_s.gsub(/\(.+/, '')
++        key.to_s.gsub(/\(.+/m, '')
+       end
+     end
+ 
diff -Nru ruby-activemodel-3.2-3.2.6/debian/patches/series ruby-activemodel-3.2-3.2.6/debian/patches/series
--- ruby-activemodel-3.2-3.2.6/debian/patches/series	2012-06-16 14:41:53.000000000 +0200
+++ ruby-activemodel-3.2-3.2.6/debian/patches/series	2013-02-12 16:58:28.000000000 +0100
@@ -1 +1,2 @@
 remove-rubygems-requirement.patch
+CVE-2013-0276.patch
diff -Nru ruby-activeresource-2.3-2.3.14/debian/changelog ruby-activeresource-2.3-2.3.14/debian/changelog
--- ruby-activeresource-2.3-2.3.14/debian/changelog	2012-06-29 20:17:48.000000000 +0200
+++ ruby-activeresource-2.3-2.3.14/debian/changelog	2013-02-12 16:56:48.000000000 +0100
@@ -1,3 +1,13 @@
+ruby-activeresource-2.3 (2.3.14-3) unstable; urgency=high
+
+  [Sebastian Ramacher]
+  * debian/patches/0003-remove-test-for-XML-YAML-parsing.patch: Backport patch
+    from upstream to disable test for XML YAML parsing. XML YAML parsing has
+    been removed in ruby-activesupport-2.3/2.3.14-5 to fix CVE-2013-0156.
+    (Closes: #699255)
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 10 Feb 2013 22:46:39 +0100
+
 ruby-activeresource-2.3 (2.3.14-2) unstable; urgency=low
 
   * Team upload.
diff -Nru ruby-activeresource-2.3-2.3.14/debian/patches/0003-remove-test-for-XML-YAML-parsing.patch ruby-activeresource-2.3-2.3.14/debian/patches/0003-remove-test-for-XML-YAML-parsing.patch
--- ruby-activeresource-2.3-2.3.14/debian/patches/0003-remove-test-for-XML-YAML-parsing.patch	1970-01-01 01:00:00.000000000 +0100
+++ ruby-activeresource-2.3-2.3.14/debian/patches/0003-remove-test-for-XML-YAML-parsing.patch	2013-02-12 16:56:48.000000000 +0100
@@ -0,0 +1,48 @@
+Description: Remove test for XML YAML parsing
+ The support for YAML parsing in XML has been removed from Active Support
+ since it introduced an security risk (CVE-2013-0156).
+Origin: backport, https://github.com/rails/activeresource/commit/a0589575
+Last-Update: 2013-02-10
+
+--- a/test/base_test.rb
++++ b/test/base_test.rb
+@@ -49,25 +49,11 @@
+                                            :children => [{:name => 'Natacha'}]},
+                                           {:name => 'Milena',
+                                            :children => []}]}]}.to_xml(:root => 'customer')
+-    # - resource with yaml array of strings; for ActiveRecords using serialize :bar, Array
+-    @marty = <<-eof.strip
+-      <?xml version=\"1.0\" encoding=\"UTF-8\"?>
+-      <person>
+-        <id type=\"integer\">5</id>
+-        <name>Marty</name>
+-        <colors type=\"yaml\">---
+-      - \"red\"
+-      - \"green\"
+-      - \"blue\"
+-      </colors>
+-      </person>
+-    eof
+ 
+     ActiveResource::HttpMock.respond_to do |mock|
+       mock.get    "/people/1.xml",                {}, @matz
+       mock.get    "/people/2.xml",                {}, @david
+       mock.get    "/people/6.json",               {}, @joe
+-      mock.get    "/people/5.xml",                {}, @marty
+       mock.get    "/people/Greg.xml",             {}, @greg
+       mock.get    "/people/4.xml",                {'key' => 'value'}, nil, 404
+       mock.put    "/people/1.xml",                {}, nil, 204
+@@ -1075,13 +1061,4 @@
+     end
+   end
+ 
+-  def test_load_yaml_array
+-    assert_nothing_raised do
+-      marty = Person.find(5)
+-      assert_equal 3, marty.colors.size
+-      marty.colors.each do |color|
+-        assert_kind_of String, color
+-      end
+-    end
+-  end
+ end
diff -Nru ruby-activeresource-2.3-2.3.14/debian/patches/series ruby-activeresource-2.3-2.3.14/debian/patches/series
--- ruby-activeresource-2.3-2.3.14/debian/patches/series	2012-02-02 23:56:24.000000000 +0100
+++ ruby-activeresource-2.3-2.3.14/debian/patches/series	2013-02-12 16:56:48.000000000 +0100
@@ -1,2 +1,3 @@
 0001-comment_out_failing_upstream_tests.patch
 0002-require_abstract_unit_needs_test_directory.patch
+0003-remove-test-for-XML-YAML-parsing.patch
diff -Nru ruby-activerecord-2.3-2.3.14/debian/changelog ruby-activerecord-2.3-2.3.14/debian/changelog
--- ruby-activerecord-2.3-2.3.14/debian/changelog	2013-01-16 01:16:58.000000000 +0100
+++ ruby-activerecord-2.3-2.3.14/debian/changelog	2013-02-12 17:05:09.000000000 +0100
@@ -1,3 +1,10 @@
+ruby-activerecord-2.3 (2.3.14-5) unstable; urgency=high
+
+  * Fix circumvention of attr_protected [CVE-2013-0276]
+  * Fix serialized Attributes YAML Vulnerability with Rails 2.3 and 3.0 [CVE-2013-0277]
+
+ -- Ondřej Surý <ondrej@debian.org>  Tue, 12 Feb 2013 17:04:53 +0100
+
 ruby-activerecord-2.3 (2.3.14-4) unstable; urgency=high
 
   * Team upload.
diff -Nru ruby-activerecord-2.3-2.3.14/debian/patches/CVE-2013-0276.patch ruby-activerecord-2.3-2.3.14/debian/patches/CVE-2013-0276.patch
--- ruby-activerecord-2.3-2.3.14/debian/patches/CVE-2013-0276.patch	1970-01-01 01:00:00.000000000 +0100
+++ ruby-activerecord-2.3-2.3.14/debian/patches/CVE-2013-0276.patch	2013-02-12 17:05:09.000000000 +0100
@@ -0,0 +1,38 @@
+From 9a48f4cf329f66682c34c86822d625d63dbb6919 Mon Sep 17 00:00:00 2001
+From: Aaron Patterson <aaron.patterson@gmail.com>
+Date: Sat, 9 Feb 2013 16:31:04 -0800
+Subject: [PATCH] fixing attr_protected CVE-2013-0276
+
+---
+ activerecord/lib/active_record/attribute_methods.rb | 2 +-
+ activerecord/lib/active_record/base.rb              | 6 +++---
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+--- a/lib/active_record/attribute_methods.rb
++++ b/lib/active_record/attribute_methods.rb
+@@ -130,7 +130,7 @@ module ActiveRecord
+         # Suffixes a, ?, c become regexp /(a|\?|c)$/
+         def rebuild_attribute_method_regexp
+           suffixes = attribute_method_suffixes.map { |s| Regexp.escape(s) }
+-          @@attribute_method_regexp = /(#{suffixes.join('|')})$/.freeze
++          @@attribute_method_regexp = /(#{suffixes.join('|')})\z/.freeze
+         end
+ 
+         # Default to =, ?, _before_type_cast
+--- a/lib/active_record/base.rb
++++ b/lib/active_record/base.rb
+@@ -2998,11 +2998,11 @@ module ActiveRecord #:nodoc:
+       def remove_attributes_protected_from_mass_assignment(attributes)
+         safe_attributes =
+           if self.class.accessible_attributes.nil? && self.class.protected_attributes.nil?
+-            attributes.reject { |key, value| attributes_protected_by_default.include?(key.gsub(/\(.+/, "")) }
++            attributes.reject { |key, value| attributes_protected_by_default.include?(key.gsub(/\(.+/m, "")) }
+           elsif self.class.protected_attributes.nil?
+-            attributes.reject { |key, value| !self.class.accessible_attributes.include?(key.gsub(/\(.+/, "")) || attributes_protected_by_default.include?(key.gsub(/\(.+/, "")) }
++            attributes.reject { |key, value| !self.class.accessible_attributes.include?(key.gsub(/\(.+/m, "")) || attributes_protected_by_default.include?(key.gsub(/\(.+/m, "")) }
+           elsif self.class.accessible_attributes.nil?
+-            attributes.reject { |key, value| self.class.protected_attributes.include?(key.gsub(/\(.+/,"")) || attributes_protected_by_default.include?(key.gsub(/\(.+/, "")) }
++            attributes.reject { |key, value| self.class.protected_attributes.include?(key.gsub(/\(.+/m,"")) || attributes_protected_by_default.include?(key.gsub(/\(.+/m, "")) }
+           else
+             raise "Declare either attr_protected or attr_accessible for #{self.class}, but not both."
+           end
diff -Nru ruby-activerecord-2.3-2.3.14/debian/patches/CVE-2013-0277.patch ruby-activerecord-2.3-2.3.14/debian/patches/CVE-2013-0277.patch
--- ruby-activerecord-2.3-2.3.14/debian/patches/CVE-2013-0277.patch	1970-01-01 01:00:00.000000000 +0100
+++ ruby-activerecord-2.3-2.3.14/debian/patches/CVE-2013-0277.patch	2013-02-12 17:05:09.000000000 +0100
@@ -0,0 +1,58 @@
+From d4a53b2e02106c6734bbfea2a0e209febd5f36bd Mon Sep 17 00:00:00 2001
+From: Tobias Kraze <tobias@kraze.eu>
+Date: Fri, 8 Feb 2013 12:52:10 +0100
+Subject: [PATCH] fix serialization vulnerability
+
+---
+ .../lib/active_record/attribute_methods.rb         |   17 ++++++++++++++++-
+ activerecord/test/cases/base_test.rb               |    6 ++++++
+ 2 files changed, 22 insertions(+), 1 deletion(-)
+
+--- a/lib/active_record/attribute_methods.rb
++++ b/lib/active_record/attribute_methods.rb
+@@ -80,7 +80,9 @@ module ActiveRecord
+           end
+ 
+           unless instance_method_already_implemented?("#{name}=")
+-            if create_time_zone_conversion_attribute?(name, column)
++            if self.serialized_attributes[name]
++              define_write_method_for_serialized_attribute(name)
++            elsif create_time_zone_conversion_attribute?(name, column)
+               define_write_method_for_time_zone_conversion(name)
+             else  
+               define_write_method(name.to_sym)
+@@ -184,6 +186,19 @@ module ActiveRecord
+         def define_write_method(attr_name)
+           evaluate_attribute_method attr_name, "def #{attr_name}=(new_value);write_attribute('#{attr_name}', new_value);end", "#{attr_name}="
+         end
++
++        # Defined for all serialized attributes. Disallows assigning already serialized YAML.
++        def define_write_method_for_serialized_attribute(attr_name)
++          method_body = <<-EOV
++            def #{attr_name}=(value)
++              if value.is_a?(String) and value =~ /^---/
++                raise ActiveRecordError, "You tried to assign already serialized content to #{attr_name}. This is disabled due to security issues."
++              end
++              write_attribute(:#{attr_name}, value)
++            end
++          EOV
++          evaluate_attribute_method attr_name, method_body, "#{attr_name}="
++        end
+         
+         # Defined for all +datetime+ and +timestamp+ attributes when +time_zone_aware_attributes+ are enabled.
+         # This enhanced write method will automatically convert the time passed to it to the zone stored in Time.zone.
+--- a/test/cases/base_test.rb
++++ b/test/cases/base_test.rb
+@@ -1499,6 +1499,12 @@ class BasicsTest < ActiveRecord::TestCas
+     assert_nil topic.content
+   end
+ 
++  def test_should_raise_exception_on_assigning_already_serialized_content
++    topic = Topic.new
++    serialized_content = %w[foo bar].to_yaml
++    assert_raise(ActiveRecord::ActiveRecordError) { topic.content = serialized_content }
++  end
++
+   def test_should_raise_exception_on_serialized_attribute_with_type_mismatch
+     myobj = MyObject.new('value1', 'value2')
+     topic = Topic.new(:content => myobj)
diff -Nru ruby-activerecord-2.3-2.3.14/debian/patches/series ruby-activerecord-2.3-2.3.14/debian/patches/series
--- ruby-activerecord-2.3-2.3.14/debian/patches/series	2013-01-16 01:16:07.000000000 +0100
+++ ruby-activerecord-2.3-2.3.14/debian/patches/series	2013-02-12 17:05:09.000000000 +0100
@@ -2,3 +2,5 @@
 activerecord-2.3.5-1.patch
 2-3-dynamic_finder_injection.patch
 CVE-2013-0155.patch
+CVE-2013-0276.patch
+CVE-2013-0277.patch

--- End Message ---
--- Begin Message ---
On Tue, 2013-02-12 at 18:03 +0100, Ondřej Surý wrote:
> another round of ruby on rails CVEs, and one FTBFS fix and a CVE fix;
> debdiffs are attached.
[...]
> unblock ruby-activemodel-3.2/3.2.6-3
> unblock ruby-activerecord-2.3/2.3.14-5
> unblock ruby-activeresource-2.3/2.3.14-3

All done.

Regards,

Adam

--- End Message ---

Reply to: