Vulnerabilities / Threats
1/9/2013
12:38 PM
50%
50%

Critical Ruby On Rails Issue Threatens 240,000 Websites

Bug allows attackers to execute arbitrary code on any version of Ruby published in the last six years.

All versions of the open source Ruby on Rails Web application framework released in the past six years have a critical vulnerability that an attacker could exploit to execute arbitrary code, steal information from databases and crash servers. As a result, all Ruby users should immediately upgrade to a newly released, patched version of the software.

That warning was sounded Tuesday in a Google Groups post made by Aaron Patterson, a key Ruby programmer. "Due to the critical nature of this vulnerability, and the fact that portions of it have been disclosed publicly, all users running an affected release should either upgrade or use one of the work arounds immediately," he wrote. The patched versions of Ruby on Rails (RoR) are 3.2.11, 3.1.10, 3.0.19 and 2.3.15.

As a result, more than 240,000 websites that use Ruby on Rails Web applications are at risk of being exploited by attackers. High-profile websites that employ the software include Basecamp, Github, Hulu, Pitchfork, Scribd and Twitter.

[ A successful crimeware toolkit author is going on a shopping spree. See Blackhole Botnet Creator Buys Up Zero Day Exploits. ]

Ben Murphy, a developer who helped to confirm the vulnerability, described the underlying flaw as "quite bad" to Ars Technica. "An attack can send a request to any Ruby on Rails sever and then execute arbitrary commands. Even though it's complex, it's reliable, so it will work 100% of the time," he said.

In a website post, Murphy further noted that the vulnerability affects "any rails version for the last 6 years," and said he'd written -- but not released -- proof-of-concept attacks that work for "Rails 3.x and Rails 2.x on Ruby 1.9.3, Ruby 1.9.2 and Ruby 1.8.7 and there is no reason to believe this wouldn't work on any Ruby/Rails combination since when the bug has been introduced." In addition, he said, "the exploit does not depend on code the user has written and will work with a new rails application without any controllers."

What's the exact nature of the vulnerability? "The summary is that the XML processor in RoR can be tricked into decoding the request as a YAML document or as a Ruby Symbol, both of which can expose the application to remote code execution or SQL injection," said HD Moore, the creator of the open source penetration testing toolkit Metasploit, in a blog post. (YAML is a human-readable data serialization format.)

"These kinds of bugs are close to my heart, as Metasploit itself is written in Ruby, and we use Ruby on Rails within the Metasploit Community, Express and Pro user interfaces," he said. But he noted that all versions of Metasploit have now been updated with a workaround to protect them against the vulnerability.

While security researchers haven't published a working, proof-of-concept exploit, many people are now hard at work studying both the vulnerability as well as techniques for exploiting it. "If this pans out, this would put thousands of production websites at risk of remote compromise," said Moore.

Vulnerability-wise, it hasn't been a good month for Ruby on Rails. Last week, the team behind the framework warned that all current versions of Rails were vulnerable to a SQL injection flaw. They simultaneously released updated versions of the framework that patched the flaw.

Comment  | 
Print  | 
More Insights
Comments
Oldest First  |  Newest First  |  Threaded View
Andrew Hornback
50%
50%
Andrew Hornback,
User Rank: Apprentice
1/10/2013 | 2:45:11 AM
re: Critical Ruby On Rails Issue Threatens 240,000 Websites
OUCH! Looks like there are a lot of web server admins out there that are going to be putting in a little overtime this week.

How does a vulnerability like this go unnoticed for 6 years? Especially one with such ramifications. That also begs the question, what ELSE is out there, lurking in the deep waters, waiting to bite?

Andrew Hornback
InformationWeek Contributor
Register for Dark Reading Newsletters
White Papers
Video
Cartoon
Current Issue
Flash Poll
Slideshows
Twitter Feed
Dark Reading - Bug Report
Bug Report
Enterprise Vulnerabilities
From DHS/US-CERT's National Vulnerability Database
CVE-2015-1291
Published: 2015-09-03
The ContainerNode::parserRemoveChild function in core/dom/ContainerNode.cpp in Blink, as used in Google Chrome before 45.0.2454.85, does not check whether a node is expected, which allows remote attackers to bypass the Same Origin Policy or cause a denial of service (DOM tree corruption) via a web s...

CVE-2015-1292
Published: 2015-09-03
The NavigatorServiceWorker::serviceWorker function in modules/serviceworkers/NavigatorServiceWorker.cpp in Blink, as used in Google Chrome before 45.0.2454.85, allows remote attackers to bypass the Same Origin Policy by accessing a Service Worker.

CVE-2015-1293
Published: 2015-09-03
The DOM implementation in Blink, as used in Google Chrome before 45.0.2454.85, allows remote attackers to bypass the Same Origin Policy via unspecified vectors.

CVE-2015-1294
Published: 2015-09-03
Use-after-free vulnerability in the SkMatrix::invertNonIdentity function in core/SkMatrix.cpp in Skia, as used in Google Chrome before 45.0.2454.85, allows remote attackers to cause a denial of service or possibly have unspecified other impact by triggering the use of matrix elements that lead to an...

CVE-2015-1295
Published: 2015-09-03
Multiple use-after-free vulnerabilities in the PrintWebViewHelper class in components/printing/renderer/print_web_view_helper.cc in Google Chrome before 45.0.2454.85 allow user-assisted remote attackers to cause a denial of service or possibly have unspecified other impact by triggering nested IPC m...

Dark Reading Radio
Archived Dark Reading Radio
Another Black Hat is in the books and Dark Reading was there. Join the editors as they share their top stories, biggest lessons, and best conversations from the premier security conference.