Skip to content

ppltasks.cpp: Breaking change - New OLE32.dll import prevents process mitigations #3257

@fbrosseau

Description

@fbrosseau

Hello,

Commit 80ebe87 introduced a new import for ole32.dll in shipped msvcp140.dll.

This is a problem for us, because this import of ole32 cascades into eventually loading user32, immediately at process startup.
This is indirectly a breaking change, because our program needs to enable process mitigations (hardening) on itself, and the system will refuse to enable anti-win32k mitigations if user32 is already loaded in the process.

Workarounds possibly exist for our specific usecase (such as not enabling the mitigation on ourselves and instead having a parent process enable them on a child at the time of CreateProcess), but it remains a breaking change - SetProcessMitigationPolicy is explicitly designed to set mitigations on yourself.

Could ole32 be delay-loaded only when ppltasks are used?

Edit: the commit I linked does mention the intent was that ole32 should be delay-loaded. This does not appear to be the case in msvcp140 14.34.31931.0 (what I currently have on latest VS) and beyond?

This is also DevCom-10217462.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingfixedSomething works now, yay!

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions