Den uavhengige sikkerhetsforskeren Dawid Golunski offentliggjorde i går detaljer om en sårbarhet i MySQL som skal gjøre det mulig for angripere å fjernkjøre vilkårlig kode med root-privilegier på det angrepne systemet, i alle fall på Linux-basert servere. Dette skal kunne gjøres ved hjelp av SQL-injisering, noe som gjør webapplikasjoner spesielt utsatt.
Ledes fra Trondheim: MySQL blir stadig mer norsk
Trolig kun selve MySQL
Oracle og flere leverandører av databasesystemer som har MySQL som opphav, skal ha blitt varslet om sårbarheten den 29. juli. Men mens sårbarheten skal ha blitt fjernet fra i alle fall MariaDB og PerconaDB innen den 30. august, er dette ikke tilfellet for Oracles MySQL.
Nettopp fordi disse sikkerhetsfiksene har blitt utgitt, og dermed kan brukes av ondsinnede til å finne sårbarheten, mener Golunski at det er riktig at også MySQL-brukerne nå får vite om sårbarheten, slik at de kan gjøre enkelte begrensede mottiltak. For i utgangspunktet planlegger ikke Oracle å fjerne sårbarheten før i midten av oktober.
Fjernmodifisering av konfigurasjonsfil
Sårbarheten skyldes at det ofte er mulig for MySQL å gjøre endringer i databasesystemets egen konfigurasjonsfil, my.cfg. Årsaken er at filen ofte eies av mysql-brukeren, som MySQL-serveren vanligvis kjøres som.
I konfigurasjonsfilen kan en administrator, eller angriper, legge til instrukser om at gitte biblioteker skal forhåndslastes før selve databaseserveren startes. Denne forhåndslastingen utføres i mange tilfeller av et «wrapper script» kalt mysqld_safe, som i motsetning til selve mysqld-prosessen, kjøres som root.
På mange nettsteder er et mulig for brukere å laste opp filer. Dersom angriperen laster opp et ondsinnet bibliotek og greier å finne ut hvor dette er lagret på serveren, kan det lastes av mysqld_safe og kjøre vilkårlig kode med root-privilegier neste gang MySQL-serveren blir startet på nytt.
MySQL-skaperen: – MySQL skulle ikke selges til Oracle
Også tidligere
Før MySQL 3.23.55, som ble utgitt i 2003, var det enkelt å lage konfigurasjonsfiler til MySQL ved hjelp av MySQL og SQL. Men siden da har dette vært ansett som umulig på grunn av tiltak som har blitt gjort i databasesystemet.
I sin beskrivelse viser Golunski at det er mulig å omgå denne beskyttelsen. Hvordan dette gjøres, har han beskrevet i et begrenset konseptbevis, hvor enkelte deler har blitt utelatt.
Som et midlertidig tiltak bør administratorer av MySQL sørge for at ingen MySQL-konfigurasjonsfiler eies av eller er skrivbare for mysql-brukeren. I en del tilfeller er dette allerede standardinnstillingen. Golunski foreslår også at det opprettes root-eide dummy-konfigurasjonsfiler med navnet my.cfg, som ikke er i bruk.
– Dette er på ingen måte en fullstendig løsning, og bruker bør ta i bruk offisielle leverandørpatcher så snart de blir tilgjengelige, skriver Golunski.
Oppdatering
Mye tyder på at de opprinnelige påstandene om at en sikkerhetsfiks ikke er tilgjengelig for MySQL, ikke stemmer. Les mer i denne nye saken: