Skip to content

fix(matic): pin kernel to 6.17 for Falcon sensor compatibility - #1898

Merged
shunkakinoki merged 1 commit into
mainfrom
fix/falcon-kernel-pin-6.17
Jun 8, 2026
Merged

fix(matic): pin kernel to 6.17 for Falcon sensor compatibility#1898
shunkakinoki merged 1 commit into
mainfrom
fix/falcon-kernel-pin-6.17

Conversation

@shunkakinoki

@shunkakinoki shunkakinoki commented Jun 8, 2026

Copy link
Copy Markdown
Owner

Summary

  • Pin kernel from linuxPackages_6_18 to linuxPackages_6_17 to resolve CS_PREVENTION_MISSING on Falcon sensor 7.31.0-18410
  • Falcon's prevention kernel module fails to load on 6.18.33

Test plan

  • sudo nixos-rebuild switch and reboot
  • sudo systemctl status falcon-sensor shows active
  • sudo /opt/CrowdStrike/falconctl -g --rfm-state shows not in RFM

Summary by cubic

Pin the matic host kernel to linuxPackages_6_17 to keep CrowdStrike Falcon prevention active. Sensor 7.31.0-18410 fails to load its module on 6.18.33, causing CS_PREVENTION_MISSING.

  • Migration
    • Rebuild and reboot: sudo nixos-rebuild switch then reboot.
    • Verify service: sudo systemctl status falcon-sensor is active.
    • Confirm not in RFM: /opt/CrowdStrike/falconctl -g --rfm-state.

Written for commit e4aefe8. Summary will update on new commits.

Review in cubic

Falcon sensor 7.31.0-18410 reports CS_PREVENTION_MISSING on kernel
6.18.33 - the prevention kernel module fails to load. Pin to 6.17
until a newer sensor build adds 6.18 support.
@indent-zero

indent-zero Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor
PR Summary

Pins matic's kernel from linuxPackages_6_18 down to linuxPackages_6_17 because CrowdStrike Falcon sensor 7.31.0-18410 reports CS_PREVENTION_MISSING on 6.18+ (the prevention kmod fails to load), with 6.19 still RFM. The inline comment is updated to reflect the new rationale.

  • named-hosts/matic/default.nix: change boot.kernelPackages = pkgs.linuxPackages_6_18pkgs.linuxPackages_6_17 and refresh the surrounding comment.

Issues

1 potential issue found:

  • pkgs.linuxPackages_6_17 is a throw stub in the pinned nixpkgs-unstable (rev e9a7635a...) — aliases.nix points at linuxKernel.packages.linux_6_17, which is throw "linux 6.17 was removed because it reached its end of life upstream" (added 2025-12-22); nixos-rebuild switch on matic will fail at eval. Only linuxPackages_6_18 and linuxPackages_7_0 remain in this nixpkgs (6.15/6.16/6.17/6.19 are all removed); to actually pin to 6.17 you'll need an overlay/pin from an older nixpkgs or a different mitigation (e.g. stick on 6.18 with a Falcon workaround, or bump the sensor). → Autofix

CI Checks

Waiting for CI checks...


⚡ Autofix All Issues

@shunkakinoki
shunkakinoki merged commit 7c057b7 into main Jun 8, 2026
24 of 28 checks passed
@shunkakinoki
shunkakinoki deleted the fix/falcon-kernel-pin-6.17 branch June 8, 2026 09:11
@coderabbitai

coderabbitai Bot commented Jun 8, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e73880c3-d6ea-4e8a-a16c-330cbaf9a5b0

📥 Commits

Reviewing files that changed from the base of the PR and between 391dec1 and e4aefe8.

📒 Files selected for processing (1)
  • named-hosts/matic/default.nix

Disabled knowledge base sources:

  • Linear integration is disabled

You can enable these sources in your CodeRabbit configuration.


📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Updated system kernel configuration for improved hardware compatibility.

Walkthrough

The kernel version pin for the matic NixOS host is downgraded from 6.18 to 6.17 to address Falcon sensor and RFM hardware compatibility constraints. The comment describing this constraint is updated to match the new kernel selection.

Changes

Kernel Version Pin

Layer / File(s) Summary
Kernel version pin adjustment
named-hosts/matic/default.nix
The boot.kernelPackages selection is changed from pkgs.linuxPackages_6_18 to pkgs.linuxPackages_6_17, with the Falcon sensor/RFM constraint comment updated accordingly.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Possibly related PRs

  • shunkakinoki/dotfiles#905: Previous kernel pin adjustment to named-hosts/matic/default.nix that updated the pinned boot.kernelPackages version.

Poem

🐰 A kernel downgrade hops along,
From 6.18 to 6.17 strong,
Falcon sensors now align,
Hardware hearts in perfect time,
One commit makes the pinned line shine! ✨

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/falcon-kernel-pin-6.17

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@mesa-dot-dev

mesa-dot-dev Bot commented Jun 8, 2026

Copy link
Copy Markdown

Mesa Description

TL;DR

Pins the Linux kernel to version 6.17 to resolve CrowdStrike Falcon sensor compatibility issues (CS_PREVENTION_MISSING) on kernel 6.18.33.

What changed?

  • Pinned the Linux kernel package from linuxPackages_6_18 to linuxPackages_6_17 for matic.

Test plan

  • sudo nixos-rebuild switch and reboot
  • sudo systemctl status falcon-sensor shows active
  • sudo /opt/CrowdStrike/falconctl -g --rfm-state shows not in RFM

Description generated by Mesa. Update settings

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request downgrades the pinned kernel version in the Nix configuration from 6.18 to 6.17 to address compatibility issues with the CrowdStrike Falcon sensor. However, the reviewer correctly points out that Linux kernel versions 6.17 and 6.18 do not exist yet, which will cause a Nix evaluation failure. It is recommended to use a valid, existing kernel package attribute from Nixpkgs.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment on lines +55 to +56
# Pin kernel: Falcon sensor 7.31.0 lacks kernel module for 6.18+, RFM on 6.19
boot.kernelPackages = pkgs.linuxPackages_6_17;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

The Linux kernel has not yet released versions 6.17 or 6.18 (the current stable releases are in the 6.12/6.13 range). Consequently, pkgs.linuxPackages_6_17 (and the previous pkgs.linuxPackages_6_18) do not exist in Nixpkgs, which will cause a Nix evaluation failure (attribute 'linuxPackages_6_17' missing).

Please use a valid, existing kernel package attribute from Nixpkgs (such as pkgs.linuxPackages_6_6 or pkgs.linuxPackages_6_12 depending on compatibility requirements). Note that the Framework AMD AI 300 series hardware typically requires at least kernel 6.11+ for proper graphics and Wi-Fi support.

@mesa-dot-dev mesa-dot-dev Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Performed full review of 391dec1...e4aefe8

Analysis

• Fleet inconsistency risk: Intentional kernel downgrade on one host creates infrastructure heterogeneity. Without a fleet-wide audit, other hosts running the same Falcon EDR version may have latent compatibility issues that go undetected.

• Missing removal criteria and tracking: The updated comment lacks vendor reference, issue tracking, ownership, review deadline, or explicit removal trigger. This creates maintainability debt and risks the downgrade becoming permanent technical debt.

• Unvalidated security tradeoff: While kernel 6.17 improves endpoint protection, the change assumes ongoing security backports in the NixOS channel. Verify kernel 6.17's security support status before merging.

• Incomplete compatibility documentation: No Falcon-kernel compatibility matrix is documented. The fix is host-specific with unclear scope—determine if this pattern should apply to other Falcon-enabled hosts or if this indicates a systemic compatibility gap.

Tip

Help

Slash Commands:

  • /review - Request a full code review
  • /review latest - Review only changes since the last review
  • /describe - Generate PR description. This will update the PR body or issue comment depending on your configuration
  • /help - Get help with Mesa commands and configuration options

0 files reviewed | 1 comments | Edit Agent SettingsRead Docs


# Pin kernel to 6.18 for CrowdStrike Falcon compatibility (RFM on 6.19)
boot.kernelPackages = pkgs.linuxPackages_6_18;
# Pin kernel: Falcon sensor 7.31.0 lacks kernel module for 6.18+, RFM on 6.19

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Medium

The updated comment is clearer, but consider adding more tracking context to prevent this pin from becoming permanent technical debt. Suggest including: (1) a link to vendor documentation or support case, (2) an explicit review date or owner, and (3) removal criteria (e.g., "remove when Falcon ≥7.32 supports kernel 6.18+"). This ensures the workaround has a clear lifecycle and doesn't silently persist after the underlying issue is resolved.

Agent: 🏛 Architecture • Fix in Cursor • Fix in Claude

Prompt for Agent
Task: Address review feedback left on GitHub.
Repository: shunkakinoki/dotfiles#1898
File: named-hosts/matic/default.nix#L55
Action: Open this file location in your editor, inspect the highlighted code, and resolve the issue described below.

Feedback:
The updated comment is clearer, but consider adding more tracking context to prevent this pin from becoming permanent technical debt. Suggest including: (1) a link to vendor documentation or support case, (2) an explicit review date or owner, and (3) removal criteria (e.g., "remove when Falcon ≥7.32 supports kernel 6.18+"). This ensures the workaround has a clear lifecycle and doesn't silently persist after the underlying issue is resolved.

# Pin kernel to 6.18 for CrowdStrike Falcon compatibility (RFM on 6.19)
boot.kernelPackages = pkgs.linuxPackages_6_18;
# Pin kernel: Falcon sensor 7.31.0 lacks kernel module for 6.18+, RFM on 6.19
boot.kernelPackages = pkgs.linuxPackages_6_17;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

linuxPackages_6_17 no longer exists in the pinned nixpkgs — eval will throw.

pkgs here comes from hosts/nixos/default.nix (pkgs = import inputs.nixpkgs { ... }), and inputs.nixpkgs.follows = "nixpkgs-unstable" per flake.nix, locked at rev e9a7635a57597d9754eccebdfc7045e6c8600e6b.

In that rev:

  • pkgs/top-level/aliases.nix: linuxPackages_6_17 = linuxKernel.packages.linux_6_17;
  • pkgs/top-level/linux-kernels.nix: packages.linux_6_17 = throw "linux 6.17 was removed because it reached its end of life upstream"; # Added 2025-12-22 (and the underlying kernels.linux_6_17 is also a throw).

So as soon as boot.kernelPackages is forced, nixos-rebuild switch on matic will fail with linux 6.17 was removed because it has reached its end of life upstream, which defeats the purpose of the pin.

The only recent kernels available in this nixpkgs are linuxPackages_6_18 (default) and linuxPackages_7_0 (latest); 6.15/6.16/6.17/6.19 are all EOL throws.

Options:

  1. Add a separate nixpkgs input pinned to a rev that still has linuxPackages_6_17 and import the kernel from that one (e.g. via a tiny overlay or by exposing a second pkgs instance in hosts/nixos/default.nix).
  2. Stay on linuxPackages_6_18 and apply a Falcon-side mitigation (sensor build/version, prevention policy, etc.) until a sensor build supports 6.18+.
  3. Move forward to linuxPackages_7_0 if Falcon happens to work there.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 1 file

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="named-hosts/matic/default.nix">

<violation number="1" location="named-hosts/matic/default.nix:56">
P0: `pkgs.linuxPackages_6_17` was removed from nixpkgs in December 2025 (EOL upstream). This attribute now throws an evaluation error: `"linux 6.17 was removed because it reached its end of life upstream"`. Currently available LTS/stable kernel packages are `linuxPackages_6_6`, `linuxPackages_6_12`, and `linuxPackages_6_18`. Since the PR comment states Falcon sensor 7.31.0 lacks a module for 6.18+, you may need to pin to `linuxPackages_6_12` or upgrade the Falcon sensor to a version that supports 6.18.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

# Pin kernel to 6.18 for CrowdStrike Falcon compatibility (RFM on 6.19)
boot.kernelPackages = pkgs.linuxPackages_6_18;
# Pin kernel: Falcon sensor 7.31.0 lacks kernel module for 6.18+, RFM on 6.19
boot.kernelPackages = pkgs.linuxPackages_6_17;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P0: pkgs.linuxPackages_6_17 was removed from nixpkgs in December 2025 (EOL upstream). This attribute now throws an evaluation error: "linux 6.17 was removed because it reached its end of life upstream". Currently available LTS/stable kernel packages are linuxPackages_6_6, linuxPackages_6_12, and linuxPackages_6_18. Since the PR comment states Falcon sensor 7.31.0 lacks a module for 6.18+, you may need to pin to linuxPackages_6_12 or upgrade the Falcon sensor to a version that supports 6.18.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At named-hosts/matic/default.nix, line 56:

<comment>`pkgs.linuxPackages_6_17` was removed from nixpkgs in December 2025 (EOL upstream). This attribute now throws an evaluation error: `"linux 6.17 was removed because it reached its end of life upstream"`. Currently available LTS/stable kernel packages are `linuxPackages_6_6`, `linuxPackages_6_12`, and `linuxPackages_6_18`. Since the PR comment states Falcon sensor 7.31.0 lacks a module for 6.18+, you may need to pin to `linuxPackages_6_12` or upgrade the Falcon sensor to a version that supports 6.18.</comment>

<file context>
@@ -52,8 +52,8 @@ import ../../hosts/nixos {
-        # Pin kernel to 6.18 for CrowdStrike Falcon compatibility (RFM on 6.19)
-        boot.kernelPackages = pkgs.linuxPackages_6_18;
+        # Pin kernel: Falcon sensor 7.31.0 lacks kernel module for 6.18+, RFM on 6.19
+        boot.kernelPackages = pkgs.linuxPackages_6_17;
 
         # Filesystem hardening
</file context>
Suggested change
boot.kernelPackages = pkgs.linuxPackages_6_17;
boot.kernelPackages = pkgs.linuxPackages_6_12;

shunkakinoki added a commit that referenced this pull request Jun 8, 2026
Root cause: CrowdStrike cloud pushed an OTA update from build 18410 to
19004, but falcon-init.sh rsync'd the old 18410 binaries back on boot,
clobbering the update. The running 19004 sensor then failed to exec
helper binaries (falcon-fxpredict) with ENOENT, causing
CS_PREVENTION_MISSING.

The init script now compares installed vs packaged build numbers and
skips the rsync when the installed version is newer.

Also reverts the kernel pin from 6.17 back to 6.18 (#1898 was a
misdiagnosis).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant