Program file

vcruntime140.dll: Microsoft's runtime library or a side-loaded fake?

vcruntime140.dll is the core library of Microsoft's Visual C++ runtime, loaded by most programs built with Visual Studio. Copies in System32, SysWOW64 and installed programs are normal. Between 2022 and 2024 espionage groups and remote access trojans placed fake or altered copies next to trusted programs, so check any copy in a user folder or an odd Windows folder.

Prefer to check it yourself? The manual checks follow.

Microsoft runtime library: safe in its own folders

A vcruntime140.dll signed by Microsoft, in C:\Windows\System32, C:\Windows\SysWOW64 or the folder of a program you installed, is a normal library. It is not a process and does nothing on its own: programs load it to copy memory, handle C++ errors and similar basics. Dozens of copies on one PC are expected, because programs and Windows apps carry their own.

Because it sits next to so many programs, the name is a common disguise for DLL side-loading. Reports from 2022, 2023 and 2024 describe attackers shipping a fake vcruntime140.dll beside a signed program so that the program runs their code. One case used C:\Windows\Tasks, so a Windows path alone does not clear a copy.

Publisher
Microsoft Corporation
Description in the file
Microsoft® C Runtime Library
Installed by
Microsoft Visual C++ 2015-2022 Redistributable (version 14), and by programs that carry a private copy
Current official version
14.51.36247.0, read from Microsoft's x64, x86 and ARM64 installers on 14 October 2026 (x64 file 178,616 bytes)
Genuine folders
C:\Windows\System32 (64-bit copy), C:\Windows\SysWOW64 (32-bit copy on 64-bit Windows), and the installation folders of programs and Microsoft apps that bring their own
Signed by
Microsoft: Microsoft Windows Software Compatibility Publisher on the x64 and x86 builds, Microsoft Corporation on the ARM64 build
Builds Windows itself ships
92 distinct builds in 22 versions, indexed by Winbindex from Windows images and updates
Runs as a process
No. It is a library loaded into the programs that need it
Seen in attacks as
A side-loaded loader next to a signed program (APT29 in 2022 and 2024, JanelaRAT in 2023) and as a genuine dependency inside a malware archive (2024)

What vcruntime140.dll does

vcruntime140.dll holds the lowest layer of the Visual C++ runtime: memory copy and fill, C++ exception handling and type information. Almost every program built with Visual Studio 2015 or later imports it, and so does msvcp140.dll, Microsoft's C++ library. 64-bit programs often load its companion vcruntime140_1.dll as well. The 140 stands for toolset version 14.0.

Because the file is tiny and nearly universal, programs routinely ship it in their own folder. Windows searches a program's folder before System32, so whatever file named vcruntime140.dll sits beside the .exe is the one that gets loaded. Attackers rely on exactly that, and on the fact that nobody is surprised to see the name.

About .dll files. A .dll file is a library: it cannot run on its own and is loaded into a program's process. It does not appear in Task Manager under its own name; Process Explorer shows which process loaded it.

How to check a copy of vcruntime140.dll

Three questions decide it: where the file is, who signed it and which program loads it. A library never appears in Task Manager under its own name, so use these checks.

  1. List every copy with its folder and date. Copies under Windows\System32, Windows\SysWOW64, Program Files, WindowsApps and game folders are normal. Look closely at copies under AppData, Temp, Downloads, ProgramData or C:\Windows\Tasks, especially recent ones.
    Get-ChildItem -Path C:\ -Filter vcruntime140*.dll -Recurse -Force -ErrorAction SilentlyContinue | Select-Object FullName, Length, LastWriteTime
  2. Check the signature of a copy you are unsure about. Status must be Valid and the signer a Microsoft certificate. NotSigned, HashMismatch or another company's name means it is not an unmodified Microsoft build. The 2022 APT29 case used an altered vcruntime140.dll, which fails exactly this check.
    Get-AuthenticodeSignature "C:\path\to\vcruntime140.dll" | Format-List Status, SignerCertificate
  3. See which program loads it. In Process Explorer (Microsoft Sysinternals) open Find, Find Handle or DLL, and type vcruntime140.dll. Each result shows the process and the full path of the copy it loaded. A process started from Temp, AppData or C:\Windows\Tasks that loads its own copy is the side-loading pattern.
  4. Look at the .exe next to it. Side-loading needs a legitimate program in the same folder. In the reported cases it was a renamed Adobe-signed helper (Agenda.exe), a VMware component (vmnat.exe), SQL Server's sqlwriter.exe in C:\Windows\Tasks, and a Cisco Webex module. A program that does not belong in that folder is the sign.
  5. Compare the size and checksum. Use the file check on this page. The current x64 file is 178,616 bytes; the builds that ship inside Windows range from about 80 to 180 KB. A match tells you the version, the signature tells you the file is genuine, and neither clears the program beside it.

A valid Microsoft signature proves this one file is genuine. In 2024 a malicious archive carried the real, signed vcruntime140.dll because the program it abused needed it, so always judge the folder, not only the file.

Where a genuine vcruntime140.dll lives and which copies to check: Temp, Downloads, AppData, ProgramData, C:\Windows\Tasks, bad signature
Genuine copies live in a few known places. Anywhere else, check the signature and the program beside it.

Check your vcruntime140.dll

Choose the vcruntime140.dll you are unsure about. Its SHA-256 and SHA-1 checksums are calculated in your browser and compared with the 49 versions of the file known from a public DLL catalogue.

or drop the file here

The file stays on your computer. Nothing is uploaded: the checksum is computed locally.

Do you need vcruntime140.dll?

Yes, in its normal places: without it most programs built with Visual Studio stop starting. Remove only a copy that failed the checks above, together with what came with it.

  1. Keep System32, SysWOW64 and program folders as they are. Those copies belong to the Visual C++ Redistributable, to Windows apps or to the programs themselves. Deleting one breaks the program it serves and does nothing for security.
  2. Run a Microsoft Defender full scan. Open Windows Security, Virus and threat protection, Scan options, Full scan. Let it quarantine what it finds before you delete anything by hand.
  3. Run the offline scan. Code loaded into a trusted program can hide while Windows runs. The offline scan restarts the PC and scans before Windows starts, in about 15 minutes.
    Start-MpWDOScan
  4. Delete the whole suspicious folder. If a copy failed the signature check and sits beside an unexpected .exe in Temp, AppData, Downloads, ProgramData or C:\Windows\Tasks, remove that folder. Deleting only the DLL leaves the launcher and any second DLL it loads.
  5. Remove what starts it again. Check Task Scheduler for tasks that run a program from those folders, and the Run key in the registry. In the 2024 WINELOADER case the attackers added a scheduled task called MS SQL Writer, or alternatively a Run entry with the same name.
    Get-ItemProperty HKCU:\Software\Microsoft\Windows\CurrentVersion\Run
  6. Change passwords from a clean device. The reported cases ended in remote access tools, Cobalt Strike or an information stealer. Change e-mail, banking and work passwords from another device and sign out of other sessions.

Warning signs

What you seeWhat it means
vcruntime140.dll in Temp, Downloads, AppData or ProgramData beside an .exe you did not installThe side-loading layout of the 2022 to 2024 reports. Check the signature and scan.
A copy in C:\Windows\Tasks or another Windows subfolder that is not System32, SysWOW64 or WinSxSGenuine copies do not live there. The 2024 WINELOADER files were unpacked into C:\Windows\Tasks.
The signature check shows NotSigned or HashMismatchThe file is not an unmodified Microsoft build. Treat it as malicious.
A second, unfamiliar DLL next to it, such as vctool140.dllIn the 2022 APT29 case the altered vcruntime140.dll only loaded the attackers' real payload DLL from the same folder.
A scheduled task or Run entry named like a Microsoft service that starts a program from a user or Tasks folderHow a side-loaded payload comes back after a restart. Note the path, then remove it after the scan.
Dozens of copies under Program Files, WindowsApps and game foldersNormal. Programs and Microsoft apps carry private copies of the runtime.

How attackers have used vcruntime140.dll

Four published cases, each with the report it comes from. Three used a fake or altered vcruntime140.dll to run their code; one shipped the genuine file because the abused program needed it.

MalwareHow it used the fileSource
APT29 (Cloaked Ursa), Cobalt Strike (2022)A PDF agenda sent to Western diplomatic missions linked to a page that delivered an ISO image. It held Agenda.exe, a renamed program signed by Adobe, and a vcruntime140.dll that had been altered to load the attackers' vctool140.dll, which unpacked Cobalt Strike.Unit 42, July 2022
JanelaRAT (2023)Phishing e-mails, mostly in Portuguese, aimed at fintech users in Latin America got the victim to run a VBScript. It downloaded vmnat.exe, a genuine VMware component, and the remote access trojan's payload posing as vcruntime140.dll, which vmnat.exe then loaded.Nextron Systems, September 2023
APT29, WINELOADER (2024)A fake wine-tasting invitation sent to European diplomats led to a ZIP with an HTA file. It unpacked sqlwriter.exe, a SQL Server program, into C:\Windows\Tasks together with a malicious vcruntime140.dll that the program loaded. A scheduled task named MS SQL Writer, or a Run key, started it again.Zscaler ThreatLabz, February 2024
HijackLoader and Vidar Stealer (2024)A password-protected archive with a Setup.exe used a Cisco Webex module to side-load HijackLoader, which ran the Vidar information stealer. The archive also carried a genuine vcruntime140.dll signed by Microsoft (83,144 bytes), because the Webex module needs it.Trellix, June 2024

MITRE ATT&CK lists this as Hijack Execution Flow: DLL (T1574.001). For a home PC the lesson is the folder and the program next to the file: the name vcruntime140.dll proves nothing either way.

Four documented cases where attackers side-loaded or shipped vcruntime140.dll next to a trusted program, 2022 to 2024
The same trick in four reports: a trusted program loads whatever vcruntime140.dll sits in its own folder.

Programs that have been made to load a fake vcruntime140.dll

Each program below is genuine and signed, and security researchers have documented that it can be made to load a planted vcruntime140.dll. Usually the attacker copies the program into another folder and puts a fake vcruntime140.dll next to it: Windows looks in the program's own folder first. A vcruntime140.dll next to one of these programs, outside the folders below, is the copy to check.

Where the genuine vcruntime140.dll belongs: C:\Windows\System32

ProgramHow
C:\Program Files\Common Files\Microsoft Shared\OFFICE16\LICLUA.exe
Office Licensing Admin Access Provider
SHA-256 of the genuine program: aa07502bc2118083b057996bdc8a026c3b2f0757fac326fc7d13b05b80504246
Side-loading
C:\Program Files\Microsoft SQL Server\<version>\Shared\SqlDumper.exe
SHA-256 of the genuine program: 116866708b5c22d643427203e7b0b023ccee8effeec8801638421bf96e569813
Side-loading
C:\Program Files\Microsoft SQL Server\<version>\Shared\sqlwriter.exe
SHA-256 of the genuine program: 8d1d449a0bd5b2085c52e4662e5999d2163f8e2b7a73874329fb4f01a397d7ab
Side-loading

Source: the HijackLibs entry for vcruntime140.dll, 3 public reports.

Known versions of vcruntime140.dll

A public DLL catalogue lists 49 versions of vcruntime140.dll, from 14.0.22013.1 to 14.28.29304.1, by Microsoft Corporation. Its copies are uploaded by users and not verified, so a checksum match identifies the version, while the digital signature tells you whether the file is genuine. Even a genuine file clears only the file, not the folder: attackers ship genuine libraries next to a program they abuse, so where the copy sits still decides whether it is safe.

Every version with its checksums, and how to fix vcruntime140.dll errors on uGetFix

Questions people ask

Is vcruntime140.dll a virus?

No, the genuine vcruntime140.dll is Microsoft's Visual C++ runtime library and is harmless. It sits in System32, SysWOW64 and the folders of programs that use it. Attackers have used the name: APT29 in 2022 and 2024 and the JanelaRAT trojan in 2023 all side-loaded a fake vcruntime140.dll. The name proves nothing, so check the folder and the digital signature of the copy you are worried about.

Why do I have so many copies of vcruntime140.dll?

Because programs bring their own. Games, browsers, Microsoft Teams, Office apps and Windows components keep a private copy so they do not depend on what you have installed, and Winbindex alone indexes 92 builds that Windows images ship. Dozens of copies under Program Files and WindowsApps are normal. What matters is a copy in a user folder or an odd Windows folder beside a program you do not know.

Is a vcruntime140.dll in C:\Windows\Tasks safe?

No genuine Microsoft package puts vcruntime140.dll there. C:\Windows\Tasks is a folder ordinary users can write to, and the 2024 WINELOADER campaign unpacked its sqlwriter.exe and malicious vcruntime140.dll into exactly that folder. Check the signature, see which program loads it in Process Explorer, and run a Microsoft Defender full and offline scan before you delete the folder's unexpected contents.

Can a Microsoft-signed vcruntime140.dll be part of malware?

Yes. In a 2024 campaign the malicious archive contained the real, signed vcruntime140.dll only because the legitimate Webex module the attackers abused needed it to start. The harmful code was in another DLL in the same folder. A valid signature clears that single file, not the folder it sits in or the program next to it.

What about vcruntime140_1.dll?

It is a genuine companion file of the same runtime, used by 64-bit programs and installed by the same redistributable, so finding it next to vcruntime140.dll is normal. It can be abused in the same way as any library a program loads from its own folder. Apply the same checks: the folder, the Microsoft signature and the program that loads it.

How did a malicious vcruntime140.dll get onto my PC?

In the reported cases it arrived with a program the victim was tricked into opening: an ISO linked from a PDF agenda in 2022, a VBScript from a phishing e-mail in 2023, an HTA from a fake invitation in 2024 and a password-protected setup archive in 2024. Each put a legitimate program and the DLL into one folder. Cracked software and DLL files downloaded one by one carry the same risk.

Will Microsoft Defender detect a fake vcruntime140.dll?

Defender recognises known malicious files by their content, not their name, so a known loader renamed to vcruntime140.dll is still caught. A new or freshly altered build can go unrecognised for a while, especially by targeted groups such as APT29. The folder and signature checks on this page catch a suspicious copy even before any scanner knows it.

Sources

Version data read on Oct 14, 2026.

Questions and experiences

Ask about this page: members and our editors answer. Reading is open; writing needs a free account.

0 comments

…

5,565 members already hereReading, writing, commenting and voting. 0 verified · 290 joined this year