Microsoft Edge Chakra DictionaryPropertyDescriptor::CopyFrom Failed Copy

Microsoft Edge Chakra has an issue where DictionaryPropertyDescriptor::CopyFrom does not copy all fields.


MD5 | 58ac89a215bdcc730aeb2f04f26ab26d

Microsoft Edge: Chakra: DictionaryPropertyDescriptor::CopyFrom doesn't copy all fields 

CVE-2018-8291


Here's the method.
template <typename TPropertyIndex>
template <typename TPropertyIndexFrom>
void DictionaryPropertyDescriptor<TPropertyIndex>::CopyFrom(DictionaryPropertyDescriptor<TPropertyIndexFrom>& descriptor)
{
this->Attributes = descriptor.Attributes;
this->Data = (descriptor.Data == DictionaryPropertyDescriptor<TPropertyIndexFrom>::NoSlots) ? NoSlots : descriptor.Data;
this->Getter = (descriptor.Getter == DictionaryPropertyDescriptor<TPropertyIndexFrom>::NoSlots) ? NoSlots : descriptor.Getter;
this->Setter = (descriptor.Setter == DictionaryPropertyDescriptor<TPropertyIndexFrom>::NoSlots) ? NoSlots : descriptor.Setter;
this->IsAccessor = descriptor.IsAccessor;

#if ENABLE_FIXED_FIELDS
this->IsInitialized = descriptor.IsInitialized;
this->IsFixed = descriptor.IsFixed;
this->UsedAsFixed = descriptor.UsedAsFixed;
Related Posts