Legal Hackers säkerhetsforskare Dawid Golunski har publicerat information om en obehörig sårbarhet för återställning av lösenord i WordPress-kärnan. Golunski demonstrerade hur en angripare under vissa omständigheter kunde fånga upp e-postmeddelandet för återställning av lösenord och få tillgång till en användares konto.

Proof of concept utnyttjar Wordpress använder variabeln SERVER_NAME för att få serverns värdnamn för att skapa en rubrik Från / Return-Path utgående lösenord återställ e-post.

Stora webbservrar som Apache ställer in SERVER_NAME-variabeln som standard med värdnamnet från klienten (i HTTP_HOST-rubriken):

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

Eftersom SERVER_NAME kan modifieras kan en angripare konfigurera den i en godtycklig domän efter eget val, till exempel:

Attackers-mxserver.com

Vilket skulle ge WordPress $ from_email-konfigurationen till

[e-postskyddad]

Och så orsakar ett utgående e-postmeddelande med Retur / Retur-sökvägen på den skadliga adressen.

Resultaten av denna speciella attack beror på servermiljön, den specifika konfigurationen för e-postservern och i vissa fall kräver användarinteraktion. Golunskis rapport innehåller en mer specifik uppdelning av möjliga metoder som kan användas.

Efter att ha rapporterat problemet till WordPress-säkerhetsteamet i juli 2016 och även via webbplats HackerOne, Golunski såg inga framsteg och bestämde sig för att publicera detaljer om sårbarheten för allmänheten.

Även om det inte finns någon officiell patch ännu har WordPress-säkerhetsstjärnan Aaron Campbell sagt att problemet inte är så allvarligt som det kan vara.

« Det är en lägre prioritetsfråga, men vi är medvetna om det och det ligger i vår kö”Sa Campbell. Han förklarade den unika uppsättningen villkor som krävs för att detta ska vara en allvarlig sårbarhet.

« För att problemet ska påverka säkerheten måste en server tillåta att ett användarhuvud har åsidosatts $ _SERVER ['SERVER_NAME']”Sa Campbell. "Vi anser att serverkonfigurationen är otillräcklig (t.ex." display_errors "där det är tillämpligt på en produktionsserver), vilket tyvärr ligger utanför vår kontroll."

Campbell har testat sina personliga Apache- och nginx-servrar och ingen av dem har licensierats för detta. Förutom att ha en felkonfigurerad server sa Campbell att en av följande åtgärder också måste ske:

  • En användare måste svara på ett e-postadress för återställning av lösenord
  • Ett automatiskt svar måste svara på e-postmeddelandet och inkludera originalet
  • En e-postserver måste äventyras eller överbelastas och meddelandet returneras till avsändaren med innehåll intakt

« Om din server är sårbar och du inte har möjlighet att fixa serverkonfigurationen, behöver du fortfarande inte göra några ändringar i WordPress-filerna för att lindra problemet.”Sa Campbell. "Lite PHP som detta i ett plugin definierar en statisk e-postadress efter eget val:"

add_filter ('wp_mail_from', funktion ($ from_email) {return '[e-postskyddad]'; });

Campbell sa att alla kärnändringar som WordPress gör kommer sannolikt att ske via en biljett som för närvarande spårar problemet utan säkerhetsperspektiv. Han sa att det är osannolikt att en fix kommer att komma i nästa säkerhetsrelease, men teamet arbetar aktivt med det. Om de hittar en bra mildring för problemet sa Campbell att de kommer att dela det när de har räknat ut alla potentiella konsekvenser.

Och du ? Vad tycker du om denna sårbarhet?