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

upload jekyll



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Hello.

I've prepared security for jekyll. Debdiff is attached, please review
and upload. A test specific to this issue is also ported. I will
release the DLA once it is uploaded.


- --abhijith
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEE7xPqJqaY/zX9fJAuhj1N8u2cKO8FAlu1gxkACgkQhj1N8u2c
KO/dag//epxefVKvQetZPrRbje1pNKbHTU/yvUM5PnuC3IBaqGYi/tkHse+MxGSK
yLBSYY93GnVvOis20h8fp2GlJ4RkXz1xMezI8oiReCju6tQGbivkc4l6V6NOEnvA
5PHyTuWC1e9sdKKZBwXpQXGQrEaOfWqVA9qyCf+4pfAC02oucyWFF/T96pTVQRA2
Lz6GbEicTeRXoNmUNLj1uWfL5UH9sV2NLu/Necda+QddksGi+Shjmag12QScIe9o
cUmH56cRU8R7EmOQoV6ReiQNnJzBR+eJfwoi1SFcxjriUN3WcffVEp9BtoVA9Odl
ye3im4bY2n3HmBvpkezoQjE/9/lcDxiHZriuoX93DzuAruzFrS2OK75pnJ4nPcRt
nNAJ2QnW/L5BGKrGy7wNct3pyoVWFEemfcGYY+s7oTKs+lldYr5z/HlOIvVGFuJU
1HioYDPhFGl7D9vfNxmX8TJ3lerLNTCEK8WJwmPHLluUnu/wcwvphSAXAsjS17WO
ueK4iMChXfubkokcLHAuIXPOu4n7DTjaLVZjUpDtoCFOPfDNczI+awuo0Z3vhD/0
b1D25x95ptOMCqN8+HGV+BHYUV8y+0TgIXsGT+SRxo1N0z5RyvmzDQSlSECzR8uk
mkYUtWAVmNHV6JHL/OKMMutQ6vLQv2X0Cq1JaUtVbjtcAgJ5DBo=
=ckUi
-----END PGP SIGNATURE-----
diff -Nru jekyll-2.2.0+dfsg/debian/changelog jekyll-2.2.0+dfsg/debian/changelog
--- jekyll-2.2.0+dfsg/debian/changelog	2014-11-09 16:34:50.000000000 +0100
+++ jekyll-2.2.0+dfsg/debian/changelog	2018-10-02 16:21:08.000000000 +0200
@@ -1,3 +1,14 @@
+jekyll (2.2.0+dfsg-2+deb8u1) jessie-security; urgency=medium
+
+  * Non-maintainer upload by the Debian LTS Security Team.
+  * Fix CVE-2018-17567: arbitrary file reads with the use of 'include:' 
+    setting in the config file. (Closes: #909933)
+  * New files added to port symlink test:
+    + test/fixtures/test-theme/
+    + test/source/symlink-test/symlinked-file
+
+ -- Abhijith PA <abhijith@disroot.org>  Tue, 02 Oct 2018 19:51:08 +0530
+
 jekyll (2.2.0+dfsg-2) unstable; urgency=medium
 
   * Team upload.
diff -Nru jekyll-2.2.0+dfsg/debian/patches/CVE-2018-17567_and_test_ported_1.patch jekyll-2.2.0+dfsg/debian/patches/CVE-2018-17567_and_test_ported_1.patch
--- jekyll-2.2.0+dfsg/debian/patches/CVE-2018-17567_and_test_ported_1.patch	1970-01-01 01:00:00.000000000 +0100
+++ jekyll-2.2.0+dfsg/debian/patches/CVE-2018-17567_and_test_ported_1.patch	2018-10-02 16:21:08.000000000 +0200
@@ -0,0 +1,99 @@
+Author: Abhijith PA <abhijith@disroot.org>
+Date:   Wed Oct 3 21:32:28 2018 +0530
+
+...files added for the symlink test.
+
+diff --git a/test/fixtures/test-theme/_includes/include.html b/test/fixtures/test-theme/_includes/include.html
+new file mode 100644
+index 0000000..9860839
+--- /dev/null
++++ b/test/fixtures/test-theme/_includes/include.html
+@@ -0,0 +1 @@
++<span class="sample">include.html from test-theme</span>
+diff --git a/test/fixtures/test-theme/_layouts/default.html b/test/fixtures/test-theme/_layouts/default.html
+new file mode 100644
+index 0000000..902c61c
+--- /dev/null
++++ b/test/fixtures/test-theme/_layouts/default.html
+@@ -0,0 +1 @@
++default.html from test-theme: {{ content }}
+diff --git a/test/fixtures/test-theme/_sass/test-theme-black.scss b/test/fixtures/test-theme/_sass/test-theme-black.scss
+new file mode 100644
+index 0000000..a1e07da
+--- /dev/null
++++ b/test/fixtures/test-theme/_sass/test-theme-black.scss
+@@ -0,0 +1,3 @@
++.sample {
++  color: black;
++}
+diff --git a/test/fixtures/test-theme/_sass/test-theme-red.scss b/test/fixtures/test-theme/_sass/test-theme-red.scss
+new file mode 100644
+index 0000000..0307e17
+--- /dev/null
++++ b/test/fixtures/test-theme/_sass/test-theme-red.scss
+@@ -0,0 +1,3 @@
++.sample {
++  color: red;
++}
+diff --git a/test/fixtures/test-theme/_symlink b/test/fixtures/test-theme/_symlink
+new file mode 120000
+index 0000000..d2d6aac
+--- /dev/null
++++ b/test/fixtures/test-theme/_symlink
+@@ -0,0 +1 @@
++_layouts
+\ No newline at end of file
+diff --git a/test/fixtures/test-theme/assets/application.coffee b/test/fixtures/test-theme/assets/application.coffee
+new file mode 100644
+index 0000000..02f3351
+--- /dev/null
++++ b/test/fixtures/test-theme/assets/application.coffee
+@@ -0,0 +1,3 @@
++---
++---
++alert "From your theme."
+diff --git a/test/fixtures/test-theme/assets/base.js b/test/fixtures/test-theme/assets/base.js
+new file mode 100644
+index 0000000..00c238e
+--- /dev/null
++++ b/test/fixtures/test-theme/assets/base.js
+@@ -0,0 +1 @@
++alert("From your theme.");
+diff --git a/test/fixtures/test-theme/assets/img/another-logo.png b/test/fixtures/test-theme/assets/img/another-logo.png
+new file mode 120000
+index 0000000..bd36e71
+--- /dev/null
++++ b/test/fixtures/test-theme/assets/img/another-logo.png
+@@ -0,0 +1 @@
++logo.png
+\ No newline at end of file
+diff --git a/test/fixtures/test-theme/assets/img/logo.png b/test/fixtures/test-theme/assets/img/logo.png
+new file mode 100644
+index 0000000..95f0a3b
+Binary files /dev/null and b/test/fixtures/test-theme/assets/img/logo.png differ
+diff --git a/test/fixtures/test-theme/assets/style.scss b/test/fixtures/test-theme/assets/style.scss
+new file mode 100644
+index 0000000..47c4a2f
+--- /dev/null
++++ b/test/fixtures/test-theme/assets/style.scss
+@@ -0,0 +1,3 @@
++---
++---
++@import "test-theme-{{ site.theme-color | default: "red" }}";
+diff --git a/test/fixtures/test-theme/test-theme.gemspec b/test/fixtures/test-theme/test-theme.gemspec
+new file mode 100644
+index 0000000..970e1b8
+--- /dev/null
++++ b/test/fixtures/test-theme/test-theme.gemspec
+@@ -0,0 +1,11 @@
++# frozen_string_literal: true
++
++Gem::Specification.new do |s|
++  s.name        = "test-theme"
++  s.version     = "0.1.0"
++  s.licenses    = ["MIT"]
++  s.summary     = "This is a theme used to test Jekyll"
++  s.authors     = ["Jekyll"]
++  s.files       = ["lib/example.rb"]
++  s.homepage    = "https://github.com/jekyll/jekyll";
++end
diff -Nru jekyll-2.2.0+dfsg/debian/patches/CVE-2018-17567_and_test_ported_2.patch jekyll-2.2.0+dfsg/debian/patches/CVE-2018-17567_and_test_ported_2.patch
--- jekyll-2.2.0+dfsg/debian/patches/CVE-2018-17567_and_test_ported_2.patch	1970-01-01 01:00:00.000000000 +0100
+++ jekyll-2.2.0+dfsg/debian/patches/CVE-2018-17567_and_test_ported_2.patch	2018-10-02 16:21:08.000000000 +0200
@@ -0,0 +1,149 @@
+Description: CVE-2018-17567
+ Arbitrary file reads with the cunning use of the include: setting in the config
+ file. By simply including a symlink in the include array allowed the symlinked
+ file to be read into the build when they shouldn’t actually be read in any 
+ circumstance
+
+ This patch also include symlink test ported from 3.6 to 2.2.0
+
+
+Author: Abhijith PA <abhijith@disroot.org>
+Bug-Debian: https://bugs.debian.org/909933
+Origin: https://github.com/jekyll/jekyll/commit/31300cb1f434e1e59bc98285d16dfcc574b4ed3e
+Last-Update: 2018-10-03
+
+Index: jekyll-2.2.0+dfsg/lib/jekyll/entry_filter.rb
+===================================================================
+--- jekyll-2.2.0+dfsg.orig/lib/jekyll/entry_filter.rb
++++ jekyll-2.2.0+dfsg/lib/jekyll/entry_filter.rb
+@@ -29,6 +29,13 @@ module Jekyll
+         unless included?(e)
+           special?(e) || backup?(e) || excluded?(e) || symlink?(e)
+         end
++
++        # Reject this entry if it is a symlink.
++        next true if symlink?(e)
++        # Do not reject this entry if it is included.
++        next false if included?(e)
++        # Reject this entry if it is special, a backup file, or excluded.
++        special?(e) || backup?(e) || excluded?(e)
+       end
+     end
+ 
+Index: jekyll-2.2.0+dfsg/test/helper.rb
+===================================================================
+--- jekyll-2.2.0+dfsg.orig/test/helper.rb
++++ jekyll-2.2.0+dfsg/test/helper.rb
+@@ -36,6 +36,14 @@ class Test::Unit::TestCase
+     test_dir('source', *subdirs)
+   end
+ 
++  def theme_dir(*subdirs)
++    test_dir("fixtures", "test-theme", *subdirs)
++  end
++
++  def fixture_site(overrides = {})
++    Jekyll::Site.new(site_configuration(overrides))
++  end
++
+   def clear_dest
+     FileUtils.rm_rf(dest_dir)
+   end
+Index: jekyll-2.2.0+dfsg/test/source/symlink-test/symlinked-file-outside-source
+===================================================================
+--- /dev/null
++++ jekyll-2.2.0+dfsg/test/source/symlink-test/symlinked-file-outside-source
+@@ -0,0 +1 @@
++/etc/passwd
+Index: jekyll-2.2.0+dfsg/test/test_entry_filter.rb
+===================================================================
+--- jekyll-2.2.0+dfsg.orig/test/test_entry_filter.rb
++++ jekyll-2.2.0+dfsg/test/test_entry_filter.rb
+@@ -6,7 +6,7 @@ class TestEntryFilter < Test::Unit::Test
+       stub(Jekyll).configuration do
+         Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir})
+       end
+-      @site = Site.new(Jekyll.configuration)
++      @site = fixture_site
+     end
+ 
+     should "filter entries" do
+@@ -69,7 +69,7 @@ class TestEntryFilter < Test::Unit::Test
+       stub(Jekyll).configuration do
+         Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'safe' => true})
+       end
+-      site = Site.new(Jekyll.configuration)
++      site = fixture_site
+ 
+       site.read_directories("symlink-test")
+       assert_equal [], site.pages
+@@ -80,11 +80,21 @@ class TestEntryFilter < Test::Unit::Test
+       stub(Jekyll).configuration do
+         Jekyll::Configuration::DEFAULTS.merge({'source' => source_dir, 'destination' => dest_dir, 'safe' => false})
+       end
+-      site = Site.new(Jekyll.configuration)
+ 
++      @site.reader.read_directories("symlink-test")
++      refute_equal [], @site.pages
++      refute_equal [], @site.static_files
++    end
++
++    should "include only safe symlinks in safe mode even when included" do
++      # no support for symlinks on Windows
++      site = fixture_site("safe" => true, "include" => ["symlinked-file-outside-source"])
+       site.read_directories("symlink-test")
+-      assert_not_equal [], site.pages
+-      assert_not_equal [], site.static_files
++
++      # rubocop:disable Performance/FixedSize
++      assert_equal %w(main.scss symlinked-file).length, site.pages.length
++      refute_includes site.static_files.map(&:name), "symlinked-file-outside-source"
++      # rubocop:enable Performance/FixedSize
+     end
+   end
+ 
+Index: jekyll-2.2.0+dfsg/test/test_layout_reader.rb
+===================================================================
+--- jekyll-2.2.0+dfsg.orig/test/test_layout_reader.rb
++++ jekyll-2.2.0+dfsg/test/test_layout_reader.rb
+@@ -30,5 +30,40 @@ class TestLayoutReader < Test::Unit::Tes
+         assert_equal LayoutReader.new(@site).layout_directory, source_dir("blah/_layouts")
+       end
+     end
++
++context "when a layout is a symlink" do
++      setup do
++        FileUtils.ln_sf("/etc/passwd", source_dir("_layouts", "symlink.html"))
++        @site = fixture_site(
++          "safe"    => true,
++          "include" => ["symlink.html"]
++        )
++      end
++      teardown do
++        FileUtils.rm(source_dir("_layouts", "symlink.html"))
++      end
++      should "only read the layouts which are in the site" do
++        layouts = LayoutReader.new(@site).read
++        refute layouts.key?("symlink"), "Should not read the symlinked layout"
++      end
++    end
++    context "with a theme" do
++      setup do
++        FileUtils.ln_sf("/etc/passwd", theme_dir("_layouts", "theme-symlink.html"))
++        @site = fixture_site(
++          "include" => ["theme-symlink.html"],
++          "theme"   => "test-theme",
++          "safe"    => true
++        )
++      end
++      teardown do
++        FileUtils.rm(theme_dir("_layouts", "theme-symlink.html"))
++      end
++      should "not read a symlink'd theme" do
++        layouts = LayoutReader.new(@site).read
++        refute layouts.key?("theme-symlink"), \
++               "Should not read symlinked layout from theme"
++      end
++    end
+   end
+ end
diff -Nru jekyll-2.2.0+dfsg/debian/patches/series jekyll-2.2.0+dfsg/debian/patches/series
--- jekyll-2.2.0+dfsg/debian/patches/series	2014-11-09 16:17:02.000000000 +0100
+++ jekyll-2.2.0+dfsg/debian/patches/series	2018-10-02 16:21:08.000000000 +0200
@@ -6,3 +6,6 @@
 0007-Add-newline-in-test_coffee_script.patch
 0008-Update-test-for-newer-RDiscount.patch
 activesupport4
+CVE-2018-17567_and_test_ported_1.patch
+CVE-2018-17567_and_test_ported_2.patch
+

Reply to: