Skip to content

Commit

Permalink
v8: back-port fix for CVE-2013-2882
Browse files Browse the repository at this point in the history
Quoting the CVE:

    Google V8, as used in Google Chrome before 28.0.1500.95, allows
    remote attackers to cause a denial of service or possibly have
    unspecified other impact via vectors that leverage "type confusion."

Likely has zero impact on node.js because it only runs local, trusted
code but let's apply it anyway.

This is a back-port of upstream commit r15665. Original commit log:

    Use internal array as API function cache.

    R=yangguo@chromium.org
    BUG=chromium:260106
    TEST=cctest/test-api/Regress260106

    Review URL: https://codereview.chromium.org/19159003

Fixes nodejs#5973.
  • Loading branch information
mstarzinger@chromium.org authored and bnoordhuis committed Aug 5, 2013
1 parent 231092d commit 6b92a71
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 1 deletion.
2 changes: 1 addition & 1 deletion deps/v8/src/apinatives.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ function CreateDate(time) {
}


var kApiFunctionCache = {};
var kApiFunctionCache = new InternalArray();
var functionCache = kApiFunctionCache;


Expand Down
11 changes: 11 additions & 0 deletions deps/v8/test/cctest/test-api.cc
Original file line number Diff line number Diff line change
Expand Up @@ -17707,6 +17707,17 @@ THREADED_TEST(Regress157124) {
}


THREADED_TEST(Regress260106) {
LocalContext context;
v8::HandleScope scope(context->GetIsolate());
Local<FunctionTemplate> templ = FunctionTemplate::New(DummyCallHandler);
CompileRun("for (var i = 0; i < 128; i++) Object.prototype[i] = 0;");
Local<Function> function = templ->GetFunction();
CHECK(!function.IsEmpty());
CHECK(function->IsFunction());
}


#ifndef WIN32
class ThreadInterruptTest {
public:
Expand Down

0 comments on commit 6b92a71

Please sign in to comment.