Skip to content

Synchronise 2025.1 with upstream - #87

Merged
priteau merged 4 commits into
stackhpc/2025.1from
upstream/2025.1-2026-08-31
Aug 31, 2026
Merged

Synchronise 2025.1 with upstream#87
priteau merged 4 commits into
stackhpc/2025.1from
upstream/2025.1-2026-08-31

Conversation

@github-actions

Copy link
Copy Markdown

This PR contains a snapshot of 2025.1 from upstream stable/2025.1.

gthiemonge and others added 4 commits August 17, 2026 10:30
The tls_ciphers field on listeners and pools was not validated for
control characters, allowing injection of arbitrary HAProxy
configuration directives by embedding spaces or newlines in the cipher
string.

Add input validation at the API layer to reject cipher strings
containing characters outside the set allowed by OpenSSL cipher
strings. Also add a safety check at config generation time to detect
and replace invalid values that may already exist in the database,
falling back to the configured default ciphers.

Closes-Bug: #2162101
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Change-Id: Ia6affaafcaa8b22ec2e0c94b3c4007cccaae41ba
Signed-off-by: Gregory Thiemonge <gthiemon@redhat.com>
(cherry picked from commit cad6290)
(cherry picked from commit 8f9e00a)
(cherry picked from commit 7d94ab7)
The redirect_url and redirect_prefix fields on L7 policies were
vulnerable to HAProxy configuration injection. The rfc3986 URL
validator encodes control characters (e.g. newlines to %0A) before
validating, so they passed structural checks. However, Octavia
stores the raw unencoded input and writes it directly into the
HAProxy configuration file, allowing injection of arbitrary
directives.

Add a check in the URL validator to reject URLs containing control
characters and spaces before they reach rfc3986. Also add a safety
check at config generation time to clear invalid redirect URLs that
may already exist in the database.

Closes-Bug: #2162103
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Change-Id: I23c3ca392233c7e8223a9a00b9ee07c6f4b63615
Signed-off-by: Gregory Thiemonge <gthiemon@redhat.com>
(cherry picked from commit bad7074)
(cherry picked from commit e642536)
(cherry picked from commit 38bed8e)
The Jinja2 template for the global section used whitespace-stripping
tags ({%- ... %}) around the cpu-map block. When both cpu-map (multi
vCPU amphora) and external-check (PING health monitor) were enabled,
the stripped newline caused external-check to be appended to the
cpu-map line, producing a fatal HAProxy configuration error:
"cpu-map : 'external-check' is not a CPU range."

Remove the dash from the Jinja2 conditional tags to preserve the
newline between cpu-map and external-check directives.

Closes-Bug: #2162906

Change-Id: I306a653374c1f0fec1422334a40dd149e58c4e65
Co-Authored-By: biggrundik
Signed-off-by: Gregory Thiemonge <gthiemon@redhat.com>
(cherry picked from commit 8c0248a)
(cherry picked from commit 0e02bad)
(cherry picked from commit 7be66d5)
@github-actions
github-actions Bot requested a review from a team as a code owner August 31, 2026 06:46
@github-actions github-actions Bot added automated Automated action performed by GitHub Actions synchronisation labels Aug 31, 2026
@priteau priteau closed this Aug 31, 2026
@priteau priteau reopened this Aug 31, 2026
@priteau
priteau merged commit 7a1a40b into stackhpc/2025.1 Aug 31, 2026
4 checks passed
@priteau
priteau deleted the upstream/2025.1-2026-08-31 branch August 31, 2026 11:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automated Automated action performed by GitHub Actions synchronisation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants