header-logo
Suggest Exploit
vendor:
Windows
by:
Clément Rouault & Thomas Imbert
7.0
CVSS
HIGH
Elevation of Privilege
N/A
CWE
Product Name: Windows
Affected Version From: Windows 10 1709
Affected Version To: Windows 10 1709
Patch Exists: Unknown
Related CWE: CVE-2017-11783
CPE: N/A
Other Scripts: N/A
Platforms Tested: Windows
2017

Windows: StorSvc SvcMoveFileInheritSecurity Arbitrary File Creation EoP

The SvcMoveFileInheritSecurity RPC method in StorSvc can be used to move an arbitrary file to an arbitrary location resulting in elevation of privilege. The main problem occurs if the call to SetNamedSecurityInfo fails, in that case the code tries to move the file back to its original location, however it does reassert the impersonation. This probably makes sense because it’s possible to have a file/directory which you can open for DELETE but without the rights to create a new file in the same directory. In the case the original move would succeed but the revert would fail. However there’s a TOCTOU issue in that the original path might have been replaced with a mount point which redirects the revert to a totally arbitrary location while running at SYSTEM. The exploit controls both the name and the contents of the file so this would be a trivial privilege escalation. It’s possible to cause SetNamedSecurityInfo to fail just by adding a Deny ACE to the file for SYSTEM. This will cause the function to get ERROR_ACCESS_DENIED and the revert will take place. By placing an oplock on the original file open we can switch in a mount point and always win the race condition.

Mitigation:

N/A
Source

Exploit-DB raw data: