SECURITY: Don't send suppressed recent changes to RCFeeds
CVE-2025-61643 Why: * Some RecentChange objects being processed by RecentChangeRCFeedNotifier::notifyRCFeeds can be already deleted / suppressed ** This can happen for log entries which are deleted or suppressed when they are created such as described by T280413 * RecentChanges feeds are often not equipped to handle appropriate redaction of deleted or suppressed recent change entries ** Therefore, sending them suppressed recentchanges entries will likely publicly expose the suppressed information * As a short-term fix we can stop sending any defined RCFeed instances RecentChange objects which are suppressed ** We may want to consider making RCFeeds capable of suppressing information before publishing the data, but that would need a more considered approach. What: * Update RecentChangeRCFeedNotifier::notifyRCFeeds to return early if the rc_deleted attribute on the provided RecentChange object isn't zero (0 means not deleted). * Add a PHPUnit test to check for this Bug: T403757 Change-Id: Ic5e553bab8e82e7faee323a46ed6704043c5163b
This commit is contained in:
parent
71ebf1a1cf
commit
f7c717b09a
1 changed files with 6 additions and 0 deletions
|
|
@ -577,6 +577,12 @@ class RecentChange implements Taggable {
|
|||
* @param array|null $feeds Optional feeds to send to, defaults to $wgRCFeeds
|
||||
*/
|
||||
public function notifyRCFeeds( ?array $feeds = null ) {
|
||||
// T403757: Don't send 'suppressed from creation' recent changes entries to the RCFeeds as they do not
|
||||
// have systems to appropriately redact suppressed / deleted material
|
||||
if ( $this->mAttribs['rc_deleted'] != 0 ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$feeds ??=
|
||||
MediaWikiServices::getInstance()->getMainConfig()->get( MainConfigNames::RCFeeds );
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue