Stabelen vi reviderte
WordPress-siden til en liten bedrift kom inn til sikkerhetsrevisjon, og funnene var av den vanlige sorten som stille holder en side ett automatisert skann unna kompromittering. Page-builderen, Elementor, var låst til versjon 3.11.1 og bar fire kritiske CVE-er, deriblant SQL injection og stored cross-site scripting. Contact Form 7 kjørte på 5.8, utsatt for CVE-2023-6449, en vilkårlig filopplasting. Ingenting eksotisk, bare utdaterte plugins, som er den dominerende måten WordPress-sider blir kompromittert på.
Det ubehagelige er hvor normalt dette er. Siden fungerte. Den så fin ut. Eieren hadde ingen grunn til å mistenke noe, fordi utdaterte plugins ikke viser symptomer før de blir utnyttet. Revisjonen fantes for å finne hullet før noen andre gjorde det.
Utdaterte plugins er angrepsflaten
En plugin er trygg så lenge den patches. I det øyeblikket en sårbarhet publiseres som et CVE og du ikke har oppdatert, er utnyttelsen offentlig kunnskap og den installerte versjonen din et navngitt mål for automatiserte skannere. Angrep på WordPress er overveiende blinde og automatiserte, bots feier over nettet på jakt etter kjent-sårbare versjoner av populære plugins, så det å kjøre en gammel Elementor eller Contact Form 7 er ingen abstrakt risiko. Den er annonsert.
På denne siden:
- Elementor 3.11.1 bar fire kritiske CVE-er (deriblant SQL injection og stored cross-site scripting), mens den patchede linjen allerede hadde flyttet seg til 3.17.3. Hver eneste av de fire var aktiv.
- Contact Form 7 5.8 var utsatt for CVE-2023-6449, en dra-og-slipp-filopplastingsfeil som lot en autentisert bruker med redaktørrettigheter laste opp vilkårlige filer, en direkte vei mot fjernkjøring av kode.
Ingen av pluginene var uvanlige. Begge finnes på en enorm andel WordPress-sider. Det er nettopp derfor de kjente sårbarhetene deres er verdt en skanners tid.
Hva revisjonen sjekker
En sikkerhetsrevisjon er metodisk snarere enn smart. Kjernen av den:
- Inventarføre hver installerte plugin og hvert tema, og kontrollere hver versjon mot dens kjente CVE-er og trygge minimumsversjon. Det var dette som avdekket eksponeringen til Elementor og Contact Form 7 her.
- Teste tilpasset kode og temakode for det grunnleggende i WordPress-sikkerhet, nonce- og rettighetssjekker ved handlinger, inndata renset før databasen, utdata escaped før siden, og endepunkter som krever autorisasjon.
- Sjekke eksponering på servernivå, en åpen
xmlrpc.php, PHP-feil vist i produksjon som lekker stier, manglende sikkerhetsheadere. - Gjennomgå oppdaterings- og sikkerhetskopirutinen, fordi en uvedlikeholdt side driver tilbake til denne tilstanden i løpet av måneder.
Versjonskontrollen er den lite glamorøse delen som fanger mest, fordi den vanligste WordPress-sårbarheten ikke er en smart zero-day. Det er en populær plugin tre versjoner bak patchen sin.
Hvor AI-assisterte byggeprosesser gjør det verre
Denne revisjonen handlet om utdaterte tredjeparts-plugins, forsømmelsesmønsteret. AI-assisterte byggeprosesser legger til et andre lag oppå. De installerer plugins raskt, ofte uten å sette opp noen oppdateringsrutine, så versjoner sakker etter patchene sine enda raskere. Og AI-generert tilpasset kode lages ofte uten nonce-, rettighets- og rensesjekkene WordPress forventer, så du arver både et problem med utdaterte plugins og et problem med generert kode på en gang. Derfor er denne typen revisjon en del av vårt bredere arbeid med redning av AI-bygde nettsider, og derfor begynner en frittstående WordPress-sikkerhetsrevisjon med den kjedelige versjonskontrollen før noe annet.
Hvordan det å fikse det ser ut
Rekkefølgen for utbedring følger risiko, ikke bekvemmelighet:
- Patche eller fjerne pluginene med aktive CVE-er umiddelbart, med start på filopplastings- og injection-veiene, fordi de har høyest alvorlighetsgrad.
- Fjerne plugins som er forlatt eller ikke lenger nødvendige, og krympe flaten permanent.
- Lukke eksponering på servernivå (
xmlrpc.php, feilvisning i produksjon, manglende headere). - Sette på plass en reell oppdaterings- og sikkerhetskopirutine, slik at siden ikke driver tilbake til fire aktive CVE-er i løpet av et år.
Ordliste
- CVE - en identifikator fra Common Vulnerabilities and Exposures, en offentlig katalogoppføring for en bestemt kjent sårbarhet.
- SQL injection - et angrep som smugler databasekommandoer gjennom ikke-renset inndata.
- Stored cross-site scripting - ondsinnet skript lagret på siden og servert til andre brukere.
- Nonce- / rettighetssjekk - WordPress-mekanismer som bekrefter at en forespørsel er tilsiktet og at brukeren har lov til å gjøre den.
Konklusjonen
En WordPress-side trenger ikke å være interessant for å bli angrepet. Den må kjøre en kjent-sårbar versjon av en populær plugin, noe som beskriver en stor andel av sidene som ikke er revidert. Den gode nyheten er at den dominerende risikoen også er den kjedeligste å fikse, kontroller hver plugin-versjon mot dens CVE-er, patch eller fjern synderne, og sett på plass en vedlikeholdsrutine slik at hullet ikke åpner seg igjen. Siden i denne revisjonen var ett skann unna trøbbel og visste det ikke. De fleste sider i den situasjonen vet det ikke.



