Nationaal Cyber Security Centrum - Ministerie van Veiligheid en Justitie

Beveiligingsadvies

Kansniveau is hoog Schadeniveau is hoog NCSC-2013-0022 [1.00]

Zeer ernstige kwetsbaarheden verholpen in Ruby on Rails

09-01-2013 - Er zijn nieuwe versies van Ruby on Rails uitgebracht voor twee zeer ernstige kwetsbaarheden in dit framework. Door de ernst van de kwetsbaarheden wordt gebruikers aangeraden zo snel mogelijk maatregelen te treffen om misbruik van deze kwetsbaarheden te voorkomen.

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

   #####################################################
  ##  N C S C ~ B E V E I L I G I N G S A D V I E S  ##
 #####################################################

Titel           : Zeer ernstige kwetsbaarheden verholpen in Ruby on
                  Rails
Advisory ID     : NCSC-2013-0022
Versie          : 1.00
Kans            : high
CVE ID          : CVE-2013-0155, CVE-2013-0156
                  (http://cve.mitre.org/cve/)
Schade          : high
                  Denial of Service (DoS)
                  Omzeilen van authenticatie
                  Omzeilen van beveiligingsmaatregel
                  Remote code execution (Gebruikersrechten)
                  SQL Injection
                  Toegang tot gevoelige gegevens
                  Toegang tot systeem gegevens
Uitgiftedatum   : 20130109
Toepassing      : Ruby on Rails
Versie(s)       : < 3.2.11
                  < 3.1.10
                  < 3.0.19
                  < 2.3.15 
Platform(s)     : Platformonafhankelijk

Samenvatting
   Er zijn nieuwe versies van Ruby on Rails uitgebracht voor twee zeer
   ernstige kwetsbaarheden in dit framework. Door de ernst van de
   kwetsbaarheden wordt gebruikers aangeraden zo snel mogelijk
   maatregelen te treffen om misbruik van deze kwetsbaarheden te
   voorkomen.

Gevolgen
   Misbruik van de kwetsbaarheden kan leiden tot:
   - het uitvoeren van willekeurige (Ruby-)code,
   - het uitvoeren van willekeurige SQL-queries,
   - het manipuleren van SQL-queries,
   - het omzeilen van authenticatiesystemen en 
   - het uitvoeren van Denial of Service aanvallen.

Beschrijving
   Er bevinden zich twee kwetsbaarheden in Ruby in Rails die de
   ontwikkelaars typeren als "extremely critical". Onderstaand zijn de
   beschikbare details over deze kwetsbaarheden beschreven.
   
   - Fout in verwerking JSON-parameters (CVE-2013-0155):
   Door een fout in de afhandeling van JSON-parameters door "Active
   Record" bestaat de mogelijkheid om SQL-queries te beïnvloeden. De
   kwetsbaarheid stelt kwaadwillenden niet in staat om de volledige
   query te wijzigen maar wel om controles op NULL-waarden te
   beïnvloeden en de WHERE-clause van een query te elimineren. Dit
   kan een hoge impact op de applicatielogica hebben, maar dit hangt
   af van de specifieke applicatie die gebruikt maakt van deze
   functionaliteit.
   
   Hoewel deze kwetsbaarheid een variant is van oudere kwetsbaarheden
   (bekend onder CVE-2012-2660 en CVE-2012-2694) betreft het hier een
   nieuwe kwetsbaarheid.
   
   - Fout in verwerking XML-parameters (CVE-2013-0156):
   Ruby on Rails handelt bepaalde typen data niet goed af wanneer deze
   data is opgenomen in een XML-bericht of als YAML-parameter.
   Kwaadwillenden kunnen dit XML-bericht aan een Ruby on Rails
   applicatie aanbieden via de body van een "HTTP POST"-verzoek.
   Misbruik van deze kwetsbaarheid kan leiden tot het injecteren van
   willekeurige code en SQL-queries, het omzeilen van
   authenticatiesystemen en het uitvoeren van Denial of Service
   aanvallen.
   
   Details over deze kwetsbaarheid zijn voor een groot deel al bekend,
   zoals onderstaand blogartikel illustreert:
   http://www.insinuator.net/2013/01/rails-yaml/

Mogelijke oplossingen
   Er zijn nieuwe versies van Ruby on Rails uitgebracht om deze
   kwetsbaarheden te verhelpen:
   - Ruby on Rails 3.2.11
   - Ruby on Rails 3.1.10
   - Ruby on Rails 3.0.19
   
   Noot 1: op dit moment worden alleen de 3.1- en 3.2-versies van Ruby
   on Rails officieel ondersteund. Gebruikers van oudere versies
   dienen daarom te upgraden 3.1 of 3.2.
   
   Noot 2: er is geen oplossing beschikbaar voor de kwetsbaarheid in
   de verwerking van YAML-parameters. RoR-installaties waarbij dit
   wordt ondersteund (standaard uitgeschakeld, behalve in versie
   1.1.0), moeten handmatig ondersteuning hiervoor uitschakelen. Zie
   het kopje "YAML Parameter Parsing" in onderstaand document voor
   details hoe dit te doen:
   https://groups.google.com/forum/?fromgroups=#!topic
      /rubyonrails-security/61bkgvnSGTQ
   
   Noot 3: mocht het niet mogelijk zijn om deze nieuwe versies op
   korte termijn te installeren, dan bestaat er ook de mogelijkheid
   tot het installeren van patches of het doorvoeren van workarounds.
   Zie onderstaande informatie voor meer details hierover.
   
   - Patches:
   Maak gebruik van onderstaande patches om de kwetsbaarheid te
   verhelpen:
   
   +------------+--------------------------------+
   | RoR-versie | Patch                          |
   +------------+--------------------------------+
   | 3.0        | 3-0-null_array_param.patch     |
   |            | 3-0-xml_parsing.patch          |
   +------------+--------------------------------+
   | 3.1        | 3-1-null_array_param.patch     |
   |            | 3-1-xml_parsing.patch          |
   +------------+--------------------------------+
   | 3.2        | 3-2-null_array_param.patch     |
   |            | 3-2-xml_parsing.patch          |
   +------------+--------------------------------+
   | 2.3        | 2-3-xml_parsing.patch          |
   +------------+--------------------------------+
   
   - Workarounds:
   Mocht niet mogelijk zijn om te upgraden naar een nieuwe versie of
   om patches te installeren, dan bestaat de mogelijkheid om
   workarounds door te voeren om de kans op misbruik te verkleinen.
   Het gaat om de volgende workarounds:
   
     1) Het in het geheel uitschakelen van ondersteuning voor het 
        verwerken van XML-parameters.
     2) Het uitschakelen "Symbol"- en "YAML"-ondersteuning bij het
        parseren van XML-parameter (indien workaround 1 niet tot de
        mogelijkheden behoort).
     3) Het "casten" van parameters naar strings alvorens deze aan
        te bieden aan "Active Record".
   
   Zie het kopje "Workarounds" in
   https://groups.google.com/forum/?fromgroups=#!topic
      /rubyonrails-security/61bkgvnSGTQ voor meer informatie over
   workarounds #1 en #2.
   
   Zie het kopje "Workarounds" in
   https://groups.google.com/forum/?fromgroups=#!topic
      /rubyonrails-security/t1WFuuQyavI voor meer informatie over
   workaround #3.

Hyperlinks
   https://github.com/rails/rails/compare/v3.2.10...v3.2.11
   https://github.com/rails/rails/compare/v3.1.9...v3.1.10
   https://github.com/rails/rails/compare/v3.0.18...v3.0.19
   https://groups.google.com/group/rubyonrails-security
      /browse_thread/thread/b75585bae4326af2
   https://groups.google.com/group/rubyonrails-security
      /browse_thread/thread/eb56e482f9d21934
   http://www.insinuator.net/2013/01/rails-yaml/

Vrijwaringsverklaring
   Door gebruik van deze security advisory gaat u akkoord met de
   navolgende voorwaarden. Ondanks dat NCSC de grootst mogelijke
   zorg heeft betracht bij de samenstelling van dit beveiligingsadvies,
   kan het NCSC niet instaan voor de volledigheid, juistheid of
   (voortdurende) actualiteit van dit beveiligingsadvies. De informatie
   in dit beveiligingsadvies is uitsluitend bedoeld als algemene
   informatie voor professionele partijen. Aan de informatie in dit
   beveiligingsadvies kunnen geen rechten worden ontleend. Het NCSC
   en de Staat zijn niet aansprakelijk voor enige schade ten gevolge
   van het gebruik of de onmogelijkheid van het gebruik van dit 
   beveiligingsadvies, waaronder begrepen schade ten gevolge van de 
   onjuistheid of onvolledigheid van de informatie in dit
   beveiligingsadvies. Op dit beveiligingsadvies is Nederlands recht
   van toepassing. Alle geschillen in verband met en/of voortvloeiend
   uit dit beveiligingsadvies zullen worden voorgelegd aan de exclusief
   bevoegde rechter te Den Haag. Deze rechtskeuze geldt tevens voor de
   voorzieningenrechter in kort geding.


-----BEGIN PGP SIGNATURE-----
Version: PGP Desktop 10.1.1 (Build 10)
Charset: utf-8

wlcDBQFQ7To4cjHvVQIdWMARCL16AQCX5vx87sr0euTCWwkpavZ1SK08Tjwdlb5x
6bQdrkzZtgD9FBfjYsvYBZ08Ns6hGbd55ydiWFjid+K2bkEWpj/tr1I=
=pTo1
-----END PGP SIGNATURE-----

Over het NCSC

NCSCstill

CSBN 2015

CSBN 2015