Closed Bug 893036 Opened 12 years ago Closed 12 years ago

Robohornet benchmark crashes Firefox release (stack overflow)

Categories

(Core :: CSS Parsing and Computation, defect)

22 Branch
x86_64
Windows 7
defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 485941

People

(Reporter: mark, Unassigned)

Details

Crash Data

User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0 (Beta/Release) Build ID: 20130618035212 Steps to reproduce: I went to robohornet.org and tried to run the test. Upon running the test, robohornet would crash Firefox on step 3: descendant selectors. According to the site, this step tests descendant selectors at different DOM depths (up to 1000 levels deep). This could possibly be exploitable, it seems to be some sort of out of bounds crash. System is Windows 7 SP1 x64, on AMD Phenom II processor with plenty of free ram. Someone else confirmed this crash on an I5-2320 w/ 32gb ram, Win 7 x64 SP-1. Actual results: Firefox crashed, crashreports have been submitted. Expected results: Firefox should be able to complete the test.
Details: Crash ID: f06b7eca-969d-4b96-891c-211502130712 Signature: SelectorMatches in layout/style/nsCSSRuleProcessor.cpp Crash Reason EXCEPTION_STACK_OVERFLOW Crash Address 0x5d4408d3
Summary: Robohornet benchmark crashes Firefox release → Robohornet benchmark crashes Firefox release (stack overflow)
Crash Signature: f06b7eca-969d-4b96-891c-211502130712
Crash Signature: f06b7eca-969d-4b96-891c-211502130712 → f06b7eca-969d-4b96-891c-211502130712 7da22c06-9db4-43ac-817c-99b5c2130712
Added another crash sig verified by a colleague on an Intel machine.
Crash Signature: f06b7eca-969d-4b96-891c-211502130712 7da22c06-9db4-43ac-817c-99b5c2130712 → [@ SelectorMatches ]
Component: Untriaged → CSS Parsing and Computation
Product: Firefox → Core
Stack overflows usually aren't security issues.
Status: UNCONFIRMED → NEW
Ever confirmed: true
(In reply to Andrew McCreight [:mccr8] from comment #3) > Stack overflows usually aren't security issues. They aren't? If I'm not mistaken, any specifically triggered buffer overflow can lead to arbitrary code execution. I'd say that would make this a security issue; not sure about the severity of it, of course.
Group: core-security
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → DUPLICATE
Sorry if somewhere along the line, terminology got muddled then. I was always taught that a "stack overflow" is a "type of buffer overflow where the buffer is the stack". OWASP seems to agree with that definition. https://www.owasp.org/index.php/Stack_overflow
What is failing here is the allocation of the stack frame due to a deep stack. Generally that's not a huge deal. What the OWASP thing seems to be talking about is writing off the end of a data structure allocated on the stack.
@David: Not to nitpick, but I'd like to point out that Wikipedia at least *does* agree (I haven't checked the MS article): "When a program attempts to use more space than is available on the call stack (that is, when it attempts to access memory beyond the call stack's bounds, *which is essentially a buffer overflow*), the stack is said to overflow, typically resulting in a program crash" -- That is what is happening. So basically wikipedia is also calling a stack overflow essentially a buffer overflow where the buffer is the stack. Both articles on wikipedia (stack overflow/stack buffer overflow) are saying pretty much the same thing although one focuses more on the exploit side of things, while the other provides a more generic description. I'll do some more reading when I have the opportunity about the intricate differences between the two terms. @Andrew: As said, I wasn't sure about the severity ;) It seems to not be something severe in this particular case (I'll leave the code evaluation up to you guys), but it caused a red-flag response for me seeing an app crash and a stack overflow message in combination, hence my bug report was initially marked for security.
You need to log in before you can comment on or make changes to this bug.