[#68478] Looking for MRI projects for Ruby Google Summer of Code 2015 — Tony Arcieri <bascule@...>

Hi ruby-core,

10 messages 2015/03/10

[ruby-core:68599] [Ruby trunk - Bug #10991] [Feedback] SIGSEGV in Marshal.load

From: nobu@...
Date: 2015-03-22 08:50:51 UTC
List: ruby-core #68599
Issue #10991 has been updated by Nobuyoshi Nakada.

Description updated
Status changed from Open to Feedback
Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN to 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: REQUIRED

Are those dumped data generated from real objects, and expected to be loaded successfully?

----------------------------------------
Bug #10991: SIGSEGV in Marshal.load
https://bugs.ruby-lang.org/issues/10991#change-51911

* Author: Martin Carpenter
* Status: Feedback
* Priority: Normal
* Assignee: 
* ruby -v: ruby 2.2.2p86 (2015-03-03 revision 49825) [x86_64-linux]
* Backport: 2.0.0: REQUIRED, 2.1: REQUIRED, 2.2: REQUIRED
----------------------------------------
I've fuzzed some crashes in the marshal loader. The docs are explicit about not handing untrusted data to these methods and all appear to be `NULL` derefs from `RSTRING_PTR()` (I checked the first few by hand and ran exploitable over the remainder) so not obviously catastrophic from a security perspective.

Attached please find a tgz containing the input data (from afl) and gdb session output (backtrace, set args ..., run, exploitable).

To reproduce from the command line:

    ruby -e 'Marshal.load(STDIN)' < id:000001,sig:11,src:003955,op:havoc,rep:4

Today's ruby-2.2-head is affected, and as far back as ruby-2.1.5 at least (possibly earlier).


---Files--------------------------------
Marshal.load_crashes.tgz (2.92 KB)


-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next