[Pkg-mediawiki-commits] r492 - in mediawiki: branches trunk/debian trunk/debian/patches trunk/debian/po

Thorsten Glaser tg at moszumanska.debian.org
Tue Dec 31 10:04:43 UTC 2013


Author: tg
Date: 2013-12-31 10:04:43 +0000 (Tue, 31 Dec 2013)
New Revision: 492

Added:
   mediawiki/trunk/debian/mediawiki-classes.install
   mediawiki/trunk/debian/patches/fix_CVE-2013-4567_and_CVE-2013-4568.patch
   mediawiki/trunk/debian/patches/fix_CVE-2013-4572.patch
   mediawiki/trunk/debian/po/pl.po
Removed:
   mediawiki/branches/nmu-merge/
Modified:
   mediawiki/trunk/debian/changelog
   mediawiki/trunk/debian/control
   mediawiki/trunk/debian/patches/series
   mediawiki/trunk/debian/rules
Log:
merge what happened between my last commit


Modified: mediawiki/trunk/debian/changelog
===================================================================
--- mediawiki/trunk/debian/changelog	2013-12-31 09:52:27 UTC (rev 491)
+++ mediawiki/trunk/debian/changelog	2013-12-31 10:04:43 UTC (rev 492)
@@ -9,6 +9,28 @@
 
  -- Jonathan Wiltshire <jmw at debian.org>  Sat, 28 Sep 2013 21:30:15 +0100
 
+mediawiki (1:1.19.8+dfsg-2.2) unstable; urgency=high
+
+  * Non-maintainer upload
+  * Security fixes (Closes: #729629):
+    - Kevin Israel (Wikipedia user PleaseStand) identified and reported two
+      vectors for injecting Javascript in CSS that bypassed MediaWiki's
+      blacklist [CVE-2013-4567, CVE-2013-4568]
+    - Internal review while debugging a site issue discovered that MediaWiki
+      and the CentralNotice extension were incorrectly setting cache headers
+      when a user was autocreated, causing the user's session cookies to be
+      cached, and returned to other users [CVE-2013-4572]
+  * New Polish debconf translation, thanks to Magdalena Z. Kubot
+    (Closes: #731381)
+
+ -- David Prévot <taffit at debian.org>  Sun, 08 Dec 2013 16:13:40 -0400
+
+mediawiki (1:1.19.8+dfsg-2.1) unstable; urgency=low
+
+  * Provide includes/libs in mediawiki-classes (Closes: #703837)
+
+ -- David Prévot <taffit at debian.org>  Wed, 23 Oct 2013 11:29:27 -0400
+
 mediawiki (1:1.19.8+dfsg-2) unstable; urgency=low
 
   [ Thorsten Glaser ]

Modified: mediawiki/trunk/debian/control
===================================================================
--- mediawiki/trunk/debian/control	2013-12-31 09:52:27 UTC (rev 491)
+++ mediawiki/trunk/debian/control	2013-12-31 10:04:43 UTC (rev 492)
@@ -13,7 +13,7 @@
 
 Package: mediawiki
 Architecture: all
-Depends: apache2 | httpd, php5, php5-mysql | php5-pgsql | php5-sqlite | php5-mysqlnd, mime-support, libjs-jquery, libjs-jquery-tipsy, libjs-jquery-cookie, libjs-jquery-form, ${misc:Depends}
+Depends: apache2 | httpd, php5, php5-mysql | php5-pgsql | php5-sqlite | php5-mysqlnd, mime-support, libjs-jquery, libjs-jquery-tipsy, libjs-jquery-cookie, libjs-jquery-form, mediawiki-classes, ${misc:Depends}
 Recommends: mysql-server | postgresql-contrib, php5-cli, python, php-wikidiff2, mediawiki-extensions-base
 Suggests: imagemagick | php5-gd, mediawiki-extensions-math, memcached, clamav
 Breaks: fusionforge-plugin-mediawiki (<< 5.2~rc1+1~),
@@ -36,3 +36,24 @@
  Moreover, it keeps track of changes, so users can receive
  notifications, view diffs and revert edits. This system has many
  other features and can easily be extended.
+
+Package: mediawiki-classes
+Architecture: all
+Depends: ${misc:Depends}
+Breaks: mediawiki (<< 1:1.19.8+dfsg-2.1~)
+Replaces: mediawiki (<< 1:1.19.8+dfsg-2.1~)
+Description: website engine for collaborative work - standalone classes
+ This package provides standalone classes from the remainder of the
+ MediaWiki codebase. They do not call on any other portions of MediaWiki
+ code, and can be used in portions of MediaWiki code, and can be used in
+ other projects without dependency issues.
+ .
+ MediaWiki is a wiki engine (a program for creating a collaboratively
+ edited website). It is designed to handle heavy websites containing
+ library-like document collections, and supports user uploads of
+ images/sounds, multilingual content, TOC autogeneration, ISBN links,
+ etc.
+ .
+ Moreover, it keeps track of changes, so users can receive
+ notifications, view diffs and revert edits. This system has many
+ other features and can easily be extended.

Copied: mediawiki/trunk/debian/mediawiki-classes.install (from rev 491, mediawiki/branches/nmu-merge/debian/mediawiki-classes.install)
===================================================================
--- mediawiki/trunk/debian/mediawiki-classes.install	                        (rev 0)
+++ mediawiki/trunk/debian/mediawiki-classes.install	2013-12-31 10:04:43 UTC (rev 492)
@@ -0,0 +1 @@
+includes/libs/*.php usr/share/mediawiki/includes/libs

Copied: mediawiki/trunk/debian/patches/fix_CVE-2013-4567_and_CVE-2013-4568.patch (from rev 491, mediawiki/branches/nmu-merge/debian/patches/fix_CVE-2013-4567_and_CVE-2013-4568.patch)
===================================================================
--- mediawiki/trunk/debian/patches/fix_CVE-2013-4567_and_CVE-2013-4568.patch	                        (rev 0)
+++ mediawiki/trunk/debian/patches/fix_CVE-2013-4567_and_CVE-2013-4568.patch	2013-12-31 10:04:43 UTC (rev 492)
@@ -0,0 +1,153 @@
+Description: Sanitizer::checkCss blacklist can be bypassed using vertical tab (ASCII 11)
+ .
+ Kevin Israel (Wikipedia user PleaseStand) identified and reported two
+ vectors for injecting Javascript in CSS that bypassed MediaWiki's blacklist
+ (CVE-2013-4567, CVE-2013-4568).
+Author: Chris Steipp, <csteipp at wikimedia.org>
+Origin: upstream, https://bugzilla.wikimedia.org/attachment.cgi?id=13772&action=difr
+Bug: https://bugzilla.wikimedia.org/show_bug.cgi?id=55332
+Bug-Debian: http://bugs.debian.org/729629
+
+--- a/includes/Sanitizer.php
++++ b/includes/Sanitizer.php
+@@ -882,6 +882,21 @@
+ 		$value = preg_replace_callback( $decodeRegex,
+ 			array( __CLASS__, 'cssDecodeCallback' ), $value );
+ 
++		// Normalize Halfwidth and Fullwidth Unicode block that IE6 might treat as ascii
++		$value = preg_replace_callback(
++			'/[!-z]/u', // U+FF01 to U+FF5A
++			array( __CLASS__, 'cssNormalizeUnicodeWidth' ),
++			$value
++		);
++
++		// Convert more characters IE6 might treat as ascii
++		// U+0280, U+0274, U+207F, U+029F, U+026A, U+207D, U+208D
++		$value = str_replace(
++			array( 'ʀ', 'ɴ', 'ⁿ', 'ʟ', 'ɪ', '⁽', '₍' ),
++			array( 'r', 'n', 'n', 'l', 'i', '(', '(' ),
++			$value
++		);
++
+ 		// Remove any comments; IE gets token splitting wrong
+ 		// This must be done AFTER decoding character references and
+ 		// escape sequences, because those steps can introduce comments
+@@ -897,8 +912,24 @@
+ 			$value = substr( $value, 0, $commentPos );
+ 		}
+ 
++		// S followed by repeat, iteration, or prolonged sound marks,
++		// which IE will treat as "ss"
++		$value = preg_replace(
++			'/s(?:
++				\xE3\x80\xB1 | # U+3031
++				\xE3\x82\x9D | # U+309D
++				\xE3\x83\xBC | # U+30FC
++				\xE3\x83\xBD | # U+30FD
++				\xEF\xB9\xBC | # U+FE7C
++				\xEF\xB9\xBD | # U+FE7D
++				\xEF\xBD\xB0   # U+FF70
++			)/ix',
++			'ss',
++			$value
++		);
++
+ 		// Reject problematic keywords and control characters
+-		if ( preg_match( '/[\000-\010\016-\037\177]/', $value ) ) {
++		if ( preg_match( '/[\000-\010\013\016-\037\177]/', $value ) ) {
+ 			return '/* invalid control char */';
+ 		} elseif ( preg_match( '! expression | filter\s*: | accelerator\s*: | url\s*\( !ix', $value ) ) {
+ 			return '/* insecure input */';
+@@ -907,6 +938,19 @@
+ 	}
+ 
+ 	/**
++	 * Normalize Unicode U+FF01 to U+FF5A
++	 * @param character $char
++	 * @return character in ASCII range \x21-\x7A
++	 */
++	static function cssNormalizeUnicodeWidth( $matches ) {
++		$cp = utf8ToCodepoint( $matches[0] );
++		if ( $cp === false ) {
++			return '';
++		}
++		return chr( $cp - 65248 ); // ASCII range \x21-\x7A
++	}
++
++	/**
+ 	 * @param $matches array
+ 	 * @return String
+ 	 */
+--- a/tests/parser/parserTests.txt
++++ b/tests/parser/parserTests.txt
+@@ -5059,6 +5059,70 @@
+ 
+ !! end
+ 
++!! test
++CSS safety test: vertical tab
++!! input
++<p style="font-size: 100px; background-image:url\b(https://www.google.com/images/srpr/logo6w.png)">A</p>
++!! result
++<p style="/* invalid control char */">A</p>
++
++!! end
++
++!! test
++MSIE CSS safety test: Fullwidth
++!! input
++<p style="font-size: 100px; color: expression((title='XSSed'),'red')">A</p>
++<div style="top:EXPRESSION(alert())">B</div>
++!! result
++<p style="/* insecure input */">A</p>
++<div style="/* insecure input */">B</div>
++
++!! end
++
++!! test
++MSIE CSS safety test: IPA extensions
++!! input
++<div style="background-image:uʀʟ(javascript:alert())">A</div>
++<p style="font-size: 100px; color: expʀessɪoɴ((title='XSSed'),'red')">B</p>
++!! result
++<div style="/* insecure input */">A</div>
++<p style="/* insecure input */">B</p>
++
++!! end
++
++!! test
++MSIE CSS safety test: sup/sub script
++!! input
++<div style="background-image:url⁽javascript:alert())">A</div>
++<div style="background-image:url₍javascript:alert())">B</div>
++<p style="font-size: 100px; color: expressioⁿ((title='XSSed'),'red')">C</p>
++!! result
++<div style="/* insecure input */">A</div>
++<div style="/* insecure input */">B</div>
++<p style="/* insecure input */">C</p>
++
++!! end
++
++!! test
++MSIE CSS safety test: Repetition markers
++!! input
++<p style="font-size: 100px; color: expres〱ion((title='XSSed'),'red')">A</p>
++<p style="font-size: 100px; color: expresゝion((title='XSSed'),'red')">B</p>
++<p style="font-size: 100px; color: expresーion((title='XSSed'),'red')">C</p>
++<p style="font-size: 100px; color: expresヽion((title='XSSed'),'red')">D</p>
++<p style="font-size: 100px; color: expresﹽion((title='XSSed'),'red')">E</p>
++<p style="font-size: 100px; color: expresﹼion((title='XSSed'),'red')">F</p>
++<p style="font-size: 100px; color: expresーion((title='XSSed'),'red')">G</p>
++!! result
++<p style="/* insecure input */">A</p>
++<p style="/* insecure input */">B</p>
++<p style="/* insecure input */">C</p>
++<p style="/* insecure input */">D</p>
++<p style="/* insecure input */">E</p>
++<p style="/* insecure input */">F</p>
++<p style="/* insecure input */">G</p>
++
++!! end
+ 
+ !! test
+ Table attribute legitimate extension

Copied: mediawiki/trunk/debian/patches/fix_CVE-2013-4572.patch (from rev 491, mediawiki/branches/nmu-merge/debian/patches/fix_CVE-2013-4572.patch)
===================================================================
--- mediawiki/trunk/debian/patches/fix_CVE-2013-4572.patch	                        (rev 0)
+++ mediawiki/trunk/debian/patches/fix_CVE-2013-4572.patch	2013-12-31 10:04:43 UTC (rev 492)
@@ -0,0 +1,36 @@
+Description: Multiple users with the same session ID
+ .
+ Internal review while debugging a site issue discovered that MediaWiki
+ and the CentralNotice extension were incorrectly setting cache headers when
+ a user was autocreated, causing the user's session cookies to be cached,
+ and returned to other users (CVE-2013-4572).
+Author: Chris Steipp, <csteipp at wikimedia.org>
+Origin: upstream, https://bugzilla.wikimedia.org/attachment.cgi?id=13779&action=diff
+Bug: https://bugzilla.wikimedia.org/show_bug.cgi?id=53032
+Bug-Debian: http://bugs.debian.org/729629
+
+--- a/includes/actions/RawAction.php
++++ b/includes/actions/RawAction.php
+@@ -79,6 +79,11 @@
+ 		# Output may contain user-specific data;
+ 		# vary generated content for open sessions on private wikis
+ 		$privateCache = !$wgGroupPermissions['*']['read'] && ( $smaxage == 0 || session_id() != '' );
++		// Bug 53032 - make this private if user is logged in,
++		// so we don't accidentally cache cookies
++		if ( !$privateCache ) {
++			$privateCache = $this->getUser()->isLoggedIn();
++		}
+ 		# allow the client to cache this for 24 hours
+ 		$mode = $privateCache ? 'private' : 'public';
+ 		$response->header( 'Cache-Control: ' . $mode . ', s-maxage=' . $smaxage . ', max-age=' . $maxage );
+--- a/includes/specials/SpecialUploadStash.php
++++ b/includes/specials/SpecialUploadStash.php
+@@ -279,6 +279,8 @@
+ 		header( "Content-Type: $contentType", true );
+ 		header( 'Content-Transfer-Encoding: binary', true );
+ 		header( 'Expires: Sun, 17-Jan-2038 19:14:07 GMT', true );
++		// Bug 53032 - It shouldn't be a problem here, but let's be safe and not cache
++		header( 'Cache-Control: private' );
+ 		header( "Content-Length: $size", true );
+ 	}
+ 

Modified: mediawiki/trunk/debian/patches/series
===================================================================
--- mediawiki/trunk/debian/patches/series	2013-12-31 09:52:27 UTC (rev 491)
+++ mediawiki/trunk/debian/patches/series	2013-12-31 10:04:43 UTC (rev 492)
@@ -9,3 +9,5 @@
 fix_warnings.patch
 mimetypes.patch
 suppress_warnings.patch
+fix_CVE-2013-4567_and_CVE-2013-4568.patch
+fix_CVE-2013-4572.patch

Copied: mediawiki/trunk/debian/po/pl.po (from rev 491, mediawiki/branches/nmu-merge/debian/po/pl.po)
===================================================================
--- mediawiki/trunk/debian/po/pl.po	                        (rev 0)
+++ mediawiki/trunk/debian/po/pl.po	2013-12-31 10:04:43 UTC (rev 492)
@@ -0,0 +1,30 @@
+# Translation of mediawiki debconf templates to Polish
+# Copyright (C) 2004
+# This file is distributed under the same license as the mediawiki package.
+# 
+# Magdalena Z. Kubot <magdalena.kubot at gmail.com>, 2013.
+msgid ""
+msgstr ""
+"Project-Id-Version: mediawiki\n"
+"Report-Msgid-Bugs-To: pkg-mediawiki-devel at lists.alioth.debian.org\n"
+"POT-Creation-Date: 2007-10-22 02:37+0200\n"
+"PO-Revision-Date: 2013-12-04 20:50+0100\n"
+"Last-Translator: Magdalena Z. Kubot <magdalena.kubot at gmail.com>\n"
+"Language-Team: Polish <debian-l10n-polish at lists.debian.org>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Web server(s) to configure automatically:"
+msgstr "Serwery WWW do automatycznej konfiguracji:"
+
+#. Type: multiselect
+#. Description
+#: ../templates:2001
+msgid "Please select the web server(s) that should be configured automatically for MediaWiki."
+msgstr "Proszę wybrać serwery WWW, które mają być skonfigurowane automatycznie dla MediaWiki."

Modified: mediawiki/trunk/debian/rules
===================================================================
--- mediawiki/trunk/debian/rules	2013-12-31 09:52:27 UTC (rev 491)
+++ mediawiki/trunk/debian/rules	2013-12-31 10:04:43 UTC (rev 492)
@@ -42,14 +42,31 @@
 	# Put debian version for mediawiki version..
 	sed -e "s#$(DEB_UPSTREAM_VERSION)#$(DEB_NOEPOCH_VERSION)#" \
 			-i debian/mediawiki/usr/share/mediawiki/includes/DefaultSettings.php
+	# includes/libs is provided by mediawiki-classes
+	rm -rf debian/mediawiki/usr/share/mediawiki/includes/libs
 
 override_dh_installdeb:
 	find debian/mediawiki -depth \( -name ".cvsignore" -o -name ".gitignore" -o -name ".arch-ids" \) -exec rm -rf {} \;
 	dh_installdeb
 
 # DevRef §6.7.8.2.
-.PHONY: get-orig-source
-get-orig-source:
+.PHONY: get-orig-source-tg
+get-orig-source-tg:
+	mksh -o pipefail -e -x -c 'DEB_UPSTREAM_VERSION=${DEB_UPSTREAM_VERSION}; \
+		rm -rf debian/tmp; mkdir debian/tmp; cd debian/tmp; \
+		[[ -s ../../../mediawiki-${DEB_UPSTREAM_VERSION}.tar.gz ]] && \
+		    ln -s ../../../mediawiki-${DEB_UPSTREAM_VERSION}.tar.gz || \
+		    wget http://dumps.wikimedia.org/mediawiki/$${DEB_UPSTREAM_VERSION%.*}/mediawiki-${DEB_UPSTREAM_VERSION}.tar.gz; \
+		paxtar xzf mediawiki-${DEB_UPSTREAM_VERSION}.tar.gz; \
+		rm -f mediawiki-${DEB_UPSTREAM_VERSION}/skins/common/images/cc-*; \
+		mv mediawiki-${DEB_UPSTREAM_VERSION} mediawiki-${DEB_UPSTREAM_VERSION}.orig; \
+		find mediawiki-${DEB_UPSTREAM_VERSION}.orig -type f | \
+		    sort | paxcpio -oC512 -Hustar -Mdist | \
+		    xz -6e >../../mediawiki_${DEB_UPSTREAM_VERSION}+dfsg.orig.tar.xz; \
+		cd ..; rm -rf tmp'
+	@ls -l mediawiki_${DEB_UPSTREAM_VERSION}+dfsg.orig.tar.xz
+.PHONY: get-orig-source-jmw
+get-orig-source-jmw:
 	$(eval TMPDIR=$(shell mktemp -d))
 	$(eval MWTAR=mediawiki_${DEB_UPSTREAM_VERSION}.orig.tar.gz)
 	$(eval DFSGTAR=mediawiki_${DEB_UPSTREAM_VERSION}+dfsg.orig.tar.xz)




More information about the Pkg-mediawiki-commits mailing list