SECURITY: api: Disable maxsize in QueryAllPages in miser mode

CVE-2025-61641

This triggers slow queries and is a DDoS vector

Bug: T298690
Change-Id: Id80f166633a5085378c687551bd54056bc723c09
This commit is contained in:
Amir Sarabadani 2022-08-15 21:40:19 +02:00 committed by Reedy
parent d2d60515fb
commit 199aab790a

View file

@ -152,7 +152,7 @@ class ApiQueryAllPages extends ApiQueryGeneratorBase {
$forceNameTitleIndex = false;
}
if ( isset( $params['maxsize'] ) ) {
if ( !$miserMode && isset( $params['maxsize'] ) ) {
$this->addWhere( 'page_len<=' . (int)$params['maxsize'] );
$forceNameTitleIndex = false;
}
@ -363,6 +363,7 @@ class ApiQueryAllPages extends ApiQueryGeneratorBase {
if ( $this->getConfig()->get( MainConfigNames::MiserMode ) ) {
$ret['filterredir'][ApiBase::PARAM_HELP_MSG_APPEND] = [ 'api-help-param-limited-in-miser-mode' ];
$ret['maxsize'][ApiBase::PARAM_HELP_MSG_APPEND] = [ 'api-help-param-disabled-in-miser-mode' ];
}
return $ret;