En öppnad flyttkartong med en spänd fälla dold i omslagspapperet, som bild för en sårbarhet som ligger vilande tills sajten flyttas till ett nytt webbhotell
Nyheter

Sårbarhet i All-in-One WP Migration utlöses först vid flytt

Ett säkerhetshål i tillägget All-in-One WP Migration and Backup, installerat på fler än 5 miljoner WordPress-sajter, gör ingenting alls förrän en administratör flyttar sajten till ett nytt webbhotell eller återställer en säkerhetskopia. Sårbarheten är katalogiserad som CVE-2026-19949 och klassad som hög risk med CVSS-poängen 8,8. Den rättades redan den 20 augusti 2026 i version 7.110, men i dag finns ändå ett konkret skäl att stanna upp. Från och med den 15 september får även den kostnadsfria versionen av säkerhetstillägget Wordfence samma brandväggsregel som betalande kunder haft sedan den 16 augusti, enligt Wordfences genomgång av felet.

Skadlig kod planteras i en kommentar, långt innan den gör skada

Sårbarheten är vad säkerhetsforskare kallar en andra ordningens SQL-injektion (second-order SQL injection). Den skadliga texten utlöser inget direkt när den skickas in, utan lagras först på ett ställe i databasen och blir farlig långt senare när ett helt annat program läser och bearbetar den.

Enligt Wordfence går angreppet via trackback, en äldre funktion i WordPress-kärnan för att pinga andra bloggar, som inte kräver inloggning. Skickar man två trackbacks till ett publikt inlägg som tar emot sådana pingar går det att smuggla in text i kommentarsfältet, där bloggnamnet avslutas med ett omvänt snedstreck (backslash) och webbadressen bär den skadliga koden. WordPress-kärnan lagrar detta rakt av i databasens kommentarstabell, som kommentarsförfattare och författarwebbadress, utan att kontrollera det omvända snedstrecket eller adressen närmare.

Sedan händer ingenting. Kommentaren ligger orörd i databasen ända tills en administratör gör precis det som är hela poängen med tillägget, nämligen exporterar sajten och importerar den igen, till exempel vid en flytt till nytt webbhotell. Säkerhetskopiering och återställning är själva syftet med tillägget, en rutinåtgärd enligt Wordfence. Den injicerade koden körs ändå först när åtgärden faktiskt genomförs.

Vi har jämfört källkoden, rättningen är en enda rad

Vid import skriver All-in-One WP Migration om den gamla webbadressen till den nya, sats för sats, genom hela databasen. Det sköts av funktionen replace_table_values() i klassen Ai1wm_Database, som använder ett reguljärt uttryck för att avgöra var i varje SQL-sats en citerad textsträng börjar och slutar.

Vi har hämtat både version 7.109 och 7.110 ur WordPress officiella versionsarkiv för tillägget och lagt filen lib/vendor/servmask/database/class-ai1wm-database.php sida vid sida. Hela skillnaden mellan den sårbara och den rättade versionen är en enda rad kod i det reguljära uttrycket.

I 7.109 tittar uttrycket bara ett tecken bakåt för att avgöra om ett citattecken hör till texten eller markerar strängens slut. Två omvända snedstreck i rad, som den planterade kommentaren innehåller, tolkas då fel, eftersom uttrycket tror att det första omvända snedstrecket skyddar citattecknet och läser vidare in i nästa sträng. Det är därför det planterade omvända snedstrecket i bloggnamnet spelar roll. I 7.110 räknar det nya uttrycket omvända snedstreck korrekt och tappar aldrig bort var strängen slutar.

Resultatet av det ursprungliga felet är att en angripare kan få ut ai1wm_secret_key, hemligheten som skyddar tilläggets egen importfunktion mot obehöriga. Med nyckeln i handen går det att skicka in ett eget arkiv med körbar kod och i praktiken ta över sajten.

En flyttnyhet, inte bara en tilläggsnyhet

Vi skriver ofta om att flytta WordPress till nytt webbhotell. Migreringstillägg av det här slaget är precis den typen av verktyg vi själva brukar peka på i vår guide till att flytta WordPress utan att det går sönder. Sårbarheten ligger och väntar tyst tills exakt det steg som en flytt eller en återställning alltid innehåller, att skriva om den gamla adressen till den nya.

Det gör också att den vanliga rekommendationen att sätta upp en brandvägg (web application firewall) inte täcker hela bilden. Nyttolasten kommer inte in via ett anrop som går att stoppa i farans stund, den ligger redan lagrad som en helt vanlig kommentarsrad i den egna databasen. En brandväggsregel kan i bästa fall fånga planteringsförsöket via trackbacken, men skyddet mot att den någonsin utlöses ligger i vilken version av tillägget som används vid importen.

Det är versionen du importerar med som avgör

Rättningen sitter i importsteget, i just den funktion som skriver om webbadresser. Har du ett gammalt exportarkiv (en .wpress-fil) som skapades före den 20 augusti kan det mycket väl bära med sig den planterade textraden i kommentarstabellen. Det är ändå ingen anledning att slänga arkivet.

Importerar du det gamla arkivet med tillägget i version 7.110 eller senare hanteras textsträngen korrekt, och den skadliga koden kommer aldrig till körning. Faran uppstår bara om importen görs med ett tillägg som fortfarande står kvar på 7.109 eller tidigare. Uppdatera därför tillägget till minst 7.110 innan nästa import, oavsett hur gammalt exportarkivet är.

Den som snabbläser ändringsloggar för att avgöra vad som är akut hittar ingen ledtråd här. Hela texten för 7.110 lyder "Find and replace on values ending in a backslash. Special thanks to Jack Taylor for responsibly disclosing this issue", utan ett ord om säkerhet eller SQL-injektion. Tacket till forskaren står där, men den som prioriterar efter hur allvarligt loggen låter lägger den här sist i kön.

Tidslinjen

Från rapport till rättning tog det sex dagar, men Wordfence publicerade sin fullständiga genomgång först två veckor senare.

DatumHändelse
14 augusti 2026Forskaren Jack Taylor rapporterar sårbarheten via Wordfences bug bounty-program, belöning 5 761 USD.
15 augusti 2026Wordfence lämnar detaljerna till utvecklaren ServMask.
17 augusti 2026ServMask bekräftar felet.
20 augusti 2026Version 7.110 släpps med rättningen.
1 september 2026Wordfence publicerar sin genomgång, skriven av István Márton.
15 september 2026Gratisversionen av Wordfence får samma brandväggsregel som betalande kunder haft sedan 16 augusti.

ServMask agerade snabbt genom hela kedjan, tre dagar från rapport till bekräftelse och ytterligare tre dagar till en färdig rättning. Wordfences fördröjning på 30 dagar för gratisversionen är inte ett tecken på slarv, utan en öppet kommunicerad del av affärsmodellen där betalande kunder får skyddet tidigare.

Vår mätning, långt ifrån alla har uppdaterat

Webguide.se hämtade WordPress egen nedladdningsstatistik för tillägget den 15 september 2026. Räknat från rättningsdagen 20 augusti till och med 14 september summerar nedladdningarna till 2 355 087, med två tydliga toppar. Den första kommer den 20 och 21 augusti, med 584 631 respektive 682 598 nedladdningar när den automatiska uppdateringen gick ut till servrarna. Den andra, mindre toppen ligger den 3 september på 199 340 nedladdningar, dagen efter att internationella medier började skriva om saken. Därefter har nivån legat mellan 15 000 och 35 000 nedladdningar per dygn.

Siffran måste läsas med en tydlig reservation. Nedladdningar är inte samma sak som installationer. En och samma sajt kan ha hämtat uppdateringen flera gånger, och statistiken skiljer inte mellan en ny installation och en uppdatering av en befintlig. Ställer man 2,3 miljoner nedladdningar mot 5 eller fler miljoner aktiva installationer blir siffran ett tak snarare än ett facit. I bästa fall har knappt hälften av installationerna hämtat en rättad version, i praktiken sannolikt färre.

Så kontrollerar du din egen sajt

Det handlar om att kolla en versionssiffra och tänka igenom rutinerna kring flytt och säkerhetskopiering.

  • Öppna Tillägg i wp-admin och se vilken version av All-in-One WP Migration and Backup som är installerad. Allt till och med 7.109 är berört, aktuell version är 7.111.
  • Uppdatera till minst 7.110 innan du gör nästa export eller import, inte efteråt.
  • Ligger tillägget bara kvar sedan en flytt för länge sedan utan att användas mellan gångerna, finns ingen anledning att ha det installerat i onödan. Se vår genomgång av hur du rensar tillägg du inte längre behöver.
  • Har du gamla .wpress-arkiv sparade, importera dem bara med en rättad version av tillägget.
  • Trackbacks och pingbacks är själva vägen in. Att stänga av dem i WordPress inställningar tar bort en av vägarna, men ersätter inte uppdateringen. Har en trackback redan planterats i databasen ligger den kvar tills den skrivs över eller städas bort.

En rutin för säkerhetskopiering som bara sparar filen missar den här typen av fel. Hela kedjan kring export och import behöver samma uppmärksamhet, inte bara filen som exporteras. Vår guide till WordPress-backup som faktiskt fungerar går igenom vad en rutin bör innehålla utöver att klicka på exportera.