Commit Graph

5094 Commits

Author SHA1 Message Date
Leonardo Di Giovanna
1d73b2f0a9 ci: restore minimum set of required permissions
Commit #8171176 reduced workflow permissions and only allowed read
accesses to repo content. However, some workflows require write
permissions for token-id and attestations: these requirements resulted
in both master and release CIs being broken in the last month.

While still applying least privilege principle, this patch restores
the minimum set of required ones.

Signed-off-by: Leonardo Di Giovanna <leonardodigiovanna1@gmail.com>
2026-04-01 11:28:39 +02:00
Leonardo Di Giovanna
8207e20e46 feat(userspace/falco): add support for kernel iterator metrics
Signed-off-by: Leonardo Di Giovanna <leonardodigiovanna1@gmail.com>
2026-04-01 09:42:39 +02:00
irozzo-1A
07d627a8e6 docs: add work partitioning section
Signed-off-by: irozzo-1A <iacopo@sysdig.com>
2026-03-18 11:44:39 +01:00
irozzo-1A
4f22143c6e docs: high-level Falco multi-threaded architecture
Signed-off-by: irozzo-1A <iacopo@sysdig.com>
2026-03-18 11:44:39 +01:00
irozzo-1A
9f767e409e docs: multi-thread falco high-level design proposal
Signed-off-by: irozzo-1A <iacopo@sysdig.com>
2026-03-18 11:44:39 +01:00
Paolo Polidori
e0c810c9d2 fix(engine): address PR review comments
- Move output_format.h from userspace/falco/ to userspace/engine/ to
  fix reverse dependency (engine layer was including from app layer);
  update all include paths accordingly
- Add SPDX-License-Identifier to output_format.h
- Remove leftover m_first_event_in_category field from MarkdownFormatter
  (was set in begin_category() but never read)
- Emit deprecation warning to stderr when --markdown is used

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Signed-off-by: Paolo Polidori <paolo.polidori@sysdig.com>
2026-03-17 14:16:34 +01:00
Paolo Polidori
8c6ab2387f fix(engine) license date
Signed-off-by: Paolo Polidori <polyp91@gmail.com>

Signed-off-by: Paolo Polidori <paolo.polidori@sysdig.com>
2026-03-17 14:16:34 +01:00
Paolo Polidori
e1f16c0464 feat: add JSON as output format for --list/--list_events
- Added support of the JSON format
- Refactored field and events formatting using the strategy pattern

Signed-off-by: Paolo Polidori <paolo.polidori@sysdig.com>
2026-03-17 14:16:34 +01:00
Leonardo Grasso
bb404863b4 chore(unit_tests): test validation for unknown-key in rules
Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
2026-03-17 12:03:34 +01:00
Leonardo Grasso
7994460666 new(userspace/engine): validation for unknown-key in rules
Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
2026-03-17 12:03:34 +01:00
Leonardo Grasso
9aed480082 fix(userspace/engine): JSON Schema fixes
Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
2026-03-17 12:03:34 +01:00
Roberto Scolaro
61be9ec4dd fix(cmake): configure falco.yaml from current src dir
Signed-off-by: Roberto Scolaro <roberto.scolaro21@gmail.com>
2026-03-16 10:55:29 +01:00
Adnan Ali
6d20070f27 fix(metrics): Prevent race condition crash during metrics collection on shutdown
This fixes a segmentation fault that occurs when /metrics endpoint is accessed during Falco shutdown. The crash happens as the webserver continues serving /metrics requests after outputs and inspectors have been destroyed.

Changes:

- Create cleanup_outputs action to handle outputs destruction
- Create print_stats action for stats printing
- Reorder teardown steps to stop webserver before destorying outputs
- Move outputs.reset() from process_events to cleanup_outputs()

This eliminates the race condition by ensuring the webserver stops accepting requests before any subsystems are destroyed. The synchronisation behaviour of output.reset() block till queue flushed is preserved.

Signed-off-by: Adnan Ali <adduali1310@hotmail.com>
2026-03-16 10:46:29 +01:00
Leonardo Grasso
59dae06e13 update(engine): bump engine version to 0.60.0
Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
2026-03-12 17:12:07 +01:00
Leonardo Grasso
426fe3dabc fix(cmake): move cxxopts include before falcosecurity-libs
Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
2026-03-12 17:12:07 +01:00
poiana
cf0d2eb15a update(cmake): update libs and driver to latest master.
Signed-off-by: Leonardo Grasso <me@leonardograsso.com>

Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
2026-03-12 17:12:07 +01:00
irozzo-1A
8989870d26 fix(userspace/falco): fix watchdog race condition on timeout exchange
The watchdog thread and stop() consume the timeout pointer with
m_timeout.exchange(nullptr, ...). That exchange was using
memory_order_release. The load part of the RMW needs acquire
semantics so it synchronizes-with the release store in
set_timeout()/cancel_timeout(); otherwise the consumer can see
the pointer value without seeing the writes that initialized
the timeout_data and payload (data race).
Use memory_order_acq_rel on the consumer exchanges so the load
synchronizes-with the producer and the pointed-to memory is
visible before use.

Signed-off-by: irozzo-1A <iacopo@sysdig.com>
2026-03-12 13:21:07 +01:00
dependabot[bot]
526dc9afef chore(deps): Bump submodules/falcosecurity-rules
Bumps [submodules/falcosecurity-rules](https://github.com/falcosecurity/rules) from `21afd80` to `e63b765`.
- [Release notes](https://github.com/falcosecurity/rules/releases)
- [Commits](21afd80cec...e63b765e23)

---
updated-dependencies:
- dependency-name: submodules/falcosecurity-rules
  dependency-version: e63b765e23f7f9beacad2d36952658874570243f
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-12 12:32:06 +01:00
Gagan H R
8171176e31 ci: add top-level permissions to workflow files
Add `permissions: contents: read` at the workflow level for
bump-libs.yaml, format.yaml, master.yaml, and release.yaml to follow
the principle of least privilege. Job-level permissions that require
elevated access will override this as expected.

Signed-off-by: Gagan H R <hrgagan4@gmail.com>
2026-03-11 18:05:08 +01:00
irozzo-1A
6fdb686b7a chore(falco): fix warning in webserver.h
/workspaces/falco/userspace/falco/app/../webserver.h:36:2: warning: explicitly defaulted move constructor is implicitly deleted [-Wdefaulted-function-deleted]
   36 |         falco_webserver(falco_webserver&&) = default;
      |         ^
/workspaces/falco/userspace/falco/app/../webserver.h:49:20: note: move constructor of 'falco_webserver' is implicitly deleted because field 'm_failed' has a deleted move constructor
   49 |         std::atomic<bool> m_failed;
      |                           ^
/usr/bin/../lib/gcc/aarch64-linux-gnu/13/../../../../include/c++/13/atomic:72:5: note: 'atomic' has been explicitly marked deleted here
   72 |     atomic(const atomic&) = delete;
      |     ^
/workspaces/falco/userspace/falco/app/../webserver.h:36:39: note: replace 'default' with 'delete'
   36 |         falco_webserver(falco_webserver&&) = default;
      |                                              ^~~~~~~
      |                                              delete
/workspaces/falco/userspace/falco/app/../webserver.h:37:19: warning: explicitly defaulted move assignment operator is implicitly deleted [-Wdefaulted-function-deleted]
   37 |         falco_webserver& operator=(falco_webserver&&) = default;
      |                          ^
/workspaces/falco/userspace/falco/app/../webserver.h:49:20: note: move assignment operator of 'falco_webserver' is implicitly deleted because field 'm_failed' has a deleted move assignment operator
   49 |         std::atomic<bool> m_failed;
      |                           ^
/usr/bin/../lib/gcc/aarch64-linux-gnu/13/../../../../include/c++/13/atomic:73:13: note: 'operator=' has been explicitly marked deleted here
   73 |     atomic& operator=(const atomic&) = delete;
      |             ^
/workspaces/falco/userspace/falco/app/../webserver.h:37:50: note: replace 'default' with 'delete'
   37 |         falco_webserver& operator=(falco_webserver&&) = default;
      |                                                         ^~~~~~~
      |                                                         delete

Signed-off-by: irozzo-1A <iacopo@sysdig.com>
2026-03-11 12:33:06 +01:00
irozzo-1A
7554de160a fix(engine): add unknown filter match in err_is_unknown_type_or_field
After PR https://github.com/falcosecurity/libs/pull/2776 a new error
message has been introduced for unknown types.

Signed-off-by: irozzo-1A <iacopo@sysdig.com>
2026-03-11 12:05:07 +01:00
irozzo-1A
31e92b88bc fix(cmake): protect from redefine cxxopts target
Signed-off-by: irozzo-1A <iacopo@sysdig.com>
2026-03-11 12:05:07 +01:00
irozzo-1A
17ebbecec9 feat(userspace/engine): update libs ref and adapt to transformer AST changes
- Bump default falcosecurity/libs to latest main (8f6b914) with
  transformer_list_expr and field_transformer_expr (values) support
- Add visit(transformer_list_expr*) to filter_details_resolver and
  filter_macro_resolver visitors
- Fix field_transformer_expr handling to use e->values instead of e->value

Signed-off-by: irozzo-1A <iacopo@sysdig.com>
2026-03-11 12:05:07 +01:00
Maxime Grenu
e816587a8d docs: fix anchor trailing hyphen for emoji heading
The heading "Add DCO signed-off to your commits 🔏" generates a GitHub
anchor with a trailing hyphen due to the emoji. Fix both link references
to use the correct anchor.

Signed-off-by: Maxime Grenu <maxime.grenu@gmail.com>
2026-03-02 18:26:05 +01:00
Maxime Grenu
12b8bf8522 docs: fix Contributing.md outdated references
- Replace incorrect `/libs` path reference with 'the root directory
  of the project'; this file is for the falco repo, not falcosecurity/libs.
- Fix the DCO section: replace `libs` repository mention with `falco`
  so it accurately refers to this repository.
- Fix broken markdown hyperlink: `[dedicated section]((#anchor))` had
  double opening parentheses causing the link to render incorrectly;
  corrected to `[dedicated section](#anchor)`.

Signed-off-by: Maxime Grenu <maxime.grenu@gmail.com>
2026-03-02 18:26:05 +01:00
dependabot[bot]
a43e1ac7f3 chore(deps): Bump submodules/falcosecurity-rules
Bumps [submodules/falcosecurity-rules](https://github.com/falcosecurity/rules) from `6f43d74` to `21afd80`.
- [Release notes](https://github.com/falcosecurity/rules/releases)
- [Commits](6f43d7492d...21afd80cec)

---
updated-dependencies:
- dependency-name: submodules/falcosecurity-rules
  dependency-version: 21afd80cec7a92f6a87a61fb1a172aa969e2daea
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-27 13:34:43 +01:00
Paolo Polidori
865284dffe fix(webserver): fix inconsistent include directives trying to compile the webserver on Apple
Signed-off-by: Paolo Polidori <paolo.polidori@sysdig.com>
2026-02-19 11:54:55 +01:00
dependabot[bot]
514470abd1 chore(deps): Bump submodules/falcosecurity-rules
Bumps [submodules/falcosecurity-rules](https://github.com/falcosecurity/rules) from `72cc635` to `6f43d74`.
- [Release notes](https://github.com/falcosecurity/rules/releases)
- [Commits](72cc635100...6f43d7492d)

---
updated-dependencies:
- dependency-name: submodules/falcosecurity-rules
  dependency-version: 6f43d7492d9543b1faa9d8347a5692b21082272f
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-17 09:55:40 +01:00
irozzo-1A
b511b54d21 chore(build): add support for gperftools CPU profiler
Add comprehensive support for gperftools CPU profiler to enable performance
profiling of Falco. This commit introduces:

- New CMake options:
  * USE_GPERFTOOLS: Enable gperftools CPU profiler support (default: OFF)
  * USE_FRAME_POINTER: Enable frame pointers for accurate profiling (default: OFF)

- Automatic frame pointer enabling: When USE_GPERFTOOLS is enabled, frame
  pointers are automatically enabled to ensure accurate stack traces in
  profiling output.

- Support for both system and bundled gperftools:
  * System gperftools: Automatically detected via find_path/find_library
  * Bundled gperftools: Built from source (version 2.15) when
    USE_BUNDLED_GPERFTOOLS is enabled

- Enhanced stack trace support: Automatically detects and enables libunwind
  when available for better stack traces, falling back to frame pointers
  otherwise.

- Proper library linking: Uses --whole-archive linker flags to ensure
  profiler initialization code is linked even when ProfilerStart() is not
  called directly, enabling CPUPROFILE environment variable support.

- Compile-time detection: Adds HAS_GPERFTOOLS preprocessor definition
  for conditional compilation.

The profiler can be activated at runtime by setting the CPUPROFILE
environment variable to a file path where profiling data should be written.

Usage:
  cmake -DUSE_GPERFTOOLS=ON ..
  make
  CPUPROFILE=/tmp/falco.prof ./falco

Signed-off-by: irozzo-1A <iacopo@sysdig.com>
2026-02-12 11:32:11 +01:00
Leonardo Di Giovanna
43aaffc4e0 chore!: drop gRPC output and server support
Falco 0.43.0 deprecated the gRPC output and server supports. Drop
their supports as well as any reference to them.

BREAKING CHANGE: drop gRPC output and server support

Signed-off-by: Leonardo Di Giovanna <leonardodigiovanna1@gmail.com>
2026-02-05 17:21:54 +01:00
Leonardo Di Giovanna
33a2ce53fd chore!: drop gVisor engine support
Falco 0.43.0 deprecated the gVisor engine support. Drop its support as
well as any reference to it.

BREAKING CHANGE: drop gVisor engine support

Signed-off-by: Leonardo Di Giovanna <leonardodigiovanna1@gmail.com>
2026-02-05 15:29:54 +01:00
Leonardo Di Giovanna
387499546f chore!: drop legacy BPF probe
Falco 0.43.0 deprecated the legacy eBPF probe. Drop it as well as any
reference to it.

BREAKING CHANGE: drop legacy eBPF probe

Signed-off-by: Leonardo Di Giovanna <leonardodigiovanna1@gmail.com>
2026-02-05 13:15:54 +01:00
Leonardo Grasso
ae9c2fbbc3 revert: "chore(.github): put back temporary action for GPG key roation"
This reverts commit abcc058605.

Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
2026-01-29 09:25:20 +01:00
Leonardo Di Giovanna
89975f1af8 docs: update CHANGELOG.md to Falco 0.43.0
Signed-off-by: Leonardo Di Giovanna <leonardodigiovanna1@gmail.com>
2026-01-28 16:52:14 +01:00
Leonardo Di Giovanna
b9b526e493 chore(cmake): bump falcoctl dependency version to 0.12.2
Signed-off-by: Leonardo Di Giovanna <leonardodigiovanna1@gmail.com>
2026-01-28 12:14:12 +01:00
Leonardo Grasso
cca5356911 fix(userspace)!: show source config path only in debug builds
Starting from Falco 0.40, the `falco --help` output incorrectly showed
  the source config path (e.g., /home/runner/work/falco/falco/falco.yaml)
  in release packages. This path was intended only for local development.

  The issue was introduced when RelWithDebInfo build type support was
  added (commit 6bf33ffd). The existing code checked for BUILD_TYPE_RELEASE
  to determine release behavior, but RelWithDebInfo builds defined
  BUILD_TYPE_RELWITHDEBINFO instead, causing them to fall into the
  debug code path.

  This fix introduces BUILD_TYPE_DEBUG and changes the conditionals to
  enable dev features only when CMAKE_BUILD_TYPE is explicitly "debug".
  Both Release and RelWithDebInfo builds now correctly show only
  /etc/falco/falco.yaml.

  Fixes the regression introduced in 0.40.0

Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
2026-01-23 15:39:47 +01:00
Leonardo Di Giovanna
d0b6c138f9 docs: add deprecation notice for legacy eBPF in pkg install dialog
DEPRECATION NOTICE: add deprecation notice for legacy eBPF in pkg
  install dialog

Signed-off-by: Leonardo Di Giovanna <leonardodigiovanna1@gmail.com>
2026-01-23 14:14:47 +01:00
Leonardo Di Giovanna
bb8f6fa136 chore(userspace): deprecate --gvisor-generate-config CLI option
DEPRECATION NOTICE: deprecate `--gvisor-generate-config` CLI option

Signed-off-by: Leonardo Di Giovanna <leonardodigiovanna1@gmail.com>
2026-01-23 12:08:46 +01:00
Leonardo Di Giovanna
9d55804371 chore(cmake): bump container plugin version to 0.6.1
Signed-off-by: Leonardo Di Giovanna <leonardodigiovanna1@gmail.com>
2026-01-22 10:58:39 +01:00
Leonardo Di Giovanna
5baf13b80a chore(cmake): bump falcoctl dependency version to 0.12.1
Signed-off-by: Leonardo Di Giovanna <leonardodigiovanna1@gmail.com>
2026-01-22 10:57:38 +01:00
Leonardo Grasso
69581443ae fix(userspace/engine): missing closing quote in deprecated field warning
Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
2026-01-21 16:16:32 +01:00
cannarelladev
9324799b1a fix: add update_repo to publish-rpm script
Signed-off-by: cannarelladev <cannarella.dev@gmail.com>
2026-01-19 18:58:18 +01:00
irozzo-1A
aad403f9d3 docs(OWNERS): add irozzo-1A(Iacopo Rozzo) as reviewer
Signed-off-by: irozzo-1A <iacopo@sysdig.com>
2026-01-19 18:16:18 +01:00
Leonardo Grasso
929b27b897 fix: consolidate RPM signing logic into publish-rpm
Co-authored-by: irozzo-1A <iacopo@sysdig.com>
Co-authored-by: Leonardo Di Giovanna <leonardodigiovanna1@gmail.com>
Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
2026-01-19 16:36:17 +01:00
irozzo-1A
abcc058605 chore(.github): put back temporary action for GPG key roation
This reverts commit c93a6a8bd9.

Signed-off-by: irozzo-1A <iacopo@sysdig.com>
2026-01-19 16:36:17 +01:00
Leonardo Di Giovanna
40fda7a874 docs(proposals): specify version enforcing the deprecation
Signed-off-by: Leonardo Di Giovanna <leonardodigiovanna1@gmail.com>
2026-01-14 16:42:58 +01:00
Leonardo Di Giovanna
da8644b73e chore(cmake): bump libs/drivers to 0.23.1/9.1.0+driver
The previously used driver version was already the `9.1.0+driver`:
simply replace the commit SHA with the release name.

Signed-off-by: Leonardo Di Giovanna <leonardodigiovanna1@gmail.com>
0.43.0-rc1
2026-01-14 14:27:57 +01:00
Leonardo Grasso
c93a6a8bd9 revert: chore(.github): temporary action for GPG key roation
This reverts commit edcb7a5dca.

Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
2026-01-14 12:05:56 +01:00
irozzo-1A
c72a8151e5 chore(cmake): bump container plugin version to 0.6.0
Signed-off-by: irozzo-1A <iacopo@sysdig.com>
2026-01-14 11:19:56 +01:00
Leonardo Grasso
edcb7a5dca chore(.github): temporary action for GPG key roation
Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
2026-01-12 17:10:44 +01:00