From b56ddee557a2716052a9512a0a72b7919cea5278 Mon Sep 17 00:00:00 2001 From: GYN Date: Fri, 21 Aug 2020 15:11:18 +0800 Subject: [PATCH] first push --- loofah-2.2.3.gem | Bin 0 -> 65536 bytes ...nerability-in-SVG-animate-attributes.patch | 83 ++++++++++++++++++ rubygem-loofah.spec | 67 ++++++++++++++ rubygem-loofah.yaml | 4 + 4 files changed, 154 insertions(+) create mode 100644 loofah-2.2.3.gem create mode 100644 rubygem-loofah-2.3.1-CVE-2019-15587-mitigate-XSS-vulnerability-in-SVG-animate-attributes.patch create mode 100644 rubygem-loofah.spec create mode 100644 rubygem-loofah.yaml diff --git a/loofah-2.2.3.gem b/loofah-2.2.3.gem new file mode 100644 index 0000000000000000000000000000000000000000..4c70d92dd2ddccc8ed25e329c1ea0eca60cb8416 GIT binary patch literal 65536 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 literal 0 HcmV?d00001 diff --git a/rubygem-loofah-2.3.1-CVE-2019-15587-mitigate-XSS-vulnerability-in-SVG-animate-attributes.patch b/rubygem-loofah-2.3.1-CVE-2019-15587-mitigate-XSS-vulnerability-in-SVG-animate-attributes.patch new file mode 100644 index 0000000..6e099e2 --- /dev/null +++ b/rubygem-loofah-2.3.1-CVE-2019-15587-mitigate-XSS-vulnerability-in-SVG-animate-attributes.patch @@ -0,0 +1,83 @@ +From 0c6617af440879ce97440f6eb6c58636456dc8ec Mon Sep 17 00:00:00 2001 +From: Mike Dalessio +Date: Wed, 9 Oct 2019 15:36:32 -0400 +Subject: [PATCH] mitigate XSS vulnerability in SVG animate attributes + +this addresses CVE-2019-15587 + +see #171 for more information + +https://github.com/flavorjones/loofah/issues/171 +--- + lib/loofah/html5/safelist.rb | 3 --- + test/integration/test_ad_hoc.rb | 30 ++++++++++++++++++++++++------ + 2 files changed, 24 insertions(+), 9 deletions(-) + +diff --git a/lib/loofah/html5/safelist.rb b/lib/loofah/html5/safelist.rb +index 8abd922..4b2b6dd 100644 +--- a/lib/loofah/html5/whitelist.rb ++++ b/lib/loofah/html5/whitelist.rb +@@ -88,7 +88,7 @@ + + SVG_ATTRIBUTES = Set.new %w[accent-height accumulate additive alphabetic + arabic-form ascent attributeName attributeType baseProfile bbox begin +- by calcMode cap-height class clip-path clip-rule color ++ calcMode cap-height class clip-path clip-rule color + color-interpolation-filters color-rendering content cx cy d dx + dy descent display dur end fill fill-opacity fill-rule + filterRes filterUnits font-family +@@ -105,9 +105,9 @@ + stemv stop-color stop-opacity strikethrough-position + strikethrough-thickness stroke stroke-dasharray stroke-dashoffset + stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity +- stroke-width systemLanguage target text-anchor to transform type u1 ++ stroke-width systemLanguage target text-anchor transform type u1 + u2 underline-position underline-thickness unicode unicode-range +- units-per-em values version viewBox visibility width widths x ++ units-per-em version viewBox visibility width widths x + x-height x1 x2 xlink:actuate xlink:arcrole xlink:href xlink:role + xlink:show xlink:title xlink:type xml:base xml:lang xml:space xmlns + xmlns:xlink y y1 y2 zoomAndPan] +diff --git a/test/integration/test_ad_hoc.rb b/test/integration/test_ad_hoc.rb +index 16fccbb..cc6fc65 100644 +--- a/test/integration/test_ad_hoc.rb ++++ b/test/integration/test_ad_hoc.rb +@@ -190,14 +190,32 @@ def test_dont_remove_whitespace_between_tags + end + end + +- # see: +- # - https://github.com/flavorjones/loofah/issues/154 +- # - https://hackerone.com/reports/429267 +- context "xss protection from svg xmlns:xlink animate attribute" do +- it "sanitizes appropriate attributes" do +- html = %Q{} ++ context "xss protection from svg animate attributes" do ++ # see recommendation from https://html5sec.org/#137 ++ # to sanitize "to", "from", "values", and "by" attributes ++ ++ it "sanitizes 'from', 'to', and 'by' attributes" do ++ # for CVE-2018-16468 ++ # see: ++ # - https://github.com/flavorjones/loofah/issues/154 ++ # - https://hackerone.com/reports/429267 ++ html = %Q{} ++ + sanitized = Loofah.scrub_fragment(html, :escape) + assert_nil sanitized.at_css("animate")["from"] ++ assert_nil sanitized.at_css("animate")["to"] ++ assert_nil sanitized.at_css("animate")["by"] ++ end ++ ++ it "sanitizes 'values' attribute" do ++ # for CVE-2019-15587 ++ # see: ++ # - https://github.com/flavorjones/loofah/issues/171 ++ # - https://hackerone.com/reports/709009 ++ html = %Q{ } ++ ++ sanitized = Loofah.scrub_fragment(html, :escape) ++ assert_nil sanitized.at_css("animate")["values"] + end + end + end diff --git a/rubygem-loofah.spec b/rubygem-loofah.spec new file mode 100644 index 0000000..11977ea --- /dev/null +++ b/rubygem-loofah.spec @@ -0,0 +1,67 @@ +%global gem_name loofah +Name: rubygem-%{gem_name} +Version: 2.2.3 +Release: 1 +Summary: Manipulate and transform HTML/XML documents and fragments +License: MIT +URL: https://github.com/flavorjones/loofah +Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem +Patch0: rubygem-loofah-2.3.1-CVE-2019-15587-mitigate-XSS-vulnerability-in-SVG-animate-attributes.patch +BuildRequires: ruby(release) rubygems-devel rubygem(nokogiri) >= 1.6.6.2 rubygem(minitest) +BuildRequires: rubygem(crass) +BuildArch: noarch +%description +Loofah is a general library for manipulating and transforming HTML/XML +documents and fragments. It's built on top of Nokogiri and libxml2, so +it's fast and has a nice API. +Loofah excels at HTML sanitization (XSS prevention). It includes some +nice HTML sanitizers, which are based on HTML5lib's whitelist, so it +most likely won't make your codes less secure. + +%package doc +Summary: Documentation for %{name} +Requires: %{name} = %{version}-%{release} +BuildArch: noarch +%description doc +Documentation for %{name}. + +%prep +%setup -q -n %{gem_name}-%{version} +%patch0 -p1 + +%build +gem build ../%{gem_name}-%{version}.gemspec +%gem_install + +%install +mkdir -p %{buildroot}%{gem_dir} +cp -a .%{gem_dir}/* \ + %{buildroot}%{gem_dir}/ + +%check +pushd .%{gem_instdir} +ruby -Itest -e 'Dir.glob "./test/**/test_*.rb", &method(:require)' +popd + +%files +%dir %{gem_instdir} +%exclude %{gem_instdir}/.* +%license %{gem_instdir}/MIT-LICENSE.txt +%{gem_libdir} +%exclude %{gem_cache} +%{gem_spec} + +%files doc +%doc %{gem_docdir} +%doc %{gem_instdir}/CHANGELOG.md +%{gem_instdir}/Gemfile +%doc %{gem_instdir}/Manifest.txt +%doc %{gem_instdir}/README.md +%{gem_instdir}/Rakefile +%doc %{gem_instdir}/SECURITY.md +%{gem_instdir}/benchmark +%{gem_instdir}/test + +%changelog +* Tue Aug 18 2020 geyanan - 2.2.3-1 +- package init diff --git a/rubygem-loofah.yaml b/rubygem-loofah.yaml new file mode 100644 index 0000000..6c0e639 --- /dev/null +++ b/rubygem-loofah.yaml @@ -0,0 +1,4 @@ +version_control: github +src_repo: flavorjones/loofah +tag_prefix: "v" +seperator: "."