Skip to content

update(cmake): bump bundled OpenSSL to 3.5.9 LTS - #4053

Merged
poiana merged 4 commits into
falcosecurity:masterfrom
leogr:fix/openssl-3.5.9
Oct 27, 2026
Merged

poiana merged 4 commits into
falcosecurity:masterfrom
leogr:fix/openssl-3.5.9

Conversation

@leogr

@leogr leogr commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

What type of PR is this?

/kind cleanup

Any specific area of the project related to this PR?

/area build

What this PR does / why we need it:

Updates bundled OpenSSL from 3.1.4 to 3.5.9 LTS for Falco 0.45.2. Falco embeds this library, so refreshing the container's OpenSSL package does not update the copy used by Falco.

The source archive SHA-256 matches both the upstream checksum file and the GitHub release asset digest. The OpenSSL change updates the archive URL and checksum, keeping the existing build arguments.

The package build also needs the amd64 release runner pinned to ubuntu-24.04. On ubuntu-latest, Ubuntu 26.04's rpm package conflicts with the imported systemd-rpm-macros package over sysusers.attr, failing before checkout. This restores the runner version where the same package setup passed.

The package test workflow installs libasan8, matching the sanitizer binary's verified libasan.so.8 dependency. The previous libasan5 package is unavailable on the current runner and prevented those tests from starting.

The amd64 event-generator job also uses ubuntu-24.04. On Ubuntu 26.04, the pinned action cannot hard-link its executable from RUNNER_TEMP into /tmp, failing with invalid cross-device link before generating events. The same action previously passed all 636 tests for each driver on Ubuntu 24.04. Sanitizer tests stay on their current runner to match the sanitizer build.

Special notes for your reviewer:

These commits are also carried in the cumulative release sync:

Validation:

  • Downloaded and verified the official source archive.
  • cmake-format 0.6.13 and git diff --check pass.
  • Static OpenSSL 3.5.9 and curl 8.7.1 built on macOS arm64. An integration harness using httplib 0.23.1 passed 11 TLS checks: TLS 1.2/1.3, custom CA trust, wrong CA/hostname rejection, and mutual TLS acceptance/rejection.
  • The existing eMudhra regression checker passed all 49 certificate assertions with the new OpenSSL and the fixed CA bundle/directory.
  • All six GitHub Actions workflows pass at 334b94f9a901b50ad243643f531bd97c477dd131, including Linux package builds on both architectures, sanitizer package tests, event-generator tests with both drivers, and CodeQL.
  • Package builds verify bundled OpenSSL 3.5.9; development unit-test jobs use system dependencies.

Completed CI:

N.B. This adopts OpenSSL's default TLS security level 2. RSA/DSA/DH keys below 2048 bits and EC keys below 224 bits are rejected. Deployments using weaker certificates or DH parameters must replace them, including custom HTTPS output and webserver/mTLS configurations. The native tests use RSA 2048 and SHA-256 without lowering the security level.

Upstream release:

Does this PR introduce a user-facing change?:

update(cmake): bump bundled OpenSSL to 3.5.9 LTS, adopting TLS security level 2 (RSA/DSA/DH keys must be at least 2048 bits and EC keys at least 224 bits)

Move the bundled TLS library from OpenSSL 3.1.4 to the supported 3.5 LTS
series. Update the source archive checksum to the verified upstream value.

Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
Ubuntu 26.04's rpm package owns sysusers.attr, which conflicts with the
systemd-rpm-macros package installed through Alien. This fails before
checkout and prevents release packages from building. Restore the runner
version on which the same package setup succeeds.

Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
@leogr
leogr marked this pull request as ready for review October 27, 2026 11:47
@leogr
leogr requested a review from sgaist October 27, 2026 11:47
leogr added 2 commits October 27, 2026 12:57
The sanitizer package links against libasan.so.8. Install libasan8 instead
of libasan5, which is unavailable on the current Ubuntu runner and prevents
the package tests from starting.

Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
The pinned event-generator creates child executables by hard-linking its
binary from RUNNER_TEMP into /tmp. Ubuntu 26.04 runners place these paths
on different filesystems, causing test setup to fail with EXDEV.

Restore the Ubuntu 24.04 runner on which both driver suites passed. Keep
the sanitizer tests on their current runner to match the sanitizer build.

Signed-off-by: Leonardo Grasso <me@leonardograsso.com>
@poiana poiana added size/S and removed size/XS labels Oct 27, 2026
@github-project-automation github-project-automation Bot moved this from Todo to In progress in Falco Roadmap Oct 27, 2026
@poiana poiana added the lgtm label Oct 27, 2026
@poiana

poiana commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: leogr, sgaist

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@poiana

poiana commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

LGTM label has been added.

DetailsGit tree hash: 75bce02f95da1425a35d8ba9b2444b7e59beb153

@poiana
poiana merged commit faf6db0 into falcosecurity:master Oct 27, 2026
36 checks passed
@github-project-automation github-project-automation Bot moved this from In progress to Done in Falco Roadmap Oct 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants