2267 matches found
Microsoft Edge Chakra JIT NewScObjectNoCtor Array Type Confusion
Microsoft Edge: Chakra: JIT: Array type confusion via NewScObjectNoCtor CVE-2018-0838 This is similar to the previous issues 1457, 1459 MSRC 42551, MSRC 42552. If a JavaScript function is used as a consturctor, it sets the new object's "proto" to its "prototype". The JIT compiler uses...
Microsoft Edge Chakra JIT - GlobOpt::OptTagChecks Must Consider IsLoopPrePass Properly (2)
Exploit for windows platform in category dos / poc It seems this is the patch for the bug. https://github.com/Microsoft/ChakraCore/pull/4226/commits/874551dd00ff6f404e593c7e0162efb54b953f5a The following two cases will bypass the fix. 1: function opt let obj = new Number2.3023e-320; for let i = 0...
Microsoft Edge Chakra JIT - Array.prototype.reverse Array Type Confusion
Microsoft Edge Chakra JIT - Array.prototype.reverse Array Type Confusion / This is simillar to the previous issue 1457. But this time, we use Array.prototype.reverse. Array.prototype.reverse can be inlined and may invoke EnsureNonNativeArray to convert the prototype of "this" to a Var array. Call...
Microsoft Edge Chakra JIT - LdThis Type Confusion Exploit
Exploit for windows platform in category dos / poc / LdThis instructions' value type is assumed to be "Object". Since "this" can be other objects like an array, it has to be assumed to be "LikelyObject", otherwise, operations to "this" will not be checked properly. PoC: / function optarr arr0 =...
Microsoft Edge Chakra JIT - Memory Corruption Exploit
Exploit for windows platform in category dos / poc / Let's consider the following example code. function opt let arr = ; return arr'x'; // Optimize the "opt" function. for let i = 0; i inline Js::Var ExecuteImplicitCallJs::RecyclableObject function, Js::ImplicitCallFlags flags, Fn implicitCall //...
Microsoft Edge Chakra JIT Incomplete Fix
Microsoft Edge: Chakra: JIT: Incomplete fix for issue 1365 CVE-2018-0770 It seems this is the patch for the bug. https://github.com/Microsoft/ChakraCore/pull/4226/commits/874551dd00ff6f404e593c7e0162efb54b953f5a The following two cases will bypass the fix. 1: function opt let obj = new...
Microsoft Edge Chakra JIT - 'NewScObjectNoCtor' Array Type Confusion
/ This is similar to the previous issues 1457, 1459 MSRC 42551, MSRC 42552. If a JavaScript function is used as a consturctor, it sets the new object's "proto" to its "prototype". The JIT compiler uses NewScObjectNoCtor instructions to perform it, but those instructions are not checked by...
Microsoft Edge Chakra JIT - Array Type Confusion via InitProto Instructions
/ If a native array is used as a prototype, it is converted to a Var array by the Js::JavascriptNativeFloatArray::SetIsPrototype method. In the JIT compiler, it uses InitProto instructions to set object literals' prototype. But when optimizing those instructions, it doesn't reset the previous arr...
(Pwn2Own) Apple Safari DFG JIT Type Confusion Remote Code Execution Vulnerability
This vulnerability allows remote attackers to execute arbitrary code on vulnerable installations of Apple Safari. User interaction is required to exploit this vulnerability in that the target must visit a malicious page or open a malicious file. The specific flaw exists within the handling of the...
SUSE-SU-2018:0179-1 Security update for wireshark
This update for wireshark to version 2.2.12 fixes the following issues: - CVE-2018-5334: IxVeriWave file could crash bsc1075737 - CVE-2018-5335: WCP dissector could crash bsc1075738 - CVE-2018-5336: Multiple dissector crashes bsc1075739 - CVE-2017-17935: Incorrect handling of '\n' in filereadline...
Microsoft Edge: Chakra: JIT: Incorrect bounds calculation(CVE-2018-0769)
Let's start with comments in the "GlobOpt::TrackIntSpecializedAddSubConstant" method. // Track bounds for add or sub with a constant. For instance, consider b = a + 2. The value of 'b' should track // that it is equal to the value of 'a' + 2. That part has been done above. Similarly, the value of...
Microsoft Edge: Chakra: JIT: stack-to-heap copy bug(CVE-2018-0776)
If variables don't escape the scope, the variables can be allocated to the stack. However, there are some situations, such as when a bailout happens or accessing to arguments containing stack-allocated variables, where those variables should not exist in the stack. In these cases, the...
Microsoft Edge: Chakra: JIT: Loop analysis bug(CVE-2018-0777)
Here's the PoC demonstrating OOB write. function optarr, start, end for let i = start; i end; i++ if i === 10 i += 0; // -- a arri = 2.3023e-320; function main let arr = new Array100; arr.fill1.1; for let i = 0; i 1000; i++ optarr, 0, 3; optarr, 0, 100000; main; What happens here is as follows: I...
Microsoft Edge Chakra JIT Stack-To-Heap Copy Bug
Microsoft Edge: Chakra: JIT: stack-to-heap copy bug CVE-2018-0776 If variables don't escape the scope, the variables can be allocated to the stack. However, there are some situations, such as when a bailout happens or accessing to arguments containing stack-allocated variables, where those...
Microsoft Edge Chakra JIT - Incorrect Bounds Calculation Exploit
Exploit for windows platform in category dos / poc / Let's start with comments in the "GlobOpt::TrackIntSpecializedAddSubConstant" method. // Track bounds for add or sub with a constant. For instance, consider b = a + 2. The value of 'b' should track // that it is equal to the value of 'a' + 2...
Microsoft Edge Chakra JIT - Out-of-Bounds Write Exploit
Exploit for windows platform in category dos / poc // Here's the PoC demonstrating OOB write. function optarr, start, end for let i = start; i end; i++ if i === 10 i += 0; // -- a arri = 2.3023e-320; function main let arr = new Array100; arr.fill1.1; for let i = 0; i 1000; i++ optarr, 0, 3; optar...
Microsoft Edge Chakra JIT Loop Analysis Bug
Microsoft Edge: Chakra: JIT: Loop analysis bug CVE-2018-0777 Here's the PoC demonstrating OOB write. function optarr, start, end for let i = start; i end; i++ if i === 10 i += 0; // -- a arri = 2.3023e-320; function main let arr = new Array100; arr.fill1.1; for let i = 0; i 1000; i++ optarr, 0, 3...
Microsoft Edge Chakra JIT - Stack-to-Heap Copy Exploit
Exploit for windows platform in category dos / poc / If variables don't escape the scope, the variables can be allocated to the stack. However, there are some situations, such as when a bailout happens or accessing to arguments containing stack-allocated variables, where those variables should no...
Microsoft Edge Chakra JIT Incorrect Bounds Calculation
Microsoft Edge: Chakra: JIT: Incorrect bounds calculation CVE-2018-0769 Let's start with comments in the "GlobOpt::TrackIntSpecializedAddSubConstant" method. // Track bounds for add or sub with a constant. For instance, consider b = a + 2. The value of 'b' should track // that it is equal to the...
Microsoft Edge Chakra JIT - Incorrect Bounds Calculation
/ Let's start with comments in the "GlobOpt::TrackIntSpecializedAddSubConstant" method. // Track bounds for add or sub with a constant. For instance, consider b = a + 2. The value of 'b' should track // that it is equal to the value of 'a' + 2. That part has been done above. Similarly, the value ...