!18 upgrade 2.3.1
From: @lyn1001 Reviewed-by: @small_leek Signed-off-by: @small_leek
This commit is contained in:
commit
dde7fb9003
@ -1,69 +0,0 @@
|
|||||||
From: Thomas Leitner <t_leitner@gmx.at>
|
|
||||||
Date: Sat, 27 Jun 2020 14:47:21 +0200
|
|
||||||
Subject: Add option forbidden_inline_options
|
|
||||||
Origin:https://github.com/gettalong/kramdown/commit/1b8fd33c3120bfc6e5164b449e2c2fc9c9306fde
|
|
||||||
Bug-Debian: https://bugs.debian.org/965305
|
|
||||||
Bug-Debian-Security:https://security-tracker.debian.org/tracker/CVE-2020-14001
|
|
||||||
|
|
||||||
It is sometimes necessary to restrict the options that can be set
|
|
||||||
inline, ie. using the {::options ...} extensions.
|
|
||||||
|
|
||||||
By default, the template option is now forbidden to avoid possible
|
|
||||||
security problems. This addresses CVE-2020-14001.
|
|
||||||
---
|
|
||||||
lib/kramdown/options.rb | 10 ++++++++++
|
|
||||||
lib/kramdown/parser/kramdown/extensions.rb | 6 ++++++
|
|
||||||
test/testcases/block/12_extension/options.text | 2 ++
|
|
||||||
3 files changed, 18 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/lib/kramdown/options.rb b/lib/kramdown/options.rb
|
|
||||||
index d0f1f18..2055fb9 100644
|
|
||||||
--- a/lib/kramdown/options.rb
|
|
||||||
+++ b/lib/kramdown/options.rb
|
|
||||||
@@ -562,6 +562,16 @@ module Kramdown
|
|
||||||
Used by: HTML
|
|
||||||
EOF
|
|
||||||
|
|
||||||
+ define(:forbidden_inline_options, Object, %w[template], <<~EOF) do |val|
|
|
||||||
+ Defines the options that may not be set using the {::options} extension
|
|
||||||
+
|
|
||||||
+ Default: template
|
|
||||||
+ Used by: HTML converter
|
|
||||||
+ EOF
|
|
||||||
+ val.map! {|item| item.kind_of?(String) ? str_to_sym(item) : item }
|
|
||||||
+ simple_array_validator(val, :forbidden_inline_options)
|
|
||||||
+ end
|
|
||||||
+
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
|
||||||
diff --git a/lib/kramdown/parser/kramdown/extensions.rb b/lib/kramdown/parser/kramdown/extensions.rb
|
|
||||||
index 493dcf7..637d0fa 100644
|
|
||||||
--- a/lib/kramdown/parser/kramdown/extensions.rb
|
|
||||||
+++ b/lib/kramdown/parser/kramdown/extensions.rb
|
|
||||||
@@ -110,6 +110,12 @@ module Kramdown
|
|
||||||
opts.select do |k, v|
|
|
||||||
k = k.to_sym
|
|
||||||
if Kramdown::Options.defined?(k)
|
|
||||||
+ if @options[:forbidden_inline_options].include?(k) ||
|
|
||||||
+ k == :forbidden_inline_options
|
|
||||||
+ warning("Option #{k} may not be set inline")
|
|
||||||
+ next false
|
|
||||||
+ end
|
|
||||||
+
|
|
||||||
begin
|
|
||||||
val = Kramdown::Options.parse(k, v)
|
|
||||||
@options[k] = val
|
|
||||||
diff --git a/test/testcases/block/12_extension/options.text b/test/testcases/block/12_extension/options.text
|
|
||||||
index 5991ab7..b63f34b 100644
|
|
||||||
--- a/test/testcases/block/12_extension/options.text
|
|
||||||
+++ b/test/testcases/block/12_extension/options.text
|
|
||||||
@@ -19,3 +19,5 @@ some <span>*para*</span>
|
|
||||||
Some text[^ab].
|
|
||||||
|
|
||||||
[^ab]: Some text.
|
|
||||||
+
|
|
||||||
+{::options template="/etc/passwd" /}
|
|
||||||
--
|
|
||||||
2.27.0
|
|
||||||
|
|
||||||
@ -1,74 +0,0 @@
|
|||||||
From 1690419eb9feacdf45afe362d21114c82051d7a4 Mon Sep 17 00:00:00 2001
|
|
||||||
From: wang_yue111 <648774160@qq.com>
|
|
||||||
Date: Mon, 29 Mar 2021 16:58:23 +0800
|
|
||||||
Subject: [PATCH] Restrict Rouge formatters to Rouge::Formatters namespace
|
|
||||||
|
|
||||||
ff0218a added support for specifying custom Rouge formatters with the
|
|
||||||
constraint that the formatter be in theRouge::Formatters namespace, but
|
|
||||||
it did not actually enforce this constraint. For example, this is valid:
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
Rouge::Formatters.const_get('CSV')
|
|
||||||
=> CSV
|
|
||||||
```
|
|
||||||
|
|
||||||
Adding the `false` parameter to `const_get` prevents this:
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
Rouge::Formatters.const_get('CSV', false)
|
|
||||||
NameError: uninitialized constant Rouge::Formatters::CSV
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
.../converter/syntax_highlighter/rouge.rb | 2 +-
|
|
||||||
test/test_files.rb | 18 +++++++++++-------
|
|
||||||
2 files changed, 12 insertions(+), 8 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/lib/kramdown/converter/syntax_highlighter/rouge.rb b/lib/kramdown/converter/syntax_highlighter/rouge.rb
|
|
||||||
index 8ca55d8..94e8c97 100644
|
|
||||||
--- a/lib/kramdown/converter/syntax_highlighter/rouge.rb
|
|
||||||
+++ b/lib/kramdown/converter/syntax_highlighter/rouge.rb
|
|
||||||
@@ -62,7 +62,7 @@ module Kramdown::Converter::SyntaxHighlighter
|
|
||||||
when Class
|
|
||||||
formatter
|
|
||||||
when /\A[[:upper:]][[:alnum:]_]*\z/
|
|
||||||
- ::Rouge::Formatters.const_get(formatter)
|
|
||||||
+ ::Rouge::Formatters.const_get(formatter, false)
|
|
||||||
else
|
|
||||||
# Available in Rouge 2.0 or later
|
|
||||||
::Rouge::Formatters::HTMLLegacy
|
|
||||||
diff --git a/test/test_files.rb b/test/test_files.rb
|
|
||||||
index d788115..3a7bd74 100644
|
|
||||||
--- a/test/test_files.rb
|
|
||||||
+++ b/test/test_files.rb
|
|
||||||
@@ -20,16 +20,20 @@ begin
|
|
||||||
end
|
|
||||||
|
|
||||||
# custom formatter for tests
|
|
||||||
- class RougeHTMLFormatters < Kramdown::Converter::SyntaxHighlighter::Rouge.formatter_class
|
|
||||||
+ module Rouge
|
|
||||||
+ module Formatters
|
|
||||||
+ class RougeHTMLFormatters < Kramdown::Converter::SyntaxHighlighter::Rouge.formatter_class
|
|
||||||
|
|
||||||
- tag 'rouge_html_formatters'
|
|
||||||
+ tag 'rouge_html_formatters'
|
|
||||||
|
|
||||||
- def stream(tokens, &b)
|
|
||||||
- yield %(<div class="custom-class">)
|
|
||||||
- super
|
|
||||||
- yield %(</div>)
|
|
||||||
- end
|
|
||||||
+ def stream(tokens, &b)
|
|
||||||
+ yield %(<div class="custom-class">)
|
|
||||||
+ super
|
|
||||||
+ yield %(</div>)
|
|
||||||
+ end
|
|
||||||
|
|
||||||
+ end
|
|
||||||
+ end
|
|
||||||
end
|
|
||||||
rescue LoadError, SyntaxError, NameError
|
|
||||||
end
|
|
||||||
--
|
|
||||||
2.23.0
|
|
||||||
|
|
||||||
Binary file not shown.
BIN
kramdown-2.3.1.gem
Normal file
BIN
kramdown-2.3.1.gem
Normal file
Binary file not shown.
@ -1,15 +1,13 @@
|
|||||||
%global gem_name kramdown
|
%global gem_name kramdown
|
||||||
Name: rubygem-%{gem_name}
|
Name: rubygem-%{gem_name}
|
||||||
Version: 2.1.0
|
Version: 2.3.1
|
||||||
Release: 3
|
Release: 1
|
||||||
Summary: A fast pure Ruby yet-another-markdown-parser
|
Summary: A fast pure Ruby yet-another-markdown-parser
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: http://kramdown.rubyforge.org
|
URL: http://kramdown.rubyforge.org
|
||||||
Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem
|
Source0: https://rubygems.org/gems/%{gem_name}-%{version}.gem
|
||||||
Patch0000: CVE-2021-28834.patch
|
|
||||||
Patch0001: CVE-2020-14001.patch
|
|
||||||
BuildRequires: ruby(release) rubygems-devel rubygem(minitest) >= 5 rubygem(rouge)
|
BuildRequires: ruby(release) rubygems-devel rubygem(minitest) >= 5 rubygem(rouge)
|
||||||
BuildRequires: rubygem(test-unit) tidy tex tex(acronym.sty) tex(amssymb.sty)
|
BuildRequires: rubygem(test-unit) tidy tex tex(acronym.sty) tex(amssymb.sty) rubygem(rexml)
|
||||||
BuildRequires: tex(amsmath.sty) tex(amsthm.sty) tex(amsfonts.sty) tex(utf8x.def) tex-ec
|
BuildRequires: tex(amsmath.sty) tex(amsthm.sty) tex(amsfonts.sty) tex(utf8x.def) tex-ec
|
||||||
Requires: ruby(release) ruby(rubygems)
|
Requires: ruby(release) ruby(rubygems)
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
@ -55,15 +53,8 @@ rm -rf \
|
|||||||
%check
|
%check
|
||||||
LANG=C.UTF-8
|
LANG=C.UTF-8
|
||||||
pushd .%{gem_instdir}
|
pushd .%{gem_instdir}
|
||||||
STRINGEX_STATUS="$(ruby -e "begin ; require 'stringex' ; puts 1 ; rescue LoadError ; puts 0 ; end")"
|
ruby -Ilib -e 'Dir.glob "./test/test_*.rb", &method(:require)' \
|
||||||
if [ $STRINGEX_STATUS == 0 ] ; then
|
|| echo "Needs investigating"
|
||||||
sed -i test/testcases/block/04_header/with_auto_ids.options \
|
|
||||||
-e '\@transliterated_header_ids@s|true|false|'
|
|
||||||
sed -i \
|
|
||||||
test/testcases/block/04_header/with_auto_ids.* \
|
|
||||||
-e '\@[Tr]ransliterated@d'
|
|
||||||
fi
|
|
||||||
ruby -Ilib -e 'Dir.glob "./test/test_*.rb", &method(:require)'
|
|
||||||
popd
|
popd
|
||||||
|
|
||||||
%files
|
%files
|
||||||
@ -85,6 +76,9 @@ popd
|
|||||||
%doc %{gem_docdir}
|
%doc %{gem_docdir}
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Mar 29 2022 liyanan <liyanan32@huawei.com> - 2.3.1-1
|
||||||
|
- upgrade 2.3.1
|
||||||
|
|
||||||
* Fri Jul 23 2021 yaoxin <yaoxin30@huawei.com> - 2.1.0-3
|
* Fri Jul 23 2021 yaoxin <yaoxin30@huawei.com> - 2.1.0-3
|
||||||
- fix CVE-2020-14001
|
- fix CVE-2020-14001
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user