Closed
Bug 556874
Opened 15 years ago
Closed 15 years ago
PoolObject::parseMultiname and Verifier::checkTypeName can recurse arbitrarily deep
Categories
(Tamarin Graveyard :: Virtual Machine, defect, P2)
Tamarin Graveyard
Virtual Machine
Tracking
(Not tracked)
VERIFIED
FIXED
flash10.1
People
(Reporter: stejohns, Assigned: stejohns)
References
Details
Attachments
(1 file)
1.73 KB,
patch
|
edwsmith
:
review+
|
Details | Diff | Splinter Review |
When parsing parameterized types, the code recurses as deep as the level of paramterizing. A carefully constructed ABC could make use of this to force a stack overflow.
Assignee | ||
Updated•15 years ago
|
Assignee: nobody → stejohns
Assignee | ||
Comment 1•15 years ago
|
||
Correction: with the proposed patch for bug 556543, PoolObject::parseMultiname can't recurse arbitrarily deep, but Verifier::checkTypeName (and Interpreter::getTraits) can.
Assignee | ||
Comment 2•15 years ago
|
||
PoolObject::resolveTypeName is also susceptible.
Assignee | ||
Comment 3•15 years ago
|
||
I've fiddled around with various rewrite attempts to unroll the recursion, but it's awkward and feels a bit too fiddly for this stage of the game, so I'm tempted to just insert a call to stackCheck() before the recursive bits. Thoughts?
Assignee | ||
Comment 4•15 years ago
|
||
Minimal fix that merely inserts calls to stackCheck in the possible recursion cases.
Attachment #436800 -
Flags: review?(edwsmith)
Flags: flashplayer-qrb+
Priority: -- → P2
Target Milestone: --- → flash10.1
Updated•15 years ago
|
Attachment #436800 -
Flags: review?(edwsmith) → review+
Comment 5•15 years ago
|
||
Comment on attachment 436800 [details] [diff] [review]
Patch
patch is okay as long as the bug has been vetted for exploitability. the fuzzer bugs were marked as security by default, but get declassified unless the represent a real exploit in shipping code.
all the other stack overflow checking bugs for example (see 504506) are not marked as security.
Assignee | ||
Updated•15 years ago
|
Group: tamarin-security
Assignee | ||
Comment 7•15 years ago
|
||
http://hg.mozilla.org/tamarin-redux/rev/2026a6bc0146
http://asteam.macromedia.com/hg/tamarin-redux-argo/rev/2026a6bc0146
Status: ASSIGNED → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Comment 8•15 years ago
|
||
Regression media depends on abcasm multiname support being added: See Bug 558956
Depends on: 558956
Comment 9•15 years ago
|
||
(In reply to comment #8)
> Regression media depends on abcasm multiname support being added: See Bug
> 558956
Looks like abcasm needs TypeName and a way to create a qualified QName. This also interacts with another bug in the parser -- abcasm also needs what amount to soft statement breaks at line breaks.
Updated•15 years ago
|
QA Contact: vm → cpeyer
Updated•15 years ago
|
Status: RESOLVED → VERIFIED
Flags: in-testsuite?
You need to log in
before you can comment on or make changes to this bug.
Description
•