High severity7.5NVD Advisory· Published Jun 16, 2016· Updated May 6, 2026
CVE-2016-3202
CVE-2016-3202
Description
The Microsoft (1) Chakra JavaScript, (2) JScript, and (3) VBScript engines, as used in Microsoft Internet Explorer 10 and 11 and Microsoft Edge, allow remote attackers to execute arbitrary code or cause a denial of service (memory corruption) via a crafted web site, aka "Scripting Engine Memory Corruption Vulnerability."
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
Microsoft.ChakraCoreNuGet | < 1.2.0.0 | 1.2.0.0 |
Affected products
3- cpe:2.3:a:microsoft:chakra_javascript:*:*:*:*:*:*:*:*
Patches
1ff9067ebe9e1Chakra Assert : sym->HasScopeSlot()
1 file changed · +16 −6
lib/Runtime/ByteCode/ByteCodeEmitter.cpp+16 −6 modified@@ -1799,37 +1799,47 @@ void ByteCodeGenerator::InitScopeSlotArray(FuncInfo * funcInfo) propertyIdsForScopeSlotArray[i] = Js::Constants::NoProperty; } #endif + auto setPropertyIdForScopeSlotArray = + [scopeSlotCount, propertyIdsForScopeSlotArray] + (Js::PropertyId slot, Js::PropertyId propId) + { + if (slot < 0 || (uint)slot >= scopeSlotCount) + { + Js::Throw::FatalInternalError(); + } + propertyIdsForScopeSlotArray[slot] = propId; + }; - auto setPropIdsForScopeSlotArray = [funcInfo, propertyIdsForScopeSlotArray](Symbol *const sym) + auto setPropIdsForScopeSlotArray = [funcInfo, setPropertyIdForScopeSlotArray](Symbol *const sym) { if (sym->NeedsSlotAlloc(funcInfo)) { // All properties should get correct propertyId here. Assert(sym->HasScopeSlot()); // We can't allocate scope slot now. Any symbol needing scope slot must have allocated it before this point. - propertyIdsForScopeSlotArray[sym->GetScopeSlot()] = sym->EnsurePosition(funcInfo); + setPropertyIdForScopeSlotArray(sym->GetScopeSlot(), sym->EnsurePosition(funcInfo)); } }; funcInfo->GetBodyScope()->ForEachSymbol(setPropIdsForScopeSlotArray); if (funcInfo->thisScopeSlot != Js::Constants::NoRegister) { - propertyIdsForScopeSlotArray[funcInfo->thisScopeSlot] = Js::PropertyIds::_lexicalThisSlotSymbol; + setPropertyIdForScopeSlotArray(funcInfo->thisScopeSlot, Js::PropertyIds::_lexicalThisSlotSymbol); } if (funcInfo->newTargetScopeSlot != Js::Constants::NoRegister) { - propertyIdsForScopeSlotArray[funcInfo->newTargetScopeSlot] = Js::PropertyIds::_lexicalNewTargetSymbol; + setPropertyIdForScopeSlotArray(funcInfo->newTargetScopeSlot, Js::PropertyIds::_lexicalNewTargetSymbol); } if (funcInfo->superScopeSlot != Js::Constants::NoRegister) { - propertyIdsForScopeSlotArray[funcInfo->superScopeSlot] = Js::PropertyIds::_superReferenceSymbol; + setPropertyIdForScopeSlotArray(funcInfo->superScopeSlot, Js::PropertyIds::_superReferenceSymbol); } if (funcInfo->superCtorScopeSlot != Js::Constants::NoRegister) { - propertyIdsForScopeSlotArray[funcInfo->superCtorScopeSlot] = Js::PropertyIds::_superCtorReferenceSymbol; + setPropertyIdForScopeSlotArray(funcInfo->superCtorScopeSlot, Js::PropertyIds::_superCtorReferenceSymbol); } #if DEBUG
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
9- github.com/advisories/GHSA-ww6f-76ff-phhjghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2016-3202ghsaADVISORY
- docs.microsoft.com/en-us/security-updates/securitybulletins/2016/ms16-063nvdWEB
- docs.microsoft.com/en-us/security-updates/securitybulletins/2016/ms16-068nvdWEB
- github.com/chakra-core/ChakraCore/commit/ff9067ebe9e1c92eff4e25da95070bfd5942da07ghsaWEB
- web.archive.org/web/20211129115034/http://www.securitytracker.com/id/1036099ghsaWEB
- web.archive.org/web/20211208124350/http://www.securitytracker.com/id/1036096ghsaWEB
- www.securitytracker.com/id/1036096nvd
- www.securitytracker.com/id/1036099nvd
News mentions
0No linked articles in our index yet.