Background
MediaWiki has a modular authentication component (AuthManager), for which the default implementation stores account credentials in the local database of that site. The password component is also configurable and flexible, allowing for smooth migration to ever better encryption algos as the industry standard evolves over time (e.g. T216682: Switch WMF production to Argon2 password hashes).
Today, the CentralAuth extension registers an AuthManager implementation that stores account credentials in a separate and centralised database instead.
This database (MySQL/MariaDB) is responsible for storing and retreiving password hashes. Validation of password hashes happens inside the MediaWiki password component, which means MediaWiki requires read access to this database.
Problem statement
If malicious code were to execute on the MediaWiki web servers, any of its databases could be read and leaked, including the separated centralauth database.
To make Wikimedia Foundation sites more resilient to compromise, we CentralAuth should validate submitted login credentials against the database, without the ability to batch-read the hashes themselves from the underlying database.






