Skip to content

ROX-29474: Update Falco to 0.23.1#2976

Open
Stringy wants to merge 1 commit intomasterfrom
giles/claude-update-falco-skill
Open

ROX-29474: Update Falco to 0.23.1#2976
Stringy wants to merge 1 commit intomasterfrom
giles/claude-update-falco-skill

Conversation

@Stringy
Copy link
Collaborator

@Stringy Stringy commented Feb 25, 2026

Description

Falco PR: stackrox/falcosecurity-libs#97

The changes in this PR relate to the uplift of Falco to the latest tagged version, 0.23.1. This is a significant upgrade, jumping from 0.18.1 up to this latest version and contains the following notable changes to Collector:

  • Added TOCTOU BPF programs to exclude list (we are not interested in these syscalls and they caused verifier issues)
  • Moved Container ID parsing into Collector
    • Perhaps the most significant change in upstream Falco is the container plugin, which is a Go shared library that must be loaded at runtime and dynamically populates fields for each process. The complexity of such a plugin in terms of building, loading, and utilising it was deemed a little too much for the small amount of data we actually need from it. As a result, we don't use the plugin at all.
    • One side effect of this is we don't have k8s namespaces automatically populated, which means in the future if/when we want namespace-level runtime configuration we may have to revisit these changes and either implement this in Collector or resign ourselves to using the container plugin.
  • The container filter has been changed from "container.id != 'host'" to "proc.pid != proc.vpid" - these are functionally identical but the former is not usable because we're not using the container plugin. Strictly speaking the new filter does not work on (very) old kernels e.g. RHEL 7, but we do not need to support them.
  • Numerous API changes to interact correctly with the new Falco version.

This work was performed primarily by Claude, with oversight from me. This was something of an experiment and so I got Claude to do as much of the work as possible, with my role being that of the driver; steering Claude when it got muddled or hyper focused on the wrong fix.

The update and rebase itself was relatively straight forward, resulting in new locally-built and locally-verified builds in just a couple of hours (i.e. builds that built and ran locally, passing the integration tests on my Fedora 42 x86 machine.) The bottle neck became the CI and getting that work fed back into Claude to perform the diagnostics and fixes.

As a result, I have added two Claude skills as part of this PR which allow Claude to (1) perform Falco updates in the future and (2) inspect the state of CI and investigate test failures or BPF verifiers issues.

Checklist

  • Investigated and inspected CI test results
  • Updated documentation accordingly

Automated testing

  • Added unit tests
  • Added integration tests
  • Added regression tests

If any of these don't apply, please comment below.

Testing Performed

Built and tested locally, all unit & integration tests passing. CI handles the remainder of our test matrix.

@Stringy Stringy added the run-multiarch-builds Run steps for non-x86 archs. label Feb 26, 2026
@codecov-commenter
Copy link

codecov-commenter commented Feb 26, 2026

Codecov Report

❌ Patch coverage is 10.76923% with 58 lines in your changes missing coverage. Please review.
✅ Project coverage is 27.41%. Comparing base (ed07f13) to head (e647cac).
⚠️ Report is 31 commits behind head on master.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
collector/lib/system-inspector/Service.cpp 0.00% 2 Missing and 10 partials ⚠️
collector/lib/NetworkSignalHandler.cpp 0.00% 11 Missing ⚠️
collector/lib/ProcessSignalFormatter.cpp 15.38% 7 Missing and 4 partials ⚠️
collector/lib/Utility.cpp 35.71% 5 Missing and 4 partials ⚠️
collector/lib/ContainerMetadata.cpp 0.00% 5 Missing ⚠️
collector/lib/Process.cpp 0.00% 3 Missing ⚠️
collector/lib/system-inspector/EventExtractor.cpp 0.00% 2 Missing and 1 partial ⚠️
collector/lib/system-inspector/EventExtractor.h 0.00% 0 Missing and 2 partials ⚠️
collector/lib/CollectorService.cpp 0.00% 1 Missing ⚠️
collector/lib/ContainerInfoInspector.cpp 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #2976      +/-   ##
==========================================
+ Coverage   27.38%   27.41%   +0.03%     
==========================================
  Files          95       94       -1     
  Lines        5427     5420       -7     
  Branches     2548     2550       +2     
==========================================
  Hits         1486     1486              
+ Misses       3214     3204      -10     
- Partials      727      730       +3     
Flag Coverage Δ
collector-unit-tests 27.41% <10.76%> (+0.03%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@Stringy Stringy force-pushed the giles/claude-update-falco-skill branch 4 times, most recently from e14ad52 to 584f9ba Compare March 13, 2026 14:53
  - Update falcosecurity-libs from 0.18.1 to 0.23.1
  - Fix BPF verifier failures on older kernels (4.18)
  - Fix clang-format lint in Utility.cpp
  - Skip fd-based execs (/dev/fd/N) in exepath fallback
  - Disable TOCTOU 64-bit progs for missing syscalls
  - Remove container plugin, use built-in container ID lookups
  - Add analyze-ci Claude skill
  - Add update-falco-libs Claude skill

  Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@Stringy Stringy force-pushed the giles/claude-update-falco-skill branch from c2385e2 to e647cac Compare March 16, 2026 08:20
@Stringy Stringy changed the title Adds Claude skill for updatig the falco fork ROX-29474: Update Falco to 0.23.1 Mar 16, 2026
@Stringy Stringy marked this pull request as ready for review March 16, 2026 08:53
@Stringy Stringy requested a review from a team as a code owner March 16, 2026 08:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

run-multiarch-builds Run steps for non-x86 archs.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants