Juridische hackers-beveiligingsonderzoeker Dawid Golunski heeft details gepubliceerd over een ongeautoriseerde wachtwoordreset-kwetsbaarheid in de WordPress-kern. Golunski liet zien hoe een aanvaller onder bepaalde omstandigheden de e-mail voor het opnieuw instellen van het wachtwoord kon onderscheppen en toegang kon krijgen tot het account van een gebruiker.

Zijn concept proof maakt gebruik van WordPress met behulp van de variabele SERVER_NAME om de hostnaam van de server te krijgen om een ​​header te maken Van / Return-Path uitgaande wachtwoord reset e-mail.

Grote webservers zoals Apache stellen de SERVER_NAME-variabele standaard in met behulp van de hostnaam die door de client wordt verstrekt (in de HTTP_HOST-header):

Https://httpd.apache.org/docs/2.4/mod/core.html#usecanonicalname

Omdat SERVER_NAME kan worden gewijzigd, kan een aanvaller dit configureren in een willekeurig domein van zijn keuze, bijvoorbeeld:

Attackers-mxserver.com

Dat zou WordPress de $ from_email-configuratie geven

[e-mail beveiligd]

En dus veroorzaakt een uitgaande e-mail met het retour / retourpad op dat schadelijke adres.

De resultaten van deze specifieke aanval zijn afhankelijk van de serveromgeving, de specifieke configuratie van de mailserver en vereisen in sommige gevallen gebruikersinteractie. Het rapport van Golunski bevat een meer specifieke uitsplitsing van mogelijke methoden die kunnen worden gebruikt.

Na het probleem te hebben gemeld aan het WordPress-beveiligingsteam in juli 2016 en ook via de Site web HackerOne, Golunski zag geen vooruitgang en besloot dat te doen publiceren details van de kwetsbaarheid voor het publiek.

Hoewel er nog geen officiële patch is, heeft WordPress-beveiligingsster Aaron Campbell gezegd dat het probleem niet zo ernstig is als het kan zijn.

« Het is een probleem met een lagere prioriteit, maar we zijn ons ervan bewust en het staat in onze wachtrij'Zei Campbell. Hij legde de unieke set voorwaarden uit die nodig zouden zijn om dit een ernstige kwetsbaarheid te laten zijn.

« Om het probleem van invloed te zijn op de beveiliging, moet een server toestaan ​​dat een door de gebruiker geleverde header wordt overschreven $ _SERVER ['SERVER_NAME']'Zei Campbell. "We beschouwen de serverconfiguratie als onvoldoende (zoals 'display_errors' waar van toepassing op een productieserver), wat helaas buiten onze controle ligt."

Campbell heeft zijn persoonlijke Apache- en nginx-servers getest en geen van hen heeft hiervoor een licentie. Naast een verkeerd geconfigureerde server, zei Campbell dat een van de volgende acties ook zou moeten plaatsvinden:

  • Een gebruiker moet antwoorden op een e-mail voor het opnieuw instellen van het wachtwoord
  • Een automatisch antwoord moet de e-mail beantwoorden en het origineel bevatten
  • Een e-mailserver moet zijn aangetast of overbelast en het bericht moet met de inhoud intact

« Als uw server kwetsbaar is en u niet de mogelijkheid heeft om de serverconfiguratie te herstellen, hoeft u nog steeds geen wijzigingen aan te brengen in de WordPress-bestanden om het probleem te verhelpen.'Zei Campbell. "Een beetje PHP zoals dit in een plug-in zal een statisch e-mailadres naar keuze definiëren:"

add_filter ('wp_mail_from', function ($ from_email) {return '[e-mail beveiligd]'; });

Campbell zei dat alle wijzigingen die WordPress in de kernel aanbrengt, waarschijnlijk zullen komen via een ticket dat het probleem momenteel volgt zonder beveiligingsperspectief. Hij zei dat het onwaarschijnlijk is dat er een oplossing komt in de volgende beveiligingsrelease, maar het team werkt er actief aan. Als ze een goede oplossing voor het probleem vinden, zei Campbell dat ze het zullen delen zodra ze mogelijke gevolgen hebben doorgenomen.

En jij ? Wat vind je van deze kwetsbaarheid?