Het nieuwe lek raakt oudere versies van Ruby on Rails (RoR): de 2.3- en 3.0-reeks. De meest actuele versie is 3.2.11 die op 8 januari is uitgebracht, volgend op de openbaarmaking van een groot SQL-injectiegat in het ontwikkel- en ontwerpplatform voor webapplicaties.

Omzeilen, injecteren, uitvoeren en DoS'en

Dat vorige gat raakte niet alle RoR-applicaties, maar dwong ook de Nederlandse authenticatiedienst DigiD offline te gaan. De Nederlandse overheid nam die noodmaatregel om DigiD te kunnen updaten en zo het gat te dichten.

Het nu gemelde volgende grote RoR-gat (met CVE-identificatiecode 2013-0333) betreft de JSON-code (JavaScript Object Notation) in het applicatieplatform. Daarlangs zijn authenticatiesystemen te omzeilen, is eigen SQL-code te injecteren, valt ook eigen andere code uit te voeren, en kan een DoS-aanval (denial of service) worden uitgevoerd op een Rails-applicatie.

Vertaalslag

De JSON-component verwerkt die code en kan dat omvormen in code voor verschillende verwerkingssystemen (parsing backends). Eén daarvan is YAML, waarbij kwaadwillenden een speciaal ingericht stuk code kunnen aanleveren wat de YAML-backend dan uitvoert.

Terwijl de 2.3- en 3.0-reeks van RoR kwetsbaar zijn, zijn de nieuwere 3.1- en 3.2-reeks veilig mits de daarmee gemaakte applicaties het alternatieve yajl (Yet Another JSON Library) gebruiken, meldt ontdekker Michael Koziarski. Zo'n alternatief heet in RoR een gem (juweel). Verder bevatten versies 3.0.20 en het oudere 2.3.16 al een fix voor dit gat.

Workarounds

RoR-gebruikers dienen hun oude installaties dus te updaten. Voor diegenen die dat niet onmiddellijk kunnen doen, zijn er enkele workarounds. Deze omvatten ten eerste patches (voor de 2.3- en de 3.0-reeks) en ten tweede een handmatige fix om over te schakelen naar JSONGem voor de backend. Voor laatstgenoemde fix moeten gebruikers van het antieke RoR 1.8 nog enkele aanpassingen vooraf doen.

Update: DigiD is niet getroffen door dit gat in Ruby on Rails. "DigiD is veilig, dit betreft oudere versies waar wij niet op draaien", meldt woordvoerder Rick Bron van DigiD-beheerder Logius in antwoord op vragen van Webwereld.