Closed
Bug 861904
Opened 12 years ago
Closed 12 years ago
Assertion failure: templateObject->getClass() == &ParallelArrayObject::class_, at ion/VMFunctions.cpp:286
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
VERIFIED
FIXED
mozilla23
Tracking | Status | |
---|---|---|
firefox21 | --- | unaffected |
firefox22 | + | fixed |
firefox23 | + | verified |
firefox-esr17 | --- | unaffected |
b2g18 | --- | unaffected |
People
(Reporter: decoder, Assigned: shu)
References
Details
(4 keywords, Whiteboard: [jsbugmon:update,ignore][adv-main22-])
Attachments
(1 file)
(deleted),
patch
|
sstangl
:
review+
bajaj
:
approval-mozilla-aurora+
abillings
:
sec-approval+
|
Details | Diff | Splinter Review |
The following testcase asserts on mozilla-central revision 261d6997d1d1 (run with --ion-eager):
function TestCase(n, d, e, a) {};
function reportCompare() {
var testcase = new TestCase("x", 0);
}
reportCompare();
TestCase = ParallelArray;
gczeal(6);
try {
reportCompare();
} catch(exc1) {}
reportCompare();
Reporter | ||
Comment 1•12 years ago
|
||
S-s because gczeal is involved.
Whiteboard: [jsbugmon:update,bisect]
Reporter | ||
Updated•12 years ago
|
Whiteboard: [jsbugmon:update,bisect] → [jsbugmon:update]
Reporter | ||
Comment 2•12 years ago
|
||
JSBugMon: Bisection requested, result:
autoBisect shows this is probably related to the following changeset:
The first bad revision is:
changeset: 126654:a92c968b29ae
user: Sean Stangl
date: Tue Feb 19 14:06:40 2013 -0800
summary: Bug 837312: IonMonkey: Inline a strict subset of known targets, r=sstangl,djvj
This iteration took 130.607 seconds to run.
Updated•12 years ago
|
Blocks: 837312
status-b2g18:
--- → unaffected
status-firefox21:
--- → unaffected
status-firefox22:
--- → affected
status-firefox23:
--- → affected
status-firefox-esr17:
--- → unaffected
Keywords: regression
Comment 3•12 years ago
|
||
Sean, could this be a regression from your patch? Also ccing some parallel array people.
Group: javascript-core-security
Flags: needinfo?(sstangl)
Updated•12 years ago
|
Group: javascript-core-security
Assignee | ||
Comment 4•12 years ago
|
||
The inlining code incorrectly assumed if that if TI knew the native call was in fact the ParallelArray constructor, then it would have already observed the expected ParallelArray TypeObject in the return typeset.
Comment 5•12 years ago
|
||
I'm going to assume that could be bad.
Updated•12 years ago
|
Attachment #741549 -
Flags: review?(sstangl) → review+
Comment 6•12 years ago
|
||
Please remember to ask for sec-approval, as this affects Aurora. Thanks.
Assignee | ||
Comment 7•12 years ago
|
||
Comment on attachment 741549 [details] [diff] [review]
fix + testcase
[Security approval request comment]
How easily could an exploit be constructed based on the patch?
Seems difficult without the ability to trigger eager compilation. It would require a script that observes calling the native ParallelArray constructor but not monitoring its results somehow *immediately before trying to Ion-compile*, via patching like the attached test case.
Do comments in the patch, the check-in comment, or tests included in the patch paint a bulls-eye on the security problem?
Not sure, could just remove the check-in/test comments though.
Which older supported branches are affected by this flaw?
Aurora; ParallelArrays are ifdef'd off in beta and above.
If not all supported branches, which bug introduced the flaw?
See comments.
Do you have backports for the affected branches? If not, how different, hard to create, and risky will they be?
Not risky, as this is an unpublicized API that's only ifdef'd on for Nightly and Aurora.
How likely is this patch to cause regressions; how much testing does it need?
Unlikely to cause regressions.
Attachment #741549 -
Flags: sec-approval?
Comment 8•12 years ago
|
||
Comment on attachment 741549 [details] [diff] [review]
fix + testcase
sec-approval+. Please check into M-C and nominate the patch for Aurora.
Attachment #741549 -
Flags: sec-approval? → sec-approval+
Updated•12 years ago
|
Assignee | ||
Comment 9•12 years ago
|
||
Comment on attachment 741549 [details] [diff] [review]
fix + testcase
[Approval Request Comment]
Bug caused by (feature/regressing bug #): 858077
User impact if declined: Possible exploit.
Testing completed (on m-c, etc.): waiting on m-c
Risk to taking this patch (and alternatives if risky): low
String or IDL/UUID changes made by this patch:
https://hg.mozilla.org/integration/mozilla-inbound/rev/c1f983b78f16
Attachment #741549 -
Flags: approval-mozilla-aurora?
Reporter | ||
Updated•12 years ago
|
Whiteboard: [jsbugmon:update] → [jsbugmon:update,ignore]
Reporter | ||
Comment 10•12 years ago
|
||
JSBugMon: The testcase found in this bug no longer reproduces (tried revision 7f68735fc8da).
Comment 11•12 years ago
|
||
Status: NEW → RESOLVED
Closed: 12 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla23
Reporter | ||
Updated•12 years ago
|
Status: RESOLVED → VERIFIED
Reporter | ||
Comment 12•12 years ago
|
||
JSBugMon: This bug has been automatically verified fixed.
Updated•12 years ago
|
Attachment #741549 -
Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Comment 13•12 years ago
|
||
Updated•11 years ago
|
Whiteboard: [jsbugmon:update,ignore] → [jsbugmon:update,ignore][adv-main22-]
Updated•11 years ago
|
Group: core-security
You need to log in
before you can comment on or make changes to this bug.
Description
•