= MediaWiki release notes =
For upgrade instructions please see the UPGRADE file in this directory.
== MediaWiki 1.13.3 ==
December 15, 2008
This is a security release of the Summer 2008 snapshot release of MediaWiki.
MediaWiki is now using a "continuous integration" development model with
quarterly snapshot releases. The latest development code is always kept
"ready to run", and in fact runs our own sites on Wikipedia.
Release branches will continue to receive security updates for about a year
from first release, but nonessential bugfixes and feature developments
will be made on the development trunk and appear in the next quarterly release.
Those wishing to use the latest code instead of a branch release can obtain
it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
== Changes since 1.13.2 ==
David Remahl of Apple's Product Security team has identified a number of
security issues in previous releases of MediaWiki. Subsequent analysis by the
MediaWiki development team expanded the scope of these vulnerabilities. The
issues with a significant impact are as follows:
* An XSS vulnerability affecting all MediaWiki installations between 1.13.0 and
1.13.2. [CVE-2008-5249]
* A local script injection vulnerability affecting Internet Explorer clients for
all MediaWiki installations with uploads enabled. [CVE-2008-5250]
* A local script injection vulnerability affecting clients with SVG scripting
capability (such as Firefox 1.5+), for all MediaWiki installations with SVG
uploads enabled. [CVE-2008-5250]
* A CSRF vulnerability affecting the Special:Import feature, for all MediaWiki
installations since the feature was introduced in 1.3.0. [CVE-2008-5252]
XSS (cross-site scripting) vulnerabilities allow an attacker to steal an
authorised user's login session, and to act as that user on the wiki. The
authorised user must visit a web page controlled by the attacker in order to
activate the attack. Intranet wikis are vulnerable if the attacker can
determine the intranet URL.
Local script injection vulnerabilities are like XSS vulnerabilities, except
that the attacker must have an account on the local wiki, and there is no
external site involved. The attacker uploads a script to the wiki, which another
user is tricked into executing, with the effect that the attacker is able to act
as the privileged user.
CSRF vulnerabilities allow an attacker to act as an authorised user on the wiki,
but unlike an XSS vulnerability, the attacker can only act as the user in a
specific and restricted way. The present CSRF vulnerability allows pages to be
edited, with forged revision histories. Like an XSS vulnerability, the
authorised user must visit the malicious web page to activate the attack.
These four vulnerabilities are all fixed in this release.
David Remahl also reminded us of some security-related configuration issues:
* By default, MediaWiki stores a backup of deleted images in the images/deleted
directory. If you do not want these images to be publically accessible, make
sure this directory is not accessible from the web. MediaWiki takes some steps
to avoid leaking these images, but these measures are not perfect.
* Set display_errors=off in your php.ini to avoid path disclosure via PHP fatal
errors. This is the default on most shared web hosts.
* Enabling MediaWiki's debugging features, such as $wgShowExceptionDetails, may
lead to path disclosure.
Other changes in this release:
* Avoid fatal error in profileinfo.php when not configured.
* Add a .htaccess to deleted images directory for additional protection against
exposure of deleted files with known SHA-1 hashes on default installations.
* Avoid streaming uploaded files to the user via index.php. This allows
security-conscious users to serve uploaded files via a different domain, and
thus client-side scripts executed from that domain cannot access the login
cookies. Affects Special:Undelete, img_auth.php and thumb.php.
* When streaming files via index.php, use the MIME type detected from the
file extension, not from the data. This reduces the XSS attack surface.
* Blacklist redirects via Special:Filepath. Such redirects exacerbate any
XSS vulnerabilities involving uploads of files containing scripts.
* Internationalisation updates.
== Changes since 1.13.1 ==
* Security: Work around misconfiguration by requiring strict comparisons for
in_array in User::isAllowed().
* (bug 14944) Added $wgShellLocale for configuration of an appropriate locale
to use for LC_CTYPE during shell invocation. For servers that don't have
en_US.utf8. Also added locale detection during install.
* Localisation updates
* Security: Fixed XSS vulnerability in useskin parameter.
== Changes since 1.13.0 ==
* (bug 15460) Fixed intermittent deadlock errors and poor concurrent
performance for installations without memcached.
* (bug 13770) Fixed DOM module detection for installations with both dom
and domxml.
* (bug 15148) Fixed Special:BlockIP for PostgreSQL
* Fixed SQLite support for non-memcached installations
* Localisation updates, Achinese (ace) added.
== Changes since 1.13.0rc2 ==
* (bug 13770) Fixed incorrect detection of PHP's DOM module
* Fix regression from r37834: accesskey tooltip hint should be given for the
minor edit and watch labels on the edit page.
* Updated Chinese simplified/traditional conversion tables
== Changes since 1.13.0rc1 ==
* $wgForwardSearchUrl has been removed entirely. Documented setting since 1.4
has been $wgSearchForwardUrl.
* (bug 14907) DatabasePostgres::fieldType now defined.
* (bug 14966) Fix SearchEngineDummy class for silently non-functional search
on Sqlite instead of horribly fatal error breaky one.
* (bug 14987) Only fix double redirects on page move when the checkbox is
checked
* (bug 13376) Use $wgPasswordSender, not $wgEmergencyContact, as return
address for page update notification mails.
* API: Registration time of users registered before the DB field was created is now
shown as empty instead of the current time.
* (bug 14904): fragments were lost when redirects were fixed.
* Added magic word __STATICREDIRECT__ to suppress the redirect fixer
* (bug 15035) Revert English linkTrail to /^([a-z]+)(.*)$/sD, as it was before
r36253. Multiple reports of breakage due to old (pre-5.0) PCRE libraries,
both bundled with PHP and packaged with distros such as RHEL.
* (bug 14944) Shell invocation of external programs such as ImageMagick convert
was broken in PHP 5.2.6, if the server had a non-UTF-8 locale.
== Changes since 1.12 ==
=== Configuration changes in 1.13 ===
* New option $wgFeed can be set false to turn off syndication feeds
* (bug 5745) Special:Whatlinkshere now shows up to $wgMaxRedirectLinksRetrieved
links through each redirect instead of hardcoded 500
* Set $wgUploadSizeWarning to false by default
* Added $wgLBFactoryConf, for generic configuration of multi-master wiki farms
* Removed $wgAlternateMaster, use $wgLBFactoryConf
* (bug 13562) Misspelled option $wgUserNotifedOnAllChanges changed to
$wgUserNotifiedOnAllChanges
* (bug 12860) New option $wgSitemapNamespaces allows sitemaps to be generated
for only some namespaces
* Removed the emailconfirmed implicit group by default. To re-add it, use:
$wgAutopromote['emailconfirmed'] = APCOND_EMAILCONFIRMED;
in your LocalSettings.php.
* (bug 2396) New shared database configuration variables. $wgSharedPrefix allows
you to use a shared database with a different prefix. Or you can now use a local
database and use prefixes to separate wiki and the shared tables. And the new
$wgSharedTables variable allows you to specify a list of tables to share.
* Automatic edit summaries can be disabled with $wgUseAutomaticEditSummaries
* Duplicates of images are now shown on the image page
* $wgRCFilterByAge allows for the list of dates in recent changes special pages to
be filtered to only those within the range of $wgRCMaxAge
* $wgRCLinkLimits and $wgRCLinkDays allow for customization of the list and limits
displayed on the recent changes special pages
* The "createpage" permission is no longer required when uploading if the target
image page already exists
* $wgMaximumMovedPages restricts the number of pages that can be moved at once
(default 100) with the new subpage-move functionality of Special:Movepage
* Hooks display in Special:Version is now disabled by default, use
$wgSpecialVersionShowHooks = true; to enable it.
* $wgActiveUserEditCount sets the number of edits that must be performed over
a certain number of days to be considered active
* $wgActiveUserDays is that number of days
* $wgRateLimitsExcludedGroups has been deprecated in favor of
$wgGroupPermissions[]['noratelimit']. The former still works, however.
* New $wgGroupPermissions option 'move-subpages' added to control bulk-moving
subpages along with pages. Assigned to 'user' and 'sysop' by default.
* New $wgRC2UDPOmitBots allows user to omit bot edits from UDP output.
Default: false
* Removed $wgEnableCascadingProtection option. Disabling cascading protection
is no longer possible.
* $wgMessageCacheType defines now the type of cache used by the MessageCache class,
previously it was choosen based on $wgParserCacheType
* $wgExtensionAliasesFiles option to simplify adding aliases to special pages
provided by extensions, in a similar way to $wgExtensionMessagesFiles
* Added $wgXMLMimeTypes, an array of XML mimetypes we can check for
with MimeMagic.
* Added $wgDirectoryMode, which allows for setting the default CHMOD value when
creating new directories.
* (bug 14843) $wgCookiePrefix can be set by LocalSettings now, false defaults
current behavior.
=== New features in 1.13 ===
* __HIDDENCAT__ on a category page causes the category to be hidden on the
article page
* Do not show edit permissions errors on a red link click, just redirect to the
article. This is so that readers who don't know what a red link is are not
confused when they are told they are range-blocked.
* Add a new hook ImageBeforeProduceHTML to allow extensions to modify wikitext
image syntax output
* (bug 13100) Added 'preloadtitle' parameter to action=edit§ion=new that
pre-fills the section title field
* (bug 13112) Added Special:RelatedChanges alias to Special:RecentChangesLinked
* (bug 13130) Moved edit token and autosummary fields above edit tools to
reduce broken form submissions
* Add --old-redirects-only option to maintenance/refreshLinks.php, to add old
redirects to the redirect table
* Add links to page and file deletion forms to edit predefined delete reasons
* (bug 13269) Added MediaWiki:Uploadfooter to the bottom of Special:Upload
* (bug 2815) Search results for media now use thumbnail instead of text extract
* When a page doesn't exist, the tab should say "create", not "edit"
* (bug 12882) Added a span with class "patrollink" around "Mark as patrolled"
link on diffs
* Magic word formatnum can now take raw suffix to undo formatting
* Add updatelog table to reliably permit updates that don't change the schema
* Add category table to allow better tracking of category membership counts
** (bug 1212) Give correct membership counts on the pages of large categories
** Use category table for more efficient display of Special:Categories
* (bug 1459) Search for duplicate files by hash: Special:FileDuplicateSearch
* (bug 9447) Added hooks for search result headings
* Image redirects are now enabled by default
* (bug 13450) Email confirmation can now be canceled before the expiration
* (bug 13490) Show upload/file size limit on upload form
* Redesign of Special:UserRights
* Make rev_deleted log entries more intelligible
* (bug 6943) Added PAGESINCATEGORY: magic word
* (bug 13604) Added Special:ListGroupRights
* (bug 6332, 8617) Added message 'mainpage-description' as duplicate of
'mainpage' and added it to message 'sidebar'
* Automatically add old redirects to the redirect table when needed
* (bug 6934) Allow inclusions, links, redirects to be separately toggled on or
off on Special:WhatLinksHere
* Cache image redirects
* (bug 10457) Organize Special:SpecialPages into sections
* Add a new hook EditPageBeforeConflictDiff to allow extensions like FCKeditor
to modify the output for edit conflicts
* Add class="nested" for