De fout zit in de Oracle System Change Number (SCN), die van belang is voor de veiligheid en synchronisatie van data en databases onderling. Dat meldt Webwereld's Amerikaanse zustersite Infoworld, die de bug twee maanden lang onderzocht.

Limietoverschrijding

De SCN is vergelijkbaar met een interne databaseklok die elke datatransactie een tijdstempel meegeeft, zodat bij een query altijd de juiste data wordt weergegeven.

Wanneer deze SCN-waarde, een 48-bitnummer, een bepaalde limiet overschrijdt wordt de database instabiel en crasht. Om dit te voorkomen bouwde Oracle een veiligheidsdrempel in. De toegestane maximale waarde die de SCN mag hebben neemt daarbij elke seconde met 16.384 toe.

Hackers en back-ups

Ondanks deze ruime drempel kan een hacker met een aantal commando's de SCN kunstmatig verhogen tot boven de maximaal toegestane SCN-waarde. Zo´n limietoverschrijding resulteert in instabiliteit en uitval van databases. Verder zou de SCN via een sql-injectie op een applicatie aan te passen zijn, schrijft de techsite.

Ook zonder kwaadwillende hackers zorgt de bug voor problemen. Bij het maken van een back-up van een live database nemen de SCN-waardes met een abnormale snelheid toe via het commando 'ALTER DATABASE BEGIN BACKUP'. Deze versnelling, met miljoenen tegelijk, blijft voortduren na het maken van de back-up.

Financieel risico

Vooral grote bedrijven lopen hierbij risico. Omdat een SCN-waarde alleen kan toenemen, wordt bij synchronisatie tussen verschillende databases de hoogste SCN-waarde gebruikt. Wanneer databases dagelijks of wekelijks onderling verbinding maken, mondt dit uit in forse toenames van de SCN met een vergrote kans op limietoverschrijding.

"Wanneer de SCN-limiet is bereikt, is er geen makkelijke oplossing van het probleem, anders dan de database uit te zetten en het opnieuw opbouwen van de database", vertelt Shirish Ojha, senior Oracle DBA Logicworks, tegen Infoworld. Volgens de Oracle-expert is de kans dat databases daadwerkelijk crashen niet erg groot, maar zorgt het wel voor een groot potentieel financieel risico.

78 Patches

Oracle verzocht Infoworld het artikel pas te publiceren wanneer ze een patch voor de bug hadden. Afgelopen dinsdag bracht Oracle een patch uit die het probleem moet verhelpen, tezamen met 78 andere patches voor een waaier van Oracle-producten.

Infoworld geeft aan dat de patch lijkt te werken, maar vraagt zich of hetzelfde geldt voor complexe interconnected database-omgevingen. De database-bug is van invloed op Oracle Database versies 10.1.05 tot en met 11.2.0.3.