Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

17-11 Security Update #4226

Merged
merged 18 commits into from
Nov 16, 2017
Merged

17-11 Security Update #4226

merged 18 commits into from
Nov 16, 2017

Commits on Nov 12, 2017

  1. [CVE-2017-11843] Edge - UAF in chakra the bug is in Js::GlobalObject:…

    …:VEval function - Individual
    
    do not use eval map if we are eval-ing PropertyString
    leirocks committed Nov 12, 2017
    Configuration menu
    Copy the full SHA
    14f44de View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    38a37ac View commit details
    Browse the repository at this point in the history
  3. [CVE-2017-11870] Edge - Exploitable write-AV when writing to a slot o…

    …f a javascript null scope object. - Internal
    rajatd authored and leirocks committed Nov 12, 2017
    Configuration menu
    Copy the full SHA
    b44ee83 View commit details
    Browse the repository at this point in the history
  4. [CVE-2017-11841] JIT: Inline::InlineCallApplyTarget_Shared doesn't re…

    …turn the return instruction - Google, Inc.
    rajatd authored and leirocks committed Nov 12, 2017
    Configuration menu
    Copy the full SHA
    f8098c2 View commit details
    Browse the repository at this point in the history
  5. [CVE-2017-11858] Chakra - Regular Expression Integer Overflow Leads t…

    …o RCE - Zero Day Initiative
    
    Fix *::TransferPass0 overflowing the returning integer, the allocation part is the only point that using the returning value.
    leirocks committed Nov 12, 2017
    Configuration menu
    Copy the full SHA
    b54e0d6 View commit details
    Browse the repository at this point in the history
  6. [CVE-2017-11836] Edge - Assertion only bound check can lead to user c…

    …ontrolled allocation size and write - Individual
    
    When parsing a string template literal, we temporarily suspend updating some of the offset counters. If an attacker crafts a string template that contains multibyte characters, it is possible to overflow the minLine counter. The attacker can directly control the size of the overflow, which is then used in an allocation and offset calculation when handling a parse error. Further control can be gained by triggering a scanner capture and restore to propagate this bad counter value.
    Unfortunately this would have been caught by existing bounds checks, but they are asserts only. There are other instances of these around the codebase, but I did not see any exploits for those.
    To fix this, we manually update the minLine counter at the point where it would normally have been updated outside of a string template. I also changed the subtraction overflow asserts to be failfasts and added an assert for detecting overflow with multibyte characters. In the non-assert case, we will return 0. Other similar checks in IchMinTok and IchLimTok have also been converted.
    tcare authored and leirocks committed Nov 12, 2017
    Configuration menu
    Copy the full SHA
    79edb68 View commit details
    Browse the repository at this point in the history

Commits on Nov 14, 2017

  1. [CVE-2017-11873] Edge - Chakra: JIT: Bailouts must be generated for O…

    …P_Memset: Type Confusion - Google, Inc.
    Cellule authored and leirocks committed Nov 14, 2017
    Configuration menu
    Copy the full SHA
    a8d64f1 View commit details
    Browse the repository at this point in the history
  2. [CVE-2017-11791] Fix code patterns where accessing a local Javascript…

    …String's buffer could cause UAF.
    Atul Katti authored and leirocks committed Nov 14, 2017
    Configuration menu
    Copy the full SHA
    2c9654e View commit details
    Browse the repository at this point in the history
  3. [CVE-2017-11840] [ChakraCore]: JIT: GlobOpt::OptTagChecks must consid…

    …er IsLoopPrePass properly - Google, Inc.
    meg-gupta authored and leirocks committed Nov 14, 2017
    Configuration menu
    Copy the full SHA
    874551d View commit details
    Browse the repository at this point in the history
  4. [CVE-2017-11874] [ChakraCore]: CFG bypass due to a bug in ServerFreeA…

    …llocation - Google, Inc.
    MikeHolman authored and leirocks committed Nov 14, 2017
    Configuration menu
    Copy the full SHA
    5a4e655 View commit details
    Browse the repository at this point in the history
  5. [CVE-2017-11838] [ChakraCore] - JIT optimization vulnerability could …

    …lead to RCE - Individual
    MikeHolman authored and leirocks committed Nov 14, 2017
    Configuration menu
    Copy the full SHA
    c1bdfff View commit details
    Browse the repository at this point in the history
  6. [CVE-2017-11861] [ChakraCore] Chakra JIT - Incorrect integer overflow…

    … check in Lowerer::LowerBoundCheck - Google, Inc.
    
    Math on IntConstType should be bounded by IRType of the Opnd. In case of Lowerer::LowerBoundCheck, it ended up that the IntConstOpnd is a TyInt32 and the overflow leads to bad bound check being emitted.
    For this I added a new IntConstMath class which takes an IRType as a parameter and validates that the result can be represented by that IRType.
    MikeHolman authored and leirocks committed Nov 14, 2017
    Configuration menu
    Copy the full SHA
    85d42e7 View commit details
    Browse the repository at this point in the history
  7. [CVE-2017-11846] [ChakraCore]- Chakra Array.Shift Heap Overflow RCE -…

    … Qihoo 360
    
    OOM in the Array.Shift method have left the array in the bad state and later it got overlapped and exploited. Fixed that by making the any exception as failfast in that region
    akroshg authored and leirocks committed Nov 14, 2017
    Configuration menu
    Copy the full SHA
    3f8cc2d View commit details
    Browse the repository at this point in the history
  8. [CVE-2017-11862] [ChakraCore] Type confusion in module exports - Indi…

    …vidual
    
    Export was not taking care of destructuring nodes, leading to type confusion. Fixed that by adding support for walking those nodes.
    akroshg authored and leirocks committed Nov 14, 2017
    Configuration menu
    Copy the full SHA
    66d733b View commit details
    Browse the repository at this point in the history
  9. [CVE-2017-11871] Redeferal - Invalid pointer read during native codeg…

    …en for function objects with inline cache
    
    When trying to get inlineCaches for a ScriptFunctionWithInlineCache if the function got redefered and didn't got reparsed function body won’t be there (hence no inlineCache on function body). Check that and reset the inlineCache of ScriptFunctionWithInlineCache for such case.
    agarwal-sandeep authored and leirocks committed Nov 14, 2017
    Configuration menu
    Copy the full SHA
    9d211a4 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    dcf8c7a View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2017

  1. after fixing eval map to not be used with property string, repeatedly…

    … eval on property will be slower, especially in debug build.
    
    here empty string or single char string is backed by property string (an optimazation for using inline buffer), and these two tests
    keep eval on empty string until stack overflow, which causes timeout on debug build.
    
    changing to eval on two spaces instead of empty string to avoid the issue
    leirocks committed Nov 15, 2017
    Configuration menu
    Copy the full SHA
    c9855d9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1be2d26 View commit details
    Browse the repository at this point in the history