Bug hunting

Beveiligingslek in WordPress plugin Fluent Forms

De veelgebruikte ‘Fluent Forms Contact Form Builder’ plug-in voor WordPress, met meer dan 300.000 installaties, bleek een SQL-injectie kwetsbaarheid te bevatten waardoor hackers toegang tot databases konden verkrijgen.

Hoewel de kwetsbaarheid mogelijk al in juni gerepareerd is, werd dit pas op 3 november 2023 bekendgemaakt.

Fluent Forms ontwikkelaar

De Fluent Forms Contactformulierbouwer staat bekend als een van de meest geliefde contactformulierplugins voor WordPress en is meer dan 300.000 keer geïnstalleerd.

Dankzij de intuïtieve slepen-en-neerzetten-interface kunnen gebruikers moeiteloos aangepaste contactformulieren samenstellen, zonder programmeerkennis.

De plugin biedt de flexibiliteit om uiteenlopende typen invoerformulieren te creëren, wat het een voorkeurskeuze maakt.

Gebruikers kunnen met de plugin niet alleen inschrijf- en betaalformulieren maken, maar ook formulieren voor quizzen.

Daarnaast biedt het integratiemogelijkheden met externe applicaties zoals MailChimp, Zapier en Slack.

Een ander belangrijk aspect is de ingebouwde analysemogelijkheid.

Deze ongekende veelzijdigheid zet Fluent Forms in de spotlight: gebruikers kunnen een breed scala aan taken uitvoeren met slechts één enkele plugin.

Neutralisatie van invoer

Elke plugin die bezoekers toestaat om gegevens rechtstreeks in de database in te voeren, met name contactformulieren, moet deze invoer verwerken zodat het geen mogelijkheden biedt voor hackers om scripts of SQL-commando’s in te voegen die kwaadwillenden in staat stellen onvoorziene wijzigingen door te voeren.

Deze specifieke kwetsbaarheid stelde de Fluent Forms-plugin bloot aan een risico op SQL-injectie, wat bijzonder riskant is als een hacker erin slaagt een aanval uit te voeren.

Kwetsbaarheid voor SQL-injectie

SQL, de afkorting voor Structured Query Language, is een programmeertaal die wordt gebruikt om met databases te communiceren.

Een SQL-query is een instructie om gegevens te raadplegen, wijzigen of organiseren die zijn opgeslagen in een database.

Een database bevat alle essentiële componenten van een WordPress-website, zoals wachtwoorden, inhoud, thema’s en plugins.

De database vormt het hart en het brein van elke WordPress-website.

Daarom is het vermogen om op een willekeurige manier “queries” uit te voeren op een database een buitengewoon niveau van toegang dat absoluut niet beschikbaar mag zijn voor onbevoegde gebruikers of software buiten de website.

Een SQL-injectieaanval vindt plaats wanneer een kwaadwillende aanvaller een anders legitieme invoerinterface kan gebruiken om een SQL-commando in te voeren dat kan interageren met de database.

De non-profitorganisatie Open Web Application Security Project (OWASP) beschrijft de verwoestende gevolgen van een kwetsbaarheid voor SQL-injectie:

 

  • SQL injection attacks allow attackers to spoof identity, tamper with existing data, cause repudiation issues such as voiding transactions or changing balances, allow the complete disclosure of all data on the system, destroy the data or make it otherwise unavailable, and become administrators of the database server.
  • SQL Injection is very common with PHP and ASP applications due to the prevalence of older functional interfaces. Due to the nature of programmatic interfaces available, J2EE and ASP.NET applications are less likely to have easily exploited SQL injections.
  • The severity of SQL Injection attacks is limited by the attacker’s skill and imagination, and to a lesser extent, defense in depth countermeasures, such as low privilege connections to the database server and so on. In general, consider SQL Injection a high impact severity.

 

Open Web Application Security Project

Onjuiste neutralisatie

De Nationale Vulnerability Database (NVD) van de Verenigde Staten heeft een waarschuwing uitgegeven over de kwetsbaarheid, waarbij de oorzaak van de kwetsbaarheid wordt toegeschreven aan “onjuiste neutralisatie.”

Neutralisatie verwijst naar een proces waarbij wordt gezorgd dat alles wat in een applicatie wordt ingevoerd (zoals een contactformulier) beperkt blijft tot wat verwacht wordt en niets anders dan dat toelaat.

Een correcte neutralisatie van een contactformulier betekent dat het geen SQL-commando zal accepteren.

Update je plug-in!

Het wordt gebruikers van het contactformulier aangeraden om hun plug-in zo snel mogelijk bij te werken.

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *