VLC's 33-Second Bug Wasn't Really VLC's Fault
Defender allegedly quarantined the player's plugin cache — a warning for anyone shipping Windows apps with generated files.
It took a celebrity complaint to surface a bug that ordinary users had been reporting for months. On August 12, game developer Jonathan Blow posted that VLC took 33 seconds to start playing an MP3 on his Windows 11 machine, and that he was defecting to Microsoft's built-in Media Player. VideoLAN's reply was blunt: a Microsoft Defender update "magically made VLC plugins cache quarantined by Windows," and "calling open source software embarrassing when it is a Windows update that broke it is quite disrespectful."
The spat is entertaining. The mechanism underneath it should worry anyone who ships desktop software on Windows.
Why a missing cache file costs 33 seconds
VLC is radically modular. Codecs, demuxers, filters, and output modules are hundreds of separate plugin DLLs loaded on demand, not compiled into one binary. To avoid probing every one of those DLLs on every launch, VLC writes a manifest — plugins.dat — at install time and trusts it thereafter.
Delete or quarantine that file and VLC doesn't crash. It quietly falls back to a full rescan: open every plugin, load it, query its capabilities, rebuild the manifest. On its own that's slow. With Defender's real-time protection intercepting every one of those DLL loads, it's brutal — which is how you get from "one missing 100KB file" to half a minute of dead air before an MP3 plays. Users on VLC's tracker and forums had been reporting 20-to-60-second startup delays well before Blow's post, and the reports consistently ended the same way: regenerate the cache, problem gone.
That part of VideoLAN's story checks out completely. The workarounds work: run the "reset preferences and cache files" shortcut VLC installs in the Start menu, launch vlc-cache-gen.exe against the plugins directory, or just reinstall. If the delay comes back, an exclusion for the VLC install folder stops Defender from touching the cache again — users found that excluding only vlc.exe wasn't enough, since it's the cache file Defender is allegedly eating.
The part that doesn't check out — yet
What's not nailed down is the attribution. VideoLAN says Defender quarantined the cache, but there's no Microsoft advisory, no KB number, no Defender detection name, and no security-intelligence version anyone can point to. Microsoft hasn't commented. Slow-launch reports on VLC's tracker predate any recent Windows 11 update, and some come from Windows 10. The cache being the proximate cause is proven; Defender being the thing that kills the cache is, so far, an allegation with strong circumstantial support and no smoking gun.
It's a plausible allegation, though, because Defender has form. Mozilla spent years chasing a bug where Defender's real-time scanning burned dramatically more CPU on Firefox than on other browsers before Microsoft finally patched its engine in 2023. Any Node developer can tell you what real-time scanning does to npm install in an unexcluded node_modules. And from a heuristic scanner's point of view, VLC's cache is exactly the kind of thing that looks wrong: an unsigned, machine-generated binary blob sitting in Program Files next to signed executables, rewritten by an installer. That's also what a payload dropper looks like. False positives here aren't an accident of Defender being bad; they're the expected output of behavioral heuristics meeting a legitimate pattern that resembles a malicious one.
The lesson isn't "Defender bad"
If you ship Windows software, this incident is a checklist, and item one isn't about Microsoft — it's about VLC. The player's actual failure was degrading silently. A missing plugin cache triggered a 33-second stall with no message, no log line a user would ever see, no "rebuilding plugin cache…" splash. Blow didn't file a bug about cache corruption because nothing told him a cache existed. If your app depends on generated state — plugin manifests, JIT caches, shader caches, bytecode caches — treat "that state vanished" as an event worth surfacing, because on Windows, something with kernel-level authority can vanish it at any time. Detect the miss, tell the user you're rebuilding, and persist the result.
Item two: think hard about where generated binary files live and what they look like. Blobs written post-install into your installation directory are maximally suspicious to AV heuristics. You can't sign a file you generate on the user's machine, but you can generate it at install time under the installer's elevated, signed context (as VLC does), keep its format boring, and — critically — verify it on load so corruption or removal degrades loudly instead of mysteriously.
Item three: be careful what you tell users to do about it. The community's durable fix — exclude the whole VLC folder from Defender — is a security anti-pattern at scale. Excluded directories are prime real estate; malware routinely enumerates Defender exclusions and drops payloads into them. Every popular app that responds to AV friction with "just exclude our folder" is spending the whole ecosystem's security budget to fix its own UX bug.
The deepest problem is the one only Microsoft can fix: opacity. When Defender quarantines a file, the owning application gets no signal, and the user frequently gets nothing they'd connect to the symptom. The result is exactly what happened here — the app wearing the blame for the platform's intervention, weeks of confused forum threads, and a public fight standing in for a bug report. Defender's judgments are effectively unappealable and invisible until something 33 seconds long forces them into view.
VideoLAN will patch around this, and probably harden cache regeneration so the stall can't recur. But the underlying dynamic — an antimalware engine silently mutating third-party application state, with no notification channel and no accountability trail — is unchanged, and it will break someone else's app next quarter. When it does, their users won't blame Defender either.
Sources & further reading
- Devs blame Windows for VLC media player bug that causes 33-second delay when playing MP3 files — tomshardware.com
- VideoLAN response to Jonathan Blow on Microsoft Defender quarantining VLC's plugin cache — x.com
- A Windows Defender bug is making VLC take 30 seconds to open an MP3 file — techspot.com
- VLC blames Windows 11 bug for slow performance, defends open source and calls out Microsoft — windowslatest.com
- Windows 11 Defender Quarantine May Delay VLC MP3 Playback — windowsforum.com
Emeka has spent over a decade tracking threat actors, vulnerability disclosures, and the evolving landscape of application security, bringing a sharp continent-spanning perspective to his reporting. He's known for translating dense CVE advisories into clear, actionable context that developers and security teams alike actually read.
Discussion 0
No comments yet
Be the first to weigh in.