Loaded kernel modules are pieces of code that have been added to the operating system kernel at runtime to extend its capabilities without rebooting. They can provide device drivers, filesystems or other kernel functions, and they run with kernel-level privilege once loaded.
What loaded kernel modules are for
Loaded kernel modules let an operating system extend kernel functionality after boot, which is useful for hardware support, filesystems, observability and other modular capabilities. That flexibility is also why module handling is a security boundary, because once a module is accepted by the kernel it runs with the highest local privilege.
Administrators often rely on modules because they avoid rebuilding the kernel for every driver or feature change. The trade-off is that the kernel becomes dynamically extensible, so trust in module provenance, loading policy and runtime integrity matters as much as the code itself.
Why loaded modules are security-sensitive
Loaded modules sit close to the kernel’s trusted computing base, so a malicious or tampered module can alter process behavior, hide activity, change security enforcement or weaken observability. That makes them attractive to attackers seeking persistence, privilege escalation or stealth, especially on hosts where module loading is not tightly controlled.
In practice, defenders should think of module loading as an execution decision, not just a configuration detail. A module can be legitimate yet still widen attack surface if it exposes new device interfaces, broadens privileged code paths or bypasses assumptions in host monitoring.
For persistence tradecraft and host-level abuse patterns, see the Persistence Techniques Guide, which includes kernel modules and extensions as a common hiding place for durable access.
How attackers abuse kernel modules
Attackers may try to load a malicious module directly, replace a trusted one, or exploit a signed or privileged loading path to keep code resident in the kernel. Once present, kernel code can interfere with endpoint tools, suppress telemetry, or manipulate the operating system in ways that user-mode controls cannot easily see.
This is one reason kernel modules are often discussed alongside rootkits and bootkits: the abuse pattern is less about the specific feature the module provides and more about the authority it inherits once loaded. If kernel integrity controls are weak, the module can become a durable foothold rather than a simple driver.
For the defensive lens on this class of abuse, the Rootkits and Bootkits Guide explains how kernel-level persistence and module trust failures affect host recovery.
Detection, hardening and recovery after suspicious module activity
Detection starts with knowing which modules are present, when they loaded and whether their provenance matches expected software, kernel build state and device inventory. On Linux, useful signals include module load events, unexpected kernel objects, unusual driver behavior, tampering with signed-module expectations and any gap between the running kernel and the approved hardware or software baseline.
Hardening usually centers on limiting who can load modules, enforcing signing where supported, reducing unnecessary module-loading pathways and reviewing whether a host really needs runtime extensibility. If a module is suspected of compromise, responders should treat the host as potentially kernel-compromised until they can validate integrity, because the malicious code may have altered the evidence trail itself.
For host telemetry and response patterns, the Linux Detection and Response Guide is useful for module-load monitoring and rootkit-oriented investigation.
For kernel hardening choices that affect module trust and loading policy, the Linux Kernel Hardening and sysctl Guide covers module signing, lockdown behavior and related protections.
Module policy in secure boot and autostart environments
Kernel module trust is strongest when it is tied to a broader boot-chain and host-integrity model. Secure Boot, kernel lockdown, signed-module enforcement and revocation mechanisms all help ensure that the kernel only accepts code that matches the platform’s trust policy, rather than allowing ad hoc runtime extension.
That is especially important on systems where persistence mechanisms and privilege escalation techniques overlap, because module abuse can coexist with other autostart paths and make eviction harder. A good policy therefore treats module loading as part of endpoint integrity, not merely as a driver-management task.
For the boot-chain perspective, the Linux Secure Boot and Shim Guide shows how signed modules, kernel lockdown and key custody fit together.
For the broader autostart and persistence picture, the T1547 Boot or Logon Autostart Execution Defensive Guide connects kernel modules with other autostart mechanisms defenders should baseline.
Risk and Threat Considerations
Loaded kernel modules create a high-impact trust boundary: if an attacker can introduce malicious kernel code, they can gain a level of control that is harder to inspect, harder to contain and often harder to evict than user-mode malware. The risk is greatest where module loading is permissive, signing is weak, or monitoring stops at user-space telemetry.
Failure mechanism: A hostile or tampered module executes with kernel privilege, allowing persistence, concealment, policy bypass or interference with security tooling and operating system internals.
Impact: The host may suffer stealthy compromise, loss of telemetry integrity, weakened detection, and a recovery process that requires full trust revalidation rather than ordinary malware cleanup.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
MITRE ATT&CK addresses the attack and risk surface, while NIST SP 800-53 Rev 5 and CIS Controls v8 set the governance and control requirements practitioners need to meet.
| Framework | Control / Reference | Relevance |
|---|---|---|
| MITRE ATT&CK | T1547.006 — Kernel Modules and Extensions | Kernel modules are a recognized autostart persistence mechanism. |
| Recommendation — Map suspicious module loading to T1547.006 and hunt for kernel-level persistence activity. | ||
| NIST SP 800-53 Rev 5 | SI-7 — Software, Firmware, and Information Integrity | Module trust depends on integrity validation and tamper resistance. |
| CM-7 — Least Functionality | Module loading should be limited to only the kernel capabilities the host actually needs. | |
| IA-5 — Authenticator Management | Module signing and load authorization depend on protected secrets and trust material. | |
| Recommendation — Apply SI-7 checks to verify module integrity and detect unauthorized kernel code changes. Use CM-7 to restrict unnecessary kernel modules and reduce attack surface. Protect module-signing credentials and rotate them when kernel trust is in doubt. | ||
| CIS Controls v8 | CIS-4 — Secure Configuration of Enterprise Assets and Software | Module policy is part of host hardening and secure baseline management. |
| Recommendation — Baseline module loading, signing and lockdown settings as part of secure configuration. | ||
Related resources from NHI Mgmt Group
Deepen Your Knowledge
Free weekly newsletter
Subscribe to the NHI & AI Identity Journal
The latest on NHI and Agentic AI security – articles, research, breaches, news and events every week.
Bonus 33% off our NHI Course when you subscribe.
Reviewed and updated by the NHIMG editorial team on October 29, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org