VYPR
High severityNVD Advisory· Published Jul 11, 2018· Updated Aug 5, 2024

CVE-2018-8287

CVE-2018-8287

Description

A memory corruption vulnerability in Microsoft browsers' scripting engine allows remote code execution via specially crafted web content.

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

A memory corruption vulnerability in Microsoft browsers' scripting engine allows remote code execution via specially crafted web content.

Vulnerability

A remote code execution vulnerability exists in the way the scripting engine handles objects in memory in Microsoft browsers, aka 'Scripting Engine Memory Corruption Vulnerability.' Affected products include ChakraCore, Internet Explorer 11, Microsoft Edge, and Internet Explorer 10 [1][2]. The vulnerability can be triggered through a specially crafted ActiveX control marked safe for initialization [3].

Exploitation

An attacker must host a malicious website (or leverage a compromised site) that contains specially crafted content. The user must then browse to the site using an affected browser. No authentication is required, and the vulnerability can be exploited without user interaction beyond visiting the page [1][2].

Impact

Successful exploitation allows the attacker to execute arbitrary code in the context of the current user. If the user has administrative rights, the attacker could take control of the system, including installing programs, viewing/changing data, or creating new accounts [2].

Mitigation

Microsoft released security updates on July 10, 2018, as part of Patch Tuesday. Users should apply the latest updates for Internet Explorer, Microsoft Edge, and ChakraCore. For ChakraCore, Microsoft provided security updates until March 2021; after that, the project is community-maintained and no longer receives official security patches [4].

AI Insight generated on May 22, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected packages

Versions sourced from the GitHub Security Advisory.

PackageAffected versionsPatched versions
Microsoft.ChakraCoreNuGet
< 1.10.11.10.1

Affected products

5

Patches

1
fa89a7031e75

[CVE-2018-8287] Edge - Chakra Internet Explorer - Use after free in jscript9.dll after closing WebBrowserControl - Internal.

https://github.com/chakra-core/ChakraCoreAtul KattiJun 14, 2018via ghsa
2 files changed · +26 0
  • lib/Runtime/Base/ThreadServiceWrapperBase.cpp+7 0 modified
    @@ -78,6 +78,13 @@ bool ThreadServiceWrapperBase::ScheduleIdleCollect(uint ticks, bool scheduleAsTa
     
     bool ThreadServiceWrapperBase::IdleCollect()
     {
    +    // Tracking service does not AddRef/Release the thread service and only keeps a function pointer and context parameter (this pointer)
    +    // to execute the IdleCollect callback. It is possible that the tracking service gets destroyed as part of the collection
    +    // during this IdleCollect. If that happens then we need to make sure ThreadService (which may be owned by the tracking service)
    +    // is kept alive until this callback completes. Any pending timer is killed in the thread service destructor so we should not get
    +    // any new callbacks after the thread service is destroyed.
    +    AutoAddRefReleaseThreadService autoThreadServiceKeepAlive(this);
    +
         Assert(hasScheduledIdleCollect);
         IDLE_COLLECT_VERBOSE_TRACE(_u("IdleCollect- reset hasScheduledIdleCollect\n"));
         hasScheduledIdleCollect = false;
    
  • lib/Runtime/Base/ThreadServiceWrapperBase.h+19 0 modified
    @@ -41,10 +41,29 @@ class ThreadServiceWrapperBase : public ThreadServiceWrapper
         virtual bool OnScheduleIdleCollect(uint delta, bool scheduleAsTask) = 0;
         virtual void OnFinishIdleCollect() = 0;
         virtual bool ShouldFinishConcurrentCollectOnIdleCallback() = 0;
    +    virtual void AddRefThreadService() { /* do nothing */ };
    +    virtual void ReleaseThreadService() { /* do nothing */ };
     
         ThreadContext *GetThreadContext() { return threadContext; }
     
     private:
    +    class AutoAddRefReleaseThreadService
    +    {
    +    public:
    +        AutoAddRefReleaseThreadService(ThreadServiceWrapperBase * threadService)
    +        {
    +            this->threadService = threadService;
    +            threadService->AddRefThreadService();
    +        }
    +
    +        ~AutoAddRefReleaseThreadService()
    +        {
    +            threadService->ReleaseThreadService();
    +        }
    +
    +        ThreadServiceWrapperBase * threadService;
    +    };
    +
         static const unsigned int IdleTicks = 1000; // 1 second
         static const unsigned int IdleFinishTicks = 100; // 100 ms;
     
    

Vulnerability mechanics

Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.

References

11

News mentions

0

No linked articles in our index yet.