Sortie de la version 2.0.0-p247 de Ruby

La version 2.0.0-p247 de Ruby vient d’être publiée.

Cette version inclut un correctif de sécurité sur la bibliothèque OpenSSL embarquée :

Elle contient également des correctifs de bugs.

Téléchargement

Vous pouvez télécharger cette version depuis :

Modifications

Les principaux correctifs sont listés ci-dessous.

Voyez les tickets et le ChangeLog pour plus de détails.

Arguments mots-clés

  • #8040 modification de la priorité entre les arguments mots-clés et les arguments obligatoires.
  • #8416 super ne transmet pas les ** nommés ou anonymes.
  • #8463 bug sur le Proc auto-splat avec les arguments nommés.

VM/Language Processing

  • #8424 corrige une boucle infinie sur un débordement de pile avec TH_PUSH_TAG()
  • #8436 __dir__ ne fonctionne pas dans eval avec binding
  • #8489 Le tracepoint API: B_RETURN_EVENT n’est pas déclenché quand “next” est utilisé
  • #8341 block_given? (et le bloc actuel) persiste entre des appels à un proc créé depuis une méthode (en utilisant method().to_proc()).
  • #8531 block_given? (et le bloc actuel) persiste entre des appels à un proc créé par Symbol#to_proc.

RubyGems

La version embarquée de RubyGems est maintenant la 2.0.3.

Encodage

  • #8516 IO#readchar retourne de mauvais codepoints sur des conversions d’encodage

Windows

  • #8431 File.read() plante sur Win32SP3 32bit

Bibliothèques

  • #8467 Rembobiner et itérer à travers IO gzippés provoquent des segmentation faults
  • #8415 Net::IMAP#capability_response lève une exception “Net::IMAP::ResponseParseError: unexpected token CRLF” pour une CAPABILITY courante

Commentaire

De nombreux committers, testeurs et utilisateurs qui ont remonté des bugs m’ont aidé pour sortie cette version. Merci pour leurs contributions.

Sortie de la version 1.9.3-p448 de Ruby

Le version 1.9.3-p448 de Ruby vient d’être publiée.

Cette version inclut un correctif de sécurité sur la bibliothèque OpenSSL embarquée :

Elle contient également des correctifs de bugs. Voyez les tickets et le ChangeLog pour plus de détails.

Téléchargement

Commentaire

Merci aux nombreuses personnes (committers, contributeurs et rapporteurs de bugs) pour l’aide apportée sur cette version.

Sortie de la version 1.8.7-p374 de Ruby

La version 1.8.7-p374 de Ruby vient d’être publiée.

Cette version contient des correctifs de sécurité pour les attaques suivantes :

Téléchargement

Commentaire

Merci aux nombreuses personnes (committers, contributeurs et rapporteurs de bugs) pour l’aide apportée sur cette version.

Vulnérabilité dans le client SSL permettant de contourner la vérification du nom de domaine (CVE-2013-4073)

Une vulnérabilité a été trouvée dans le client SSL de Ruby. Elle permet à des attaquants d’opérer un man-in-the-middle pour se faire passer pour des serveurs SSL, via des certificats valides émis par une autorité de certification de confiance.

L’identifiant CVE-2013-4073 a été assigné à cette vulnérabilité.

Résumé

Le client SSL de Ruby implémente une vérification de l’identité des noms de domaine, mais il ne gère pas correctement les noms de domaine qui contiennent des caractères null dans le certificat.

Détails

OpenSSL::SSL.verify_certificate_identity implémente la vérification de l’identité des serveurs telle que décrite dans la RFC2818, mais elle ne gère pas correctement les noms de domaine dans l’extension X509 subjectAltName qui contiennent des caractères null.

Le code existant dans lib/openssl/ssl.rb utilise OpenSSL::X509::Extension#value pour extraire l’identité depuis le subjectAltName. Extension#value dépend de la fonction OpenSSL X509V3_EXT_print() et pour dNSName de subjectAltName, elle utilise sprintf() qui est connue pour n’être pas sûre avec les caractères null. Ainsi, Extension#value retourne ‘www.ruby-lang.org’ si le subjectAltName est ‘www.ruby-lang.org.example.com’ et OpenSSL::SSL.verify_certificate_identity va alors identifier incorrectement le certificat pour ‘www.ruby-lang.org’.

Quand une autorité de confiance pour le client SSL autorise à émettre un certificat serveur avec des caractères null dans le subjectAltName, les attaquants à distance peuvent de fait obtenir le certificat pour ‘www.ruby-lang.org.example.com’ depuis l’autorité de certification, pour se faire passer pour ‘www.ruby-lang.org’ et ainsi effectuer une attaque de type man-in-the-middle entre le client SSL de Ruby et les serveurs SSL.

Versions concernées

  • Toutes les versions de Ruby 1.8 antérieures à Ruby 1.8.7 patchlevel 374
  • Toutes les versions de Ruby 1.9 antérieures à Ruby 1.9.3 patchlevel 448
  • Toutes les versions de Ruby 2.0 antérieures à Ruby 2.0.0 patchlevel 247
  • Les révisions antérieures à 41671 du trunk

Solution

Tous les utilisateurs sont encouragés à mettre à jour Ruby vers les versions 2.0.0-p247, 1.9.3-p448 ou 1.8.7-p374.

Remerciement

Cette vulnérabilité a été trouvée par William (B.J.) Snow Orvis et la coopération avec security@ruby-lang.org a été effectuée par David Thiel d’iSEC Partners.

Histoire

  • Publié à l’origine à 2013-06-27 11:00:00 (UTC)

Démarrer avec Elixir sous Debian/Ubuntu

ElixirKaigi

Cleanup Rails’ views with decorators

Ruby and module_function

Un tout nouveau site web pour Ruby !

Nous sommes très heureux de vous annoncer la mise en production du nouveau site ruby-lang.org !

La vitrine officielle de Ruby a quelque peu été délaissée ces dernières années : seules une poignée de traductions étaient véritablement maintenues, et une bonne partie du contenu n’était plus à jour par rapport à l’écosystème Ruby actuel. Il fallait donc remédier à cette situation.

C’est exactement ce qu’un petit groupe de volontaire a décidé de faire ces derniers mois, en construisant une nouvelle plateforme basée sur un processus de contribution ouvert, en lieu et place de l’ancien CMS privé.

À partir d’aujourd’hui, toute personne souhaitant contribuer a la possibilité de le faire ! Tout se passe via git ; le stack utilisé est un Jekyll internationalisé. Rendez-vous sur https://github.com/ruby/www.ruby-lang.org/wiki pour en savoir plus… et faire vos premières contributions.

Hal Brodigan (postmodern),
Jean-Denis Vauguet (chikamichi),
Marcus Stollsteimer (stomar),
James Edward Gray II (JEG2),
Hiroshi Shibata (hsbt).