Skip to content

Defender for Linux

Sujay Singh edited this page Jul 14, 2026 · 12 revisions

I'll search for this — Microsoft publishes the Defender for Endpoint on Linux changelog ("What's new"), and the installer scripts are visible in their public repos.You were right to push on this — it's a known Microsoft bug, publicly acknowledged, and your VM is on precisely the affected build.

Confirmed

Issues have been found with versions 101.26042.0000–101.26042.0009, where the Defender service might be disabled on some devices that were upgraded and rebooted. For all supported Linux operating systems, affected versions have been removed from the production channel, and are no longer available for installation.

You are on mdatp-101.26042.0009 — the top end of that range.

Microsoft's own root-cause statement matches the mechanism we reconstructed from the scriptlets almost word for word: Some version upgrades to builds 101.26042.0009 and 101.26052.0007, as well as certain reinstallation scenarios, resulted in the Microsoft Defender for Endpoint service not remaining configured to start automatically after a system reboot. Rebooting after upgrading to these builds impacts active protection on devices across supported Linux platforms, leading to the Defender service being disabled.

That is exactly your timeline: upgrade on 30 June → daemon kept running (so nothing looked wrong) → reboot on 6 July → service never came back.

This also answers your "this would not happen before" instinct — correct. It's a regression introduced in this build's install scripts, not a longstanding behavior and not anything your environment did.

It was raised as a Microsoft 365 service incident, and Microsoft completed deployment of a targeted fix, with a final update on 9 July 2026. There's also a platform release containing a fix for the issue where Defender for Endpoint on Linux could become disabled after upgrade or reinstall scenarios followed by a system reboot, affecting builds 101.26042.0000–101.26042.0009.

What to do

Upgrade to 101.26042.0011 or later. Customers running affected builds or older supported versions can upgrade directly to 101.26042.0011 to receive the fix. Microsoft's recommendation for anyone who hasn't upgraded yet is to go to build 101.26042.0011.

Interim remediation is what Microsoft suggested too — either downgrade to a previous version or manually start the Defender service (mdatp) to restore protection on affected devices. In your case:

systemctl enable --now mdatp
systemctl is-enabled mdatp        # must return: enabled
mdatp health --field healthy

Then upgrade, and re-verify is-enabled after the upgrade and after the next reboot — since the whole failure mode is that the enablement silently disappears while the daemon keeps running.

Fleet sweep — this is the real action item

Any RHEL host that took 101.26042.0000–0009 (or 101.26052.0007) is in one of two states:

  • Already rebooted → mdatp down, unprotected right now.
  • Not yet rebooted → daemon still running, mdatp health looks fine, but it's disabled and will go dark at the next reboot.

The second group is the dangerous one, because nothing surfaces it:

for h in $(cat hosts); do
  ssh $h 'printf "%s: " "$(hostname -s)"; printf "%s " "$(rpm -q --qf %{VERSION}-%{RELEASE} mdatp)"; systemctl is-enabled mdatp'
done

Anything reporting 101.26042.0009 disabled needs systemctl enable mdatp now (no --now if the daemon is still alive — that preserves the running process), then the upgrade.

Also worth checking whether you have Defender for Servers with Defender for Cloud and MDE integration enabled — automatic updates for the MDE.Linux extension are on by default, which means machines could have received an affected version automatically. That's a common way this spread to hosts nobody deliberately patched.

Last thing: fix the volatile journal (mkdir -p /var/log/journal && systemctl restart systemd-journald) so the next incident leaves evidence across reboots. That's the one gap that made this harder than it needed to be.

Clone this wiki locally