[#390749] Why are there so many similar/identical methods in core classes — Kassym Dorsel <k.dorsel@...>

Let's look at the Array class and start with method aliases.

14 messages 2011/12/02

[#390755] Inverse Operation of Module#include — Su Zhang <su.comp.lang.ruby@...>

Hi list,

21 messages 2011/12/02
[#390759] Re: Inverse Operation of Module#include — Ryan Davis <ryand-ruby@...> 2011/12/02

[#390764] Re: Inverse Operation of Module#include — Isaac Sanders <isaacbfsanders@...> 2011/12/02

I would suggest an Adapter pattern use here. IF there is something that has

[#390876] black magical hash element vivification — Chad Perrin <code@...>

Ruby (1.9.3p0 to be precise, installed with RVM) is not behaving as I

12 messages 2011/12/05

[#390918] WEB SURVEY about Ruby Community — Intransition <transfire@...>

Did any one else get this survey request?

14 messages 2011/12/07

[#390976] Confusing results from string multiplication — Rob Marshall <robmarshall@...>

Hi,

19 messages 2011/12/08

[#391019] How can I do h["foo"] += "bar" if h["foo"] does not exist? — "Andrew S." <andrewinfosec@...>

Hi there,

13 messages 2011/12/09

[#391027] reading from file without end-of-lines — Janko Muzykant <umrzykus@...>

hi,

20 messages 2011/12/09
[#391028] Re: reading from file without end-of-lines — Gavin Sinclair <gsinclair@...> 2011/12/09

> i'm trying to read a few text values from single file:

[#391031] Re: reading from file without end-of-lines — Robert Klemme <shortcutter@...> 2011/12/09

On Fri, Dec 9, 2011 at 9:58 AM, Gavin Sinclair <gsinclair@gmail.com> wrote:

[#391042] Re: reading from file without end-of-lines — Gavin Sinclair <gsinclair@...> 2011/12/09

On Fri, Dec 9, 2011 at 8:18 PM, Robert Klemme

[#391135] I need advice on what to do next. — Nathan Kossaeth <system_freak_2004@...>

I am new to programming. I read the ebook "Learn to Program" by Chris

23 messages 2011/12/12

[#391216] perf optimization using profile results — Chuck Remes <cremes.devlist@...>

I need some help with optimizing a set of libraries that I use. They are ffi-rzmq, zmqmachine and rzmq_brokers (all up on github).

13 messages 2011/12/13
[#391218] Re: perf optimization using profile results — Chuck Remes <cremes.devlist@...> 2011/12/13

On Dec 13, 2011, at 9:57 AM, Chuck Remes wrote:

[#391234] Re: perf optimization using profile results — Charles Oliver Nutter <headius@...> 2011/12/14

A couple quick observations.

[#391238] Re: perf optimization using profile results — Chuck Remes <cremes.devlist@...> 2011/12/14

On Dec 13, 2011, at 7:03 PM, Charles Oliver Nutter wrote:

[#391324] ruby 1.9 threading performance goes non-linear — Joel VanderWerf <joelvanderwerf@...>

12 messages 2011/12/16
[#391325] Re: ruby 1.9 threading performance goes non-linear — Eric Wong <normalperson@...> 2011/12/16

Joel VanderWerf <joelvanderwerf@gmail.com> wrote:

[#391420] Accessing class instance variables from an instance? — "Shareef J." <shareef@...>

Hi there,

26 messages 2011/12/20
[#391454] Re: Accessing class instance variables from an instance? — Khat Harr <myphatproxy@...> 2011/12/21

Actually, now that I'm thinking about it the existing behavior sort of

[#391456] Re: Accessing class instance variables from an instance? — Josh Cheek <josh.cheek@...> 2011/12/21

On Tue, Dec 20, 2011 at 9:42 PM, Khat Harr <myphatproxy@hotmail.com> wrote:

[#391545] Kernel#exit raises an exception? — Khat Harr <myphatproxy@...>

While I was working on embedding an interpreter I wrote a function to

13 messages 2011/12/24

[#391618] rvmsh: An easy installer for RVM — Bryan Dunsmore <dunsmoreb@...>

I have recently begun work on a project called [rvmsh]

12 messages 2011/12/29

[#391783] Mailspam — Gunther Diemant <g.diemant@...>

Is there a way to stop this mailspam of Luca (Mail)?

12 messages 2011/12/29

[#391790] What’s the standard way of implementing #hash for value objects in Ruby? — Nikolai Weibull <now@...>

Hi!

23 messages 2011/12/29
[#391792] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Gunther Diemant <g.diemant@...> 2011/12/29

I think you can't access instance variables from a class method, so

[#391793] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Nikolai Weibull <now@...> 2011/12/29

On Thu, Dec 29, 2011 at 15:52, Gunther Diemant <g.diemant@gmx.net> wrote:

[#391811] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Robert Klemme <shortcutter@...> 2011/12/29

On Thu, Dec 29, 2011 at 4:06 PM, Nikolai Weibull <now@bitwi.se> wrote:

[#391812] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Nikolai Weibull <now@...> 2011/12/29

On Fri, Dec 30, 2011 at 00:26, Robert Klemme <shortcutter@googlemail.com> w=

[#391816] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Josh Cheek <josh.cheek@...> 2011/12/30

On Thu, Dec 29, 2011 at 5:47 PM, Nikolai Weibull <now@bitwi.se> wrote:

[#391833] Re: What’s the standard way of implementing #hash for value objects in Ruby? — Robert Klemme <shortcutter@...> 2011/12/30

On Fri, Dec 30, 2011 at 12:47 AM, Nikolai Weibull <now@bitwi.se> wrote:

I: [ANN] JRuby 1.6.5.1 Released

From: "Luca \(Email\)" <luca.pagano@...>
Date: 2011-12-29 06:41:31 UTC
List: ruby-talk #391623

-----Messaggio originale-----
Da: Thomas E Enebo [mailto:tom.enebo@gmail.com]=20
Inviato: mercoled=EC 28 dicembre 2011 00:27
A: ruby-talk ML; user@jruby.codehaus.org; dev@jruby.codehaus.org
Oggetto: [ANN] JRuby 1.6.5.1 Released

The JRuby community is pleased to announce the release of JRuby 1.6.5.1.

- Homepage: http://www.jruby.org/
- Download: http://www.jruby.org/download

JRuby 1.6.5.1 is a special release with a single patch applied to our =
JRuby
1.6.5 source to correct CERT vulnerability CERT-2011-003
(http://www.ocert.org/advisories/ocert-2011-003.html).  All users are
recommended to upgrade to JRuby 1.6.5.1 to get this security fix.

A fuller JRuby 1.6.6 with bug fixes from the last two months will be
released mid-January...

**Background for the CERT advisory:**

(for the impatient: predictable hashing algorithm and open access to a =
hash
from a server can possibly allow Denial of Service (DOS) attacks)

**Hashing 101**

Hash tables apply a math function (hashing function) to the key of a
key-value pair. The result of the hashing function is a location to a =
hash
bucket which stores the key/value pair internally:

    a[:heh] =3D 1
    hashing_function(:heh) -> store :heh/1 in hash bucket #3
    a[:foo] =3D 2
    hashing_function(:foo) -> store :foo/2 in hash bucket #13
    a[:bar] =3D 3
    hashing_function(:bar) -> store :bar/3 in hash bucket #1

Hashes have many buckets and in theory all key/value pairs added to a =
hash
will get spread out evenly across the hashes buckets.  In practice, some
number of keys will end up hashing into the same hash bucket (known as a
hashing collision).  As you get more key/value pairs stored to the same =
hash
bucket the time to access those particular key/value pairs will slow =
down.
This is because you need to walk some portion of the entries in the =
bucket
to find the specific one you are looking for (hash structures will often
make entries in an individual bucket a simple list structure).

    a[:gar] =3D 4
    hashing_function(:gar) -> store gar/4 in hash bucket #3 (same bucket =
as
:heh)

In this example, accessing a[:gar] and a[:heh] may take longer than the
other keys because they are sharing a hash bucket.

**The Attack**

The general application of the attack is for "the bad guys" to figure =
out a
large set of values which will hash to the same hash bucket.
Once they create this list they will send all those values to a server.  =
The
server will store them in a hash (think parameter list in Rack, for
example).  The act of storing or accessing any of those values takes =
longer
and longer as the number of entries in a single hash bucket grows.  The
result will be a Denial Of Service (DOS) attack if enough values get =
stored.

    hashing_function(:hostname) -> hash bucket #3
    hashing_function(:aZ1) -> hash bucket #3
    hashing_function(:cvg) -> hash bucket #3
    hashing_function(:azr) -> hash bucket #3
    ... # many elided
    hashing_function(:1fr) -> hash bucket #3
    hashing_function(:yu3) -> hash bucket #3
    hashing_function(:hyX) -> hash bucket #3

    host =3D params[:hostname] # Uh oh! need to find this amongst many =
bucket
buddies

**The Fix**

Adding a little bit of randomization to the hashing algorithm ends up =
making
it much, much more difficult to figure out how to generate this type of
attack.  JRuby 1.6.5.1 (and all later JRuby releases) all have this
additional randomization built into the hashing algorithm.  The result
should be decent hash bucket distribution that is difficult for =
attackers to
predict.
More information

This vulnerability is not exclusively an issue of JRuby.  Other Ruby
implementations also have a similar issue (also patched today/soon).
In fact, Java and PHP also appear to be susceptible to this style of =
attack.
For more information, please see the CERT announcement
(http://www.ocert.org/advisories/ocert-2011-003.html) .

Also, consider that language implementations are really only susceptible =
to
this attack via frameworks which allow an external hacker to store =
arbitrary
and/or unbounded key/values into a hash.
Ruby Rack had this vulnerability, but they have fixed things so that the
amount of parameters stored is bounded by a size to remove the =
possibility
of a DOS attack.  Rack users should upgrade to the latest version.


--
blog: http://blog.enebo.com=A0 =A0 =A0=A0 twitter: tom_enebo
mail: tom.enebo@gmail.com


 
 
 --
 Caselle da 1GB, trasmetti allegati fino a 3GB e in piu' IMAP, POP3 e SMTP autenticato? GRATIS solo con Email.it http://www.email.it/f
 
 Sponsor:
 Capodanno al parco Oltremare Riccione: Pacchetto hotel 3 stelle in centro + ingresso al parco. 
* Mezza pensione, Internet gratis, animazione per bimbi. Scopri l'offerta!
 Clicca qui: http://adv.email.it/cgi-bin/foclick.cgi?mid=11981&d=29-12

In This Thread