= MediaWiki 1.35 = MediaWiki 1.35 should mostly work on PHP 8.0/8.1, however it is not currently actively supported. Testing (on a development wiki!) is appreciated, and bugs with PHP 8.0/8.1 on MediaWiki 1.35 will be accepted. It is anticipated that in a later MediaWiki 1.35 point release, we can declare 1.35 as supporting PHP 8.0/8.1. PHP 8.0 workboard: https://phabricator.wikimedia.org/tag/php_8.0_support/ PHP 8.1 workboard: https://phabricator.wikimedia.org/tag/php_8.1_support/ PHP 8.2 workboard: https://phabricator.wikimedia.org/tag/php_8.2_support/ PHP 8.3 workboard: https://phabricator.wikimedia.org/tag/php_8.3_support/ == MediaWiki 1.35.14 == This is a security and maintenance release of the MediaWiki 1.35 branch. === Changes since MediaWiki 1.35.13 === * Localisation updates. * (T344912) mail: Encode period (ascii 46) if it appears in encoded email header. * (T347726, CVE-2023-51704) SECURITY: logging: Fix non-escaped messages used in rights log. == MediaWiki 1.35.13 == This is a maintenance release of the MediaWiki 1.35 branch. === Changes since MediaWiki 1.35.12 === * Tarball release to fix backport issues with patch for T341529. == MediaWiki 1.35.12 == This is a security and maintenance release of the MediaWiki 1.35 branch. === Changes since MediaWiki 1.35.11 === * Localisation updates. * (T333050, CVE-2023-45363) SECURITY: Fix infinite loop for self-redirects with variants conversion. * (T341434) WikiImporter: Improve error message output. * (T341737) ApiBase: Cast $id to string in filterIDs. * (T342632) ApiComparePages: Add help url. * (T347227) ImportReporter: Make callback functions public. * doc: Improve description of type in extension.schema.v1.json. * (T340221, CVE-2023-45360) SECURITY: XSS via 'youhavenewmessagesmanyusers' and 'youhavenewmessages' messages. * (T341529, CVE-2023-45362) SECURITY: diff-multi-sameuser ("X intermediate revisions by the same user not shown") ignores username suppression. * (T341565, CVE-2023-3550) SECURITY: Stored XSS when uploading crafted XML file to Special:Upload (non-standard configuration). == MediaWiki 1.35.11 == This is a security and maintenance release of the MediaWiki 1.35 branch. === Changes since MediaWiki 1.35.10 === * Localisation updates. * (T333990) composer.json: Explicitly pin psr/http-message to 1.0.1. * (T335203, CVE-2023-29197) SECURITY: Upgrading guzzlehttp/psr7 (1.9.0 => 1.9.1). * (T269636) Add Access-Control-Max-Age to $wgAllowedCorsHeaders. * (T322944) Add Authorization to default $wgAllowedCorsHeaders. * (T332889, CVE-2023-36675) SECURITY: Fix escaping in BlockLogFormatter. * (T297917) objectcache: avoid use of ctype_digit() in WANObjectCache::adaptiveTTL(). * (T330464) Work around argument corruption bug in XMLReader::open. * (T313157) IndexPager: Also protect against $offset being 0. * (T335612, CVE-2023-36674) SECURITY: Move badFile lookup to Linker. == MediaWiki 1.35.10 == This is a security and maintenance release of the MediaWiki 1.35 branch. === Changes since MediaWiki 1.35.9 === * Localisation updates. * (T324895) MWCallbackStream: Add explicit $stream property. * Remove /images .htaccess rules that are no longer relevent. * Disable php in .htaccess of images directory as a hardening measure. * (T322583) Include missing message parameter in message. * Fix phan error when Excimer is enabled. * (T274966) tests: Make pass on php8.0. * (T323373) Parser: Fix extractSections() behavior for PHP >= 8.0. * (T326021) Add matrix: to $wgUrlProtocols. * api/en.json: api-help-datatype-expiry add missing 'may'. * (T225218) Wait until the recent changes are updated. * (T328222) Pass empty string to strlen() if schema is null for PostgresDatabase. * (T317329) OutputPage: Fix undefined ['host'] in ImagePreconnect code. * (T289926) SpecialRevisionDelete: Set default of '' for wpReason. * (T155582, T328503) Fix XML dumps for content types with non-string getNativeData(). * (T295958, T278847) MediaWiki-Docker: Switch PHP images to PHP7.4. * (T314099) revisiondelete: Replace dynamic property Status::$itemStatuses. * (T329198) ParamValidator: Improve paramvalidator-help-multi-max message. * (T292348) WikiImporter: do not fail if upload entry in dump lacks 'text' tag. * (T329484) API: Fix query+allimages user parameter description. * (T330529) SpecialEditTags: Set default of '' for wpReason. * (T330526) htmlform: Handle null from HTMLFormField::getDefault in multiselects. * (T285159, CVE-2023-29141) SECURITY: Do not apply autoblocks to untrusted XFF headers. == MediaWiki 1.35.9 == This is a security and maintenance release of the MediaWiki 1.35 branch. === Changes since MediaWiki 1.35.8 === * Localisation updates. * (T319000) WebInstaller: Don't try and run trim() on null. * (T320864) When calling mail(), use an array for headers. * (T311567) In ManualLogEntry, cast the comment to string. * (T323082) Upgrading wikimedia/xmp-reader (0.7.0 => 0.8.5). * Language: Handle ronna and quetta. * (T304515) LCStoreStaticArray: atomically replace the cache file. * (T324890, T324891, T324901) Parser: Allow dynamic properties on PHP 8.2. * (T322637) SECURITY: sqlite should not create DB file world-readable. == MediaWiki 1.35.8 == This is a security and maintenance release of the MediaWiki 1.35 branch. === Changes since MediaWiki 1.35.7 === * Localisation updates. * (T311568) UploadBase::setTempFile() handle $tempPath being passed as null. * (T311559) SpecialListFiles: user parameter isn't always present. * (T311561) ImageListPager: Don't call htmlspecialchars() on null. * (T311920) SpecialBlockList: Prevent passing null to trim(). * (T311921) SpecialUserrights: Don't pass null to str_replace. * (T311570) SpecialWithoutInterwiki: Don't pass null through to Title::capitalize(). * (T311574, T311576) SpecialLinkSearch: Don't pass null through to the parser. * (T312519, T312520) Parser::extensionSubstitution() Don't run substr() on null. * (T287564) populateInterwiki: Include not null columns iw_api/iw_wikiid. * (T312302) SpecialRedirect: Don't pass null to explode. * RemoveInvalidEmails: Fix quoting for postgres. * (T312678) import: UploadSourceAdapter::stream_read() don't pass null to strlen(). * (T312300) SpecialDiff: Don't pass null to explode(). * (T312680) parser: Fix CoreParserFunctions::urlencode() null coalescence $arg. * (T289926) Handle null passed to wfShorthandToInteger() and Html::element(). * (T289926) Ensure that strlen() does not get passed a (valid) null. * (T312301) SpecialDiff: Don't pass null to trim(). * Hooks: Use more meaningful name for SkinAfterPortlet hook parameter. * (T289926) Ensure we don't pass null to mb_strlen. * (T312305, T311572, T311571, T311578) HtmlForm: Null coalescence in trim() calls. * (T289926) site: Consistently return null from Site::getDomain(). * (T307304, T289879) filebackend,jobqueue: Add signature for FilterIterator::accept(). * (T312183) rdbms: Adapt hasOrMadeRecentPrimaryChanges test mock for PHP 8.1. * Add application/vnd.ms-opentype to MIME list. * Allow composer/installers plugin in composer.json. * (T313663) Make HandlerTestTrait compatible with php8.1. * (T313663) [php8.1] Change override of $wgResourceBasePath for CSP tests. * Change type hints for BatchRowIterator and NotRecursiveIterator for compatibility with PHP 8.1. * (T313663) [php8] Don't use strlen on potentially null string. * (T313663) [php8.1] Suppress test warning about providing null. * (T313663) Parser will use current timestamp instead of null if passed a RevisionRecord that does not have a timestamp. * (T313663) Add explicit null check for $sha in FileBackend [php8.1]. * (T313663) LogFormatter: Cast argument of ctype_digit to string [php8.1]. * (T289879, T289926) Get rid of warnings on PHP 8.1. * rdbms: fix some PHP 8 warnings in Database/LoadBalancer/LBFactory. * (T313663) Avoid testing strlen on null in ApiQuerySiteinfo [php 8.1 compat]. * Fix a couple deprecation warnings in the installer under PHP 8.1. * (T313663) Use default timezone UTC for SpecialWatchlistTest [php 8.1]. * (T314096) Migrate use of ${var}-style string interpolation. * (T313663, T313662) Make default value for optional args {{PAGESINCAT:..}} be '' not null. * (T314225) SpecialCategories: Null coalescene $par. * (T314099) User: Allow dynamic properties on PHP 8.2. * (T314404) SpecialGoToInterwiki: Null coalescene $par. * (T314397) SpecialBlock: Better handle null in getTargetUserTitle. * (T314099) phpunit: Fix trivial dynamic property usages in tests. * (T314405) UploadStash: Check if us_prop is set in the fileMetadata. * (T314550) SpecialMergeHistory: Set timestamp to '' if no mergepoint. * (T314551) SpecialMergeHistory: Set defaults for target and dest parameters. * api: Add rel=nofollow to help examples. * (T314824) tests: Update parser test after i18n change. * (T263927) Add autocomplete HTML attribute to common auth form fields. * (T307613) Validate length of user email on Special:ChangeEmail/ Special:CreateAccount. * (T314906, T314907) SpecialBlock: Set defaults for wpPageRestrictions and wpNamespaceRestrictions. * (T315309) ImportStreamSource::newFromURL() Prevent passing null to fwrite. * (T315892) composer.json: Pin phpunit to 8.5.28. * (T229092) MigrateActors.php: ignore duplicate creations of actors. * (T313049) Bump wikimedia/parsoid to v0.12.3. * (T317750) session: Fix broken SessionTest case due to PHPUnit dependency change. * (T318460) SpecialChangeEmail: Set default for returntoquery. * (T316304, CVE-2022-41767) SECURITY: reassignEdits doesn't update results in an IP range check on Special:Contributions. * (T309894, CVE-2022-41765) SECURITY: HTMLUserTextField exposes existence of hidden users. == MediaWiki 1.35.7 == This is a security and maintenance release of the MediaWiki 1.35 branch. === Changes since MediaWiki 1.35.6 === * Localisation updates. * (T289879) Type hints for ArrayAccess. * (T304783) TemplateParser: avoid warnings when called by NoLocalSettings. * Rebuilt vendor with composer 2.3.3. * (T289879) Address some deprecations for PHP 8.1. * Fix old_name in UserLogoutComplete hook. * (T286260, T307979) objectcache: normalize $exptime to a TTL in APCUBagOStuff/WinCacheBagOStuff. * MediaSearchWidget should declare an explicit dependency on mediawiki.user module. * (T288423) WikiImporter: Replace deprecated WikiRevision::setText. * (T309377, CVE-2022-29248, T311384, CVE-2022-27776) Updating guzzlehttp/guzzle (6.5.5 => 6.5.8). * (T308471) SECURITY: Escape welcomeuser message passed to showSuccessPage(). * (T311272) Call parent constructor of AddSite maintenance script first. * MediaWiki: Don't eagerly initialize action name. * (T289926) Avoid passing null to trim() in SkinTemplate. * (T307282) Avoid passing null to strcasecmp(), for PHP 8.1. * (T311552) ChangesListSpecialPage: Don't pass null to FormatJson::decode(). * (T311569) FileBackend::isStoragePath() Handle being passed null. * (T311544) Pass int to ApiUsageException::newWithMessage()'s $httpCode param. * (T311678) SpecialEditWatchlist: Prevent passing null to strtolower(). * (T281741) ChangeTags: Fix adding CSS classes for hidden tags. * (T296642) changetags: Fix management of a '0' tag. * (T311554) ChangeTags: Return early in formatSummaryRow() if $tags === null. * (T303033) Handle null in ChangeTags::modifyDisplayQuery. == MediaWiki 1.35.6 == This is a security and maintenance release of the MediaWiki 1.35 branch. === Changes since MediaWiki 1.35.5 === * (T298261) Fix support for Composer 2.2. * (T298283) composer.json: Add wikimedia/composer-merge-plugin to allow-plugins. * Update doctrine/dbal (3.0.0 => 3.1.5). * (T298564) MemcachedClient: Add support for IPv6. * (T297543, CVE-2022-28202) SECURITY: properly escape output used within galleries and Special:RevisionDelete. * (T268847) Suppress deprecation warnings from libxml_disable_entity_loader(). * (T283275) Fix PHP 8.0 failure of WikiExporterFactoryTest. * (T274966) Upgrading wikimedia/html-formatter (1.0.2 => 2.0.1). * Fix the json schema and the extension processor for Parsoid extension modules. * (T299696) update.php: Avoid passing null to substr. * In PHP 8.1 don't throw exceptions from mysqli. * (T289926) SiteConfiguration: Don't pass null to str_replace(). * (T264735) Fix deprecation warning from CURLPIPE_HTTP1. * (T260735) Stop using is_resource() where possible. * (T289879) Apply ReturnTypeWillChange to various implementations of built in interfaces. * (T299312) Implement __serialize/__unserialize for PHP 8.1 support. * ExtensionRegistry: Add process cache for lazy attributes. * (T301041) ApiPageSet: Add "missing": true to missing revisions. * Allow ParsoidModules extension schema to register services. * (T297708) Allow setting max execution time to several special pages. * Upgrading wikimedia/object-factory (v2.1.0 => v2.2.0). * (T302540) composer.json: Add ext-calendar to require. * (T302540) composer.json: Add ext-simplexml to require-dev. * (T302540) composer.json: Add various PHP extensions to suggests. * Upgrading symfony/polyfill-php80 (v1.23.1 => v1.25.0). * (T303871) Add Title::getId() as an alias for ::getArticleId(). * (T304008) Don't re-check "Move subpages" on Special:MovePage after a warning. * (T293576) listFiles: Display file name instead of version. * (T303560) Installer: Check correct PCRE_CONFIG_NEWLINE value. * wrapOldPasswords: add \n to two output calls. * (T304993) Make editcontentmodel a part of editpage grant. * (T297571, CVE-2022-28201) Title::newMainPage() goes into an infinite recursion loop if it points to a local interwiki. * (T297731, CVE-2022-28203) Requesting Special:NewFiles on a wiki with many file uploads with actor as a condition can result in a DoS. == MediaWiki 1.35.5 == This is a security and maintenance release of the MediaWiki 1.35 branch. === Changes since MediaWiki 1.35.4 === * (T290697) Add symfony/polyfill-php80. * IcuCollation: Add some more icu to unicode version mappings. * ApiBase: Annotate deprecated constants individually. * PHPVersionCheck: Mark PHP 7.4.0 - 7.4.2 as buggy. * (T293044) installer: Fix 5th param to sourceFile() in DatabaseUpdater. * (T291127) Always encode spaces in cookie values as "%20". * Use LocalFile::getHookRunner instead of LocalFile::hookRunner. * HistoryBlobStub: add getLocation() to get $mOldId. * Fix checkStorage.php. * checkStorage: pass no parameters to WikiRevision::getContent(). * (T292763, CVE-2021-44854) SECURITY: Do not cache private wiki completion results. * (T294316) Revert "Mark ApiClientLogin/ApiLogin as requiring write mode". * (T250068) resources: Upgrade jQuery from 3.4.1 to 3.6.0. * (T250068) resources: Upgrade jquery-migrate from 3.1.0 (patched) to 3.3.2 (patched). * (T294796) JobQueueRedis: Replace deprecated zSize with zCard. * (T212428, T267468) Allow populateContentTables to continue when there are bad blobs. * (T295191) ApiQuerySiteinfo: Fix "rightsinfo"/"url" when $wgRightsPage is set. * Update pear/mail_mime to 1.10.11. * Update deprecated Guzzle Psr7 function calls. * Tweak error message for missing composer dependencies. * (T296112) Allow inserting new sections named '0'. * nukeNS: don't run purgeRedundantText() after every change. * (T225888) RollbackAction: fix missing pagetitle. * (T297322, CVE-2021-44858, CVE-2021-44857) SECURITY: Fix permissions checks in undo actions. * (T297574, CVE-2021-45038) SECURITY: Fix permissions check in action=rollback. * (T34716, T297416) SECURITY: Require 'read' right for most actions. * (T271037, CVE-2021-44856) SECURITY: Fix use of EditFilterMergedContent hook when changing content model. == MediaWiki 1.35.4 == This is a security and maintenance release of the MediaWiki 1.35 branch. === Changes since MediaWiki 1.35.3 === * (T283394) Mark ApiClientLogin/ApiLogin as requiring write mode. * (T283273) Make postgres IRC channel point to libera.chat. * (T289108) ExtensionProcessor: Remove loaderScripts from extension.json schemas. * (T281549) Installer: Fix mediawiki-announce auto subscription code. * FormatJson: Optimize encode() for supported PHP versions. * (T290398) renameRestrictions.php: Update protected_titles as well. * $wgMimeTypeBlacklist - This configuration array now prohibits the RFC 4329 form of JavaScript, 'application/javascript', as well as previous MIME types. * (T51097, T290273) resourceloader: Call getStyleFiles from FileModule::getFileHashes. * (T277788) parser: Avoid calling ParserOptions::getOption() too many times. * (T285515, CVE-2021-41798) SECURITY: XSS vulnerability in Special:Search. * (T290379, CVE-2021-41799) SECURITY: ApiQueryBacklinks can cause a full table scan. * (T284419, CVE-2021-41800) SECURITY: fix PoolCounter protection of Special:Contributions. == MediaWiki 1.35.3 == This is a security and maintenance release of the MediaWiki 1.35 branch. === Changes since MediaWiki 1.35.2 === * (T259685) SQLite compatibility with ZeroConf VisualEditor was fixed in 1.35.2. * (T196906, T242751) Fix the test MonologSpiTest::testDefaultChannel. * (T279964) Parser: Trim trailing whitespace as the last step in pre-save transform. * (T278026) rdbms: Add DB_PRIMARY to replace DB_MASTER. * (T252853) Update updateSearchIndex.php to 2006+ standards. * (T276945) Define a batch size in maintenance/manageJobs.php. * (T276945) Implement JobQueueDB::getAllAbandonedJobs. * (T269676) authevents: strval() variables passed to status when logging. * (T280944) $wgIncludejQueryMigrate - This setting allows the jQuery Migrate plugin to be disabled. It has been enabled by default since MediaWiki 1.27. * (T281584) apihelp-query+iwlinks-param-prop: s/interlanguage/interwiki/. * (T281635) Delete maintenance/cleanupAncientTables.php. * (T282133) RedisConnectionPool: Suppress phan issue. * (T281549) WebInstaller: Don't show the announce-l subscribe checkbox temporarily. * (T278266) Fix annoying E_NOTICE about undefined 'alt' index in Skin#makeFooterIcon. * (T264214) UserRightsProxy::addGroup has to be allowed to update the old group as well, which is used for granting interwiki rights. * (T269776, T278266) getFooterIcons should not return empty arrays. * (T274966) Skip AvroFormatterTest::testSchemaNotAvailable on PHP 8.0. * phpunit: fail on warnings. * (T283247) Freenode -> Libera per wikimedia moving from freenode to libera. * (T243124) Make phpunit:unit accept extension*.json to populate the classes. * (T142663) Add extension.json merge strategy "provide_default". * (T283540) HookContainer: Fix normalization of callback for static handler. * (T283464) Fix array order for array_replace_recursive merge strategy. * (T247223) Optimise MessageCache::isMainCacheable() for the single-message case. * (T278579) Don't send headers on ob_end_clean(). * (T280226, CVE-2021-35197) SECURITY: Prevent blocked users from purging pages. == MediaWiki 1.35.2 == This is a security and maintenance release of the MediaWiki 1.35 branch. MediaWiki 1.35.2 supports Composer 2.0. It is recommended to make sure your libraries are up to date on Composer 1.x, before running Composer 2.x. While normally running update.php isn't required for point releases, it is recommended to run it for 1.35.2 so that iwlinks.iwl_prefix is updated to take 32 characters. === Changes since MediaWiki 1.35.1 === * (T270450) The confusingly-named User->isLoggedIn() method has been deprecated in favour of the method it wraps, User->isRegistered(). * Upgrade pimple/pimple from 3.3.0 to 3.3.1 for PHP 8.0 support. * Upgrade seld/jsonlint from 1.7.1 to 1.8.3 for PHP 8.0 support. * Upgrade doctrine/dbal from 2.10.4 to 3.0.0 for PHP 8.0 support. * (T270734) Fix display of Special:Preferences URL in password reset email. * (T252774, T271441) resourceloader: Give SkinModule 'features' option an extensible default. * (T271441) Unknown features shouldn't break style output. * (T264986) Make use of CURLMOPT_MAX_HOST_CONNECTIONS conditional on having curl >= 7.30.0. * DefaultSettings.php: Update $wgPingback documentation. * Fix docs for LanguageConverter::translate. * (T272250) Don't rely on implicit string->int cast in comparison. * (T272327) Exif::isSlong: Cast input to float so PHP 8.0 abs() doesn't whine. * (T272328) UploadBase: Don't call MimeAnalyzer if mTempPath is null. * Remove nonfunctional default sampling for WANObjectCache metrics. * (T258851) Prevent service injection to LoadExtensionSchemaUpdates hook. * (T270852) Hooks: Map dash character to underscore when generating hook names. * (T271551, T270145) Fix fetching ipblock-exempt within BlockManager::getUserBlock. * PHPVersionCheck: The PHP Group only supports PHP >= 7.3.0. * (T248925) Set empty closures in DatabaseTest to fix PHP 8 tests. * (T34217) rdbms: Remove outdated MySQL 4 references and fix doc URLs. * (T248925) Special:Contributions reports negative namespace error on PHP 8. * (T248925) objectcache: Fix non-numeric string check in HashBagOStuff for PHP 8. * (T248925) Fix CacheTime::getCacheExpiry for PHP 8. * (T259685) Allow REST API POST handlers to opt out of mandatory SQLite locking. * (T91820, T259685) MWLBFactory: rename magic HTTP header for opting out of SQLite write lock. * (T272326) Fix DeprecationHelperTest on PHP 8. * Upgrade wikimedia/less.php from 3.0.0 to 3.1.0 for PHP 8.0 support. * (T236639) OutputPage: Make $wgDebugRedirects work again. * (T274648) registration: Allow reusing cached metadata between wikis. * CdnCacheUpdate: Send full URL instead of path to Curl for purge. * Upgrade monolog/monolog from 1.25.3 to 2.2.0 for PHP 8.0 support. * FileBackend: Do not use SOCKET_ENOENT on windows. * (T275441) ApiQueryUserInfo: Allow all uiprops to be requested at once. * (T275261) Escape wikitext in the title in invalid title error messages. * (T275242) Extend iwlinks.iwl_prefix to VARBINARY(32) on MySQL. * (T246594, T270228) PHPVersionCheck: Complain about known-bad versions above minimum. * (T275824) Upgrade wikimedia/composer-merge-plugin from 1.4.1 to 2.0.1 for Composer 2.0 support. * (T269293) Record all used options in metadata. * Allow usage of Composer 2.0 to install MediaWiki's dependencies. * (T259872) skins: Call headElement() after getTemplateData() in SkinMustache. * (T277009, CVE-2021-30158) SECURITY: Allow blocked users to access Special:ResetTokens. * (T272412) Add "Account data" section to user preferences. * (T268310) Add list of thumbnail urls to LocalFilePurgeThumbnails hook. * (T277520) registration: Allow specifying immovable namespaces in extension.json. * (T275619) Maintenance::hasOption and Maintenance::getOption now behave as documented and are not altered by previous calls to these methods. * (T254688) Remove page inner join from subquery in SpecialWhatLinksHere. * (T122124) signup: added help message for security. * (T278014, CVE-2021-30154) SECURITY: Escape mediastatistics-header-* messages on Special:NewFiles. * (T278058, CVE-2021-30157) SECURITY: Escape rcfilters-filter-* messages on ChangesList pages. * (T277414) HTMLFormField: Use non namespaced class name rather than static::class. * (T268673) maintenance: Don't create SearchUpdate in rebuildtextindex.php for page_namespace below 0. * (T246594, T270228) Mark ParserOptionsTests skipped on PHP 7.4.0-7.4.8. * (T268230) Switch to new MediaWiki logo by Serhio Magpie. * (T271735) Expand config-pingback-help, link to privacy policy in config-pingback. * Fix documentation of user-global in $wgRateLimits. * BackupDumper: Add -o as shortcode for --output. * (T235554) Disable DEFER_SET_LENGTH_AND_FLUSH headers to avoid HTTP errors. * (T270713, CVE-2021-30152) SECURITY: Allow user to only apply protection they have right to do so via action=protect. * (T272386, CVE-2021-30159) SECURITY: Non-admin deleted enwiki page in fast double move. * (T270988, CVE-2021-30155) SECURITY: ContentModelChange: Check that user can create pages. * (T279451, CVE-2021-30458) SECURITY: Parsoid comment fostering allows for inserting mostly arbitrary tags. == MediaWiki 1.35.1 == This is a security and maintenance release of the MediaWiki 1.35 branch. While normally running update.php isn't required for point releases, it is recommended to run it for 1.35.1 so that sites.site_language is updated to take 35 characters. Watchlist Expiry is no longer considered experimental, but is off by default. To enable it, set $wgWatchlistExpiry = true; in your LocalSettings.php. === Changes since MediaWiki 1.35.0 === * (T263929) purgeList.php Fix all-namespaces option to match one used in code. * (T248719) ParserCache::get - fix wfDeprecated call. * (T261430) WatchlistExpiryWidget: Move focus to expiry dropdown after hitting Tab. * Preload mediawiki.watchstar.widgets before api request. * (T261030) ApiEditPage: Show existing watchlist expiry if status is not being changed. * (T264502) Fix PHP 8 compat with strcspn() $length parameter exceeding string. * (T248925) Remove final modifier on private function. * (T264683) Remove ipb_anon_only from ipb_address_unique index addition. * (T261415) Add days left messages to changes-lists' clock icons. * Fix order of wfDeprecated parameters in ExternalStoreDB::getSlave. * (T261260) Preload class used in HeaderCallback. * (T260868, T260009) Normalize WatchedItem expiry field. * (T264683) Remove doTable check from (Mysql|Sqlite)Updater::indexHasFields. * (T264534) ApiPageSet: Avoid infinite loop when merging redirects. * (T196906) Empty Monolog loggers are now real blackholes. * (T258649) WatchAction: avoid UPDATE when old and new watch period is indefinite. * Parser: Adjust typehint to show that getTitle can return null. * (T263592) media: Fix case of FlashPixVersion in FormatMetadata::makeFormattedData(). * (T265223) BaseTemplate: Guard against passing zero arg to array_merge(). * (T264965) Fix base path handling for MessagePosterModule registration. * (T252183) Fix Database::getTempTableWrites for multi table DDLs. * (T182546) Fix switch/case indentation per mediawiki coding conventions. * Flip Yoda conditionals. * (T263213) Move SkinTemplate::getFooterLinks() to Skin. * build: Updating mediawiki/mediawiki-codesniffer to 33.0.0. * (T267105) Make ImageBuilder::checkMissingImage public. * Updating guzzlehttp/guzzle (6.5.4 => 6.5.5). * (T266681) Support new style hook registration on install and update. * (T266980) Fix unsetting of copyright icon in FooterIcons. * upload.js: Don't assume that warnings array will include 'code' key. * upload.js: Fix typo in upload API. * (T264333, T190988, T266903) Pass along ignorewarnings param to all individual chunks being uploaded. * (T267558) importTextFiles.php: Replace deprecated WikiRevision:setText(). * (T266418) composer.json: add requirement for composer-plugin-api ^1.1. * (T261431) Add ARIA attributes to watchlink and its notification. * (T258877) Change invalid 'Content-Encoding: none' header. * Fix trailing ; in patch-sites-site_language-35.sql. * (T248852) wfAssembleUrl: Handle empty query field in URL bits. * (T268846) Updating wikimedia/testing-access-wrapper (1.0.0 => 2.0.0). * (T268887) migrateComments: Cast array keys back to string before passing to the DB. * (T266619) Introduce new $wgThumbPath config. * (T269178) MemcachedClient: Cast Resource to integer. * (T263925) Use the old HookContainer to set up the post-reset services. * Change "site cache" to just "cache" in the right-purge message. * [UploadedFileStreamTest] Skip test with chmod. * (T269710) Updating composer/semver (1.5.1 => 1.7.2). * (T269710) Updating mediawiki/mediawiki-codesniffer (33.0.0 => 34.0.0). * (T260631, T260633), BotPassword::save() now returns a Status object for the result rather than a bool. The length of the bot password grants and restriction fields are now validated, and an error will be thrown if it would be truncated by the database. * (T265778) Fix English/*nix specific error messages in FSFileBackend. * (T267543) Split dropping of image.img_user_timestamp. * [FileTest] Do not assume /tmp exists on windows. * Clean up temp files correctly after unit tests. * Skip undo related phpunit tests when diff3 is missing. * (T269964) rdbms: Remove outer parentheses in insert query for Postgres. * (T263911) In MWExceptionHandler::report(), catch all throwables. * (T268894, CVE-2020-35474) SECURITY: Use Html::element in ChangeListSpecialPage for sanity. * (T268917) Use Xml::element in SpecialUserrights for sanity. * (T268938, CVE-2020-35478, CVE-2020-35479) SECURITY: Pass escaped html to LogFormatter::makePageLink for sanity. * (T268938) Fixed mixed escaping in Language::translateBlockExpiry. * (T263911) UserOptionsManager: don't differentiate anons caches. * (T261260) HeaderCallback: pre-cache request ID. * Parsoid updated to v0.12.1. * (T205908, CVE-2020-35477) SECURITY: Unable to change visibility of log entries when MediaWiki:Mainpage uses Special:MyLanguage. * (T120883, CVE-2020-35480) SECURITY: Divergent behavior for contributions and user pages of hidden users and missing users. * (T270145) Fix condition that can lead to using APCOND_BLOCKED in $wgAutopromote to cause an OOM in PHP. == MediaWiki 1.35.0 == === Changes since MediaWiki 1.35.0-rc.3 === * (T261258) Remove checks for ancient ImageMagick versions in BitmapHandler. * (T260232) Don't include null page ids in query list for category dumps. * (T260009) Check existing watchitem when saving action=watch. * (T259055) Correct success messages for action=watch. * mediawiki.page.ready: Simpler tablesorter/makeCollapsible call. * mediawiki.page.ready: Fix skin override config flags, wrong way round. * (T262175, T248512) Remove requirement for ApiWatchlistTrait to be in ApiBase. * (T259053, T260434) Watchlist: Fix updateWatchLink removing css class when action=watch. * (T261901, T261476) mediawiki.notification: Don't close notif when clicking