Microsoft MsMpEng – Use-After-Free via Saved Callers

  • 作者: Google Security Research
    日期: 2017-05-30
  • 类别:
    平台:
  • 来源:https://www.exploit-db.com/exploits/42092/
  • Source: https://bugs.chromium.org/p/project-zero/issues/detail?id=1259
    
    In JsRuntimeState::setCaller, it saves the current caller in the JsRuntimeState object(rcx+158h in 64-bit). But the garbage collector doesn't mark this saved value. So it results in a UAF.
    
    Unlike in our test environment(Linux), it doesn't make reliable crashes on Windows. So I used another bug(#1258) to confirm the bug. If the UAF bug doesn't exist, the "crash" function will not be called(See poc.js).
    
    The password of the zip file is "calleruaf"
    
    
    Proof of Concept:
    https://gitlab.com/exploit-database/exploitdb-bin-sploits/-/raw/main/bin-sploits/42092.zip