Compare commits

...

9 Commits

Author SHA1 Message Date
smiyc
2b8c2f7de6
Merge 90dbe03a74 into 376e178ab5 2026-03-27 14:20:55 -07:00
renovate[bot]
376e178ab5
fix(deps): update module google.golang.org/grpc to v1.79.3 [security] (#819)
Some checks failed
release-please / release-please (push) Failing after 5s
This PR contains the following updates:

| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [google.golang.org/grpc](https://redirect.github.com/grpc/grpc-go) |
`v1.79.2` → `v1.79.3` |
![age](https://developer.mend.io/api/mc/badges/age/go/google.golang.org%2fgrpc/v1.79.3?slim=true)
|
![confidence](https://developer.mend.io/api/mc/badges/confidence/go/google.golang.org%2fgrpc/v1.79.2/v1.79.3?slim=true)
|

### GitHub Vulnerability Alerts

####
[CVE-2026-33186](https://redirect.github.com/grpc/grpc-go/security/advisories/GHSA-p77j-4mvh-x3m3)

### Impact
_What kind of vulnerability is it? Who is impacted?_

It is an **Authorization Bypass** resulting from **Improper Input
Validation** of the HTTP/2 `:path` pseudo-header.

The gRPC-Go server was too lenient in its routing logic, accepting
requests where the `:path` omitted the mandatory leading slash (e.g.,
`Service/Method` instead of `/Service/Method`). While the server
successfully routed these requests to the correct handler, authorization
interceptors (including the official `grpc/authz` package) evaluated the
raw, non-canonical path string. Consequently, "deny" rules defined using
canonical paths (starting with `/`) failed to match the incoming
request, allowing it to bypass the policy if a fallback "allow" rule was
present.

**Who is impacted?**
This affects gRPC-Go servers that meet both of the following criteria:
1. They use path-based authorization interceptors, such as the official
RBAC implementation in `google.golang.org/grpc/authz` or custom
interceptors relying on `info.FullMethod` or `grpc.Method(ctx)`.
2. Their security policy contains specific "deny" rules for canonical
paths but allows other requests by default (a fallback "allow" rule).

The vulnerability is exploitable by an attacker who can send raw HTTP/2
frames with malformed `:path` headers directly to the gRPC server.

### Patches
_Has the problem been patched? What versions should users upgrade to?_

Yes, the issue has been patched. The fix ensures that any request with a
`:path` that does not start with a leading slash is immediately rejected
with a `codes.Unimplemented` error, preventing it from reaching
authorization interceptors or handlers with a non-canonical path string.

Users should upgrade to the following versions (or newer):
* **v1.79.3**
* The latest **master** branch.

It is recommended that all users employing path-based authorization
(especially `grpc/authz`) upgrade as soon as the patch is available in a
tagged release.

### Workarounds
_Is there a way for users to fix or remediate the vulnerability without
upgrading?_

While upgrading is the most secure and recommended path, users can
mitigate the vulnerability using one of the following methods:

#### 1. Use a Validating Interceptor (Recommended Mitigation)
Add an "outermost" interceptor to your server that validates the path
before any other authorization logic runs:

```go
func pathValidationInterceptor(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (any, error) {
    if info.FullMethod == "" || info.FullMethod[0] != '/' {
        return nil, status.Errorf(codes.Unimplemented, "malformed method name")
    }   
    return handler(ctx, req)
}

// Ensure this is the FIRST interceptor in your chain
s := grpc.NewServer(
    grpc.ChainUnaryInterceptor(pathValidationInterceptor, authzInterceptor),
)
```

#### 2. Infrastructure-Level Normalization
If your gRPC server is behind a reverse proxy or load balancer (such as
Envoy, NGINX, or an L7 Cloud Load Balancer), ensure it is configured to
enforce strict HTTP/2 compliance for pseudo-headers and reject or
normalize requests where the `:path` header does not start with a
leading slash.

#### 3. Policy Hardening
Switch to a "default deny" posture in your authorization policies
(explicitly listing all allowed paths and denying everything else) to
reduce the risk of bypasses via malformed inputs.

---

### Release Notes

<details>
<summary>grpc/grpc-go (google.golang.org/grpc)</summary>

###
[`v1.79.3`](https://redirect.github.com/grpc/grpc-go/releases/tag/v1.79.3):
Release 1.79.3

[Compare
Source](https://redirect.github.com/grpc/grpc-go/compare/v1.79.2...v1.79.3)

### Security

- server: fix an authorization bypass where malformed :path headers
(missing the leading slash) could bypass path-based restricted "deny"
rules in interceptors like `grpc/authz`. Any request with a
non-canonical path is now immediately rejected with an `Unimplemented`
error.
([#&#8203;8981](https://redirect.github.com/grpc/grpc-go/issues/8981))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), Automerge - At any time (no
schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Never, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/cloudnative-pg/plugin-barman-cloud).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My42Ni40IiwidXBkYXRlZEluVmVyIjoiNDMuNjYuNCIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiYXV0b21hdGVkIiwibm8taXNzdWUiXX0=-->

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-03-19 09:42:16 +01:00
Marco Nenciarini
25d72ce0a3
fix(restore): race condition in parallel WAL restore spool (#812)
Some checks failed
release-please / release-please (push) Failing after 3s
Update github.com/cloudnative-pg/barman-cloud from the pre-release pin
(ced266c) to the official v0.5.0 release.

This update fixes a race condition in parallel WAL restore where
prefetched files could be read while still being downloaded, causing
PostgreSQL recovery to fail with "invalid checkpoint record" errors. It
also fixes a misleading "missing Azure credentials" error message when
no object store credentials are defined at all.

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
2026-03-17 15:50:02 +01:00
Daniel Chambre
90dbe03a74 update to latest versions
Signed-off-by: Daniel Chambre <smiyc@pm.me>
2025-06-11 20:23:59 +02:00
Daniel Chambre
4d0e2788e9 update to 0.5.0
Signed-off-by: Daniel Chambre <smiyc@pm.me>
2025-06-11 20:22:07 +02:00
Daniel Chambre
fb0e326029 add verion "0.4.0" to bug template
Signed-off-by: Daniel Chambre <smiyc@pm.me>
2025-05-12 13:50:25 +02:00
Daniel Chambre
da6445426b update 2
Signed-off-by: Daniel Chambre <smiyc@pm.me>
2025-05-09 14:11:59 +02:00
Daniel Chambre
340204ff21 update
Signed-off-by: Daniel Chambre <smiyc@pm.me>
2025-05-09 14:01:51 +02:00
Daniel Chambre
17b86f3faf add ISSUE_TEMPLATES
Signed-off-by: Daniel Chambre <smiyc@pm.me>
2025-05-09 14:00:18 +02:00
7 changed files with 342 additions and 9 deletions

126
.github/ISSUE_TEMPLATE/bug.yml vendored Normal file
View File

@ -0,0 +1,126 @@
name: Bug Report
description: File a bug report
title: "[Bug]: "
labels: ["triage", "bug"]
projects: ["coudnative-pg/plugin-barman-cloud"]
# assignees:
# - gbartolini
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report for the BarmanCloudPlugin!
- type: checkboxes
id: search
attributes:
label: Is there an existing issue already for this bug?
description: Before you submit a bug, make sure you have searched if a similar one already exists
options:
- label: I have searched for an existing issue, and could not find anything. I believe this is a new bug.
required: true
# - type: checkboxes
# id: troubleshooting
# attributes:
# label: I have read the troubleshooting guide
# description: Before you submit a bug, make sure you have read the ["Common issues" section in the Troubleshooting guide](https://cloudnative-pg.io/documentation/current/troubleshooting/#some-common-issues).
# options:
# - label: I have read the troubleshooting guide and I think this is a new bug.
# required: true
# - type: checkboxes
# id: supported
# attributes:
# label: I am running a supported version of CloudNativePG
# description: Before you submit a bug, make sure you have read ["Supported releases"](https://cloudnative-pg.io/documentation/current/supported_releases/) and that you are running a supported version of CloudNativePG with the latest patch/security fixes, or you are working on the current trunk (`main` branch)
# options:
# - label: I have read the troubleshooting guide and I think this is a new bug.
# required: true
- type: input
id: contact
attributes:
label: Contact Details
description: How can we get in touch with you if we need more info?
placeholder: ex. email@example.com
validations:
required: false
- type: dropdown
id: version
attributes:
label: Version
description: What is the version of the BarmanCloudPlugin you are running?
options:
- "0.5.1"
- "0.5.0"
- "0.4.1"
- "0.4.0"
- "0.3.0"
- "0.2.0"
- "0.1.0"
validations:
required: true
- type: dropdown
id: k8s_version
attributes:
label: What version of Kubernetes are you using?
options:
- "1.32"
- "1.31"
- "1.30"
- "1.29"
- "other (unsupported)"
validations:
required: true
- type: dropdown
id: k8s_environment
attributes:
label: What is your Kubernetes environment?
options:
- "Self-managed: kind (evaluation)"
- "Self-managed: k0s"
- "Self-managed: k3s"
- "Self-managed: RKE"
- "Cloud: Amazon EKS"
- "Cloud: Google GKE"
- "Cloud: Azure AKS"
- "Cloud: Other"
- "Other"
validations:
required: true
- type: dropdown
id: installation_method
attributes:
label: How did you install the BarmanCloudPlugin?
options:
- "YAML manifest"
# - "Helm"
# - "OLM"
- "Other"
validations:
required: true
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Also tell us, what did you expect to happen?
placeholder: Tell us what you see!
validations:
required: true
- type: textarea
id: spec
attributes:
label: Cluster resource
description: Please copy and paste the CR of the cluster
render: shell
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/cloudnative-pg/governance/blob/main/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true

8
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
# - name: Open discussions
# url: https://github.com/cloudnative-pg/cloudnative-pg/discussions
# about: Please ask and answer questions here.
- name: Slack chat
url: https://github.com/cloudnative-pg/cloudnative-pg?tab=readme-ov-file#communications
about: Please join the slack channel and interact with our community

View File

@ -0,0 +1,74 @@
name: Documentation
description: Issues or improvement ideas for the plugin-barman-cloud documentation
title: "[Docs]: "
labels: ["triage", "documentation"]
projects: ["coudnative-pg/plugin-barman-cloud"]
# assignees:
# - gbartolini
body:
- type: markdown
attributes:
value: |
Thanks for taking the time improve the documentation of the BarmanCloudPlugin!
- type: checkboxes
id: search
attributes:
label: Is there an existing issue already for your request/idea?
description: Before you submit a new issue, make sure you have searched if a similar one already exists
options:
- label: I have searched for an existing issue, and could not find anything. I believe this is a new documentation enhancement to be evaluated.
required: true
- type: textarea
id: problem
attributes:
label: What problem in the existing documentation this issue aims to solve?
description: A clear and concise description of what the problem is (e.g. I'm always frustrated when [...])
validations:
required: true
- type: textarea
id: doc_add
attributes:
label: Describe what additions need to be done to the documentation
description: A clear and concise description of what sections/pages you want to add to the current documentation.
validations:
required: false
- type: textarea
id: doc_change
attributes:
label: Describe what pages need to change in the documentation, if any
description: Please provide links to the pages in the current documentation
validations:
required: false
- type: textarea
id: doc_remove
attributes:
label: Describe what pages need to be removed from the documentation, if any
description: Please provide links to the pages in the current documentation that you want to be removed
validations:
required: false
- type: textarea
id: additional_context
attributes:
label: Additional context
description: Add any other context about this issue.
validations:
required: false
- type: dropdown
id: backport
attributes:
label: Backport?
description: Do you suggest to backport this feature or not?
options:
- "Yes"
- "No"
- "N/A"
validations:
required: true
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/cloudnative-pg/governance/blob/main/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true

77
.github/ISSUE_TEMPLATE/feature.yml vendored Normal file
View File

@ -0,0 +1,77 @@
name: Feature request
description: Suggest an idea or request a new feature for the plugin-barman-cloud
title: "[Feature]: "
labels: ["triage", "enhancement"]
projects: ["coudnative-pg/plugin-barman-cloud"]
# assignees:
# - gbartolini
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to propose new ideas and feature requests to the BarmanCloudPlugin!
- type: checkboxes
id: search
attributes:
label: Is there an existing issue already for this feature request/idea?
description: Before you submit a new feature request, make sure you have searched if a similar one already exists
options:
- label: I have searched for an existing issue, and could not find anything. I believe this is a new feature request to be evaluated.
required: true
- type: textarea
id: problem
attributes:
label: What problem is this feature going to solve? Why should it be added?
description: A clear and concise description of what the problem is (e.g. I'm always frustrated when [...])
validations:
required: true
- type: textarea
id: solution
attributes:
label: Describe the solution you'd like
description: A clear and concise description of what you want to happen.
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: Describe alternatives you've considered
description: A clear and concise description of any alternative solutions or features you've considered.
validations:
required: true
- type: textarea
id: additional_context
attributes:
label: Additional context
description: Add any other context or screenshots about the feature request here.
validations:
required: false
- type: dropdown
id: backport
attributes:
label: Backport?
description: Do you suggest to backport this feature or not?
options:
- "Yes"
- "No"
- "N/A"
validations:
required: true
- type: dropdown
id: contribute
attributes:
label: Are you willing to actively contribute to this feature?
description: Let us know if you are interested in developing this feature.
options:
- "No"
- "Yes"
validations:
required: true
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/cloudnative-pg/governance/blob/main/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true

View File

@ -0,0 +1,48 @@
name: Release Notes
description: Release notes for a new version of the BarmanCloudPlugin
title: "[Release Notes]: BarmanCloudPlugin 1.XX.Y and 1.XX-1.Z"
labels: ["triage", "documentation"]
projects: ["coudnative-pg/plugin-barman-cloud"]
# assignees:
# - gbartolini
body:
- type: markdown
attributes:
value: |
Make sure that the correct versions are reported in the title of the ticket.
- type: checkboxes
id: search
attributes:
label: Is there an existing issue already for this task?
description: Before you submit a new issue, make sure you have searched if a similar one already exists
options:
- label: I have searched for an existing issue, and could not find anything. I believe this is a new request.
required: true
- type: dropdown
id: minor
attributes:
label: Is this a new minor release?
description: Is this a new minor release for the BarmanCloudPlugin?
options:
- "No"
- "Yes"
validations:
required: true
- type: dropdown
id: preview
attributes:
label: Is this a preview release?
description: Is this a preview release for the BarmanCloudPlugin? If so, make sure you add `-RC1` to the version and update the `preview_version.md` file.
options:
- "No"
- "Yes"
validations:
required: true
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://github.com/cloudnative-pg/governance/blob/main/CODE_OF_CONDUCT.md)
options:
- label: I agree to follow this project's Code of Conduct
required: true

6
go.mod
View File

@ -7,7 +7,7 @@ toolchain go1.26.1
require (
github.com/cert-manager/cert-manager v1.19.4
github.com/cloudnative-pg/api v1.28.1
github.com/cloudnative-pg/barman-cloud v0.4.1-0.20260302035520-53b8620f1bd6
github.com/cloudnative-pg/barman-cloud v0.5.0
github.com/cloudnative-pg/cloudnative-pg v1.28.1
github.com/cloudnative-pg/cnpg-i v0.3.1
github.com/cloudnative-pg/cnpg-i-machinery v0.4.2
@ -16,7 +16,7 @@ require (
github.com/onsi/gomega v1.39.1
github.com/spf13/cobra v1.10.2
github.com/spf13/viper v1.21.0
google.golang.org/grpc v1.79.2
google.golang.org/grpc v1.79.3
gopkg.in/yaml.v3 v3.0.1
k8s.io/api v0.35.2
k8s.io/apiextensions-apiserver v0.35.2
@ -117,7 +117,7 @@ require (
golang.org/x/net v0.49.0 // indirect
golang.org/x/oauth2 v0.34.0 // indirect
golang.org/x/sync v0.19.0 // indirect
golang.org/x/sys v0.41.0 // indirect
golang.org/x/sys v0.42.0 // indirect
golang.org/x/term v0.39.0 // indirect
golang.org/x/text v0.33.0 // indirect
golang.org/x/time v0.14.0 // indirect

12
go.sum
View File

@ -18,8 +18,8 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cloudnative-pg/api v1.28.1 h1:hp/TDgR+RrTa4EMp/pAKZia+kZ52i8ZPLG+JG10eeVU=
github.com/cloudnative-pg/api v1.28.1/go.mod h1:J0RTwrOYxQP17N1YMrDxcUmr/0wPYHQW179P7ibkVsM=
github.com/cloudnative-pg/barman-cloud v0.4.1-0.20260302035520-53b8620f1bd6 h1:BpKKrciaTMC01jMgwWOosC/S8pvDFCxZdJx2ahzksIQ=
github.com/cloudnative-pg/barman-cloud v0.4.1-0.20260302035520-53b8620f1bd6/go.mod h1:N/ax2XSnj67scfJ9iFXKxCRMLFghD9B2XX5/SrRsPys=
github.com/cloudnative-pg/barman-cloud v0.5.0 h1:DykSaX4o7ee2vyu5FQoG1RJsntHd+EIttIKZbJPlB1Q=
github.com/cloudnative-pg/barman-cloud v0.5.0/go.mod h1:SO2HzLa+GWlSIpGyxnISoJAFPIcaa/qDa33Bb3jefac=
github.com/cloudnative-pg/cloudnative-pg v1.28.1 h1:HdOUWgFhta558uHfXeO/199qCApxaj5yi05x6nWNmgs=
github.com/cloudnative-pg/cloudnative-pg v1.28.1/go.mod h1:yhRa4GqJAjNd0tT9AiRgk1KdqLhMjo/JmGGoASRl2CU=
github.com/cloudnative-pg/cnpg-i v0.3.1 h1:fKj8NoToWI11HUL2UWYJBpkVzmaTvbs3kDMo7wQF8RU=
@ -277,8 +277,8 @@ golang.org/x/oauth2 v0.34.0 h1:hqK/t4AKgbqWkdkcAeI8XLmbK+4m4G5YeQRrmiotGlw=
golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.41.0 h1:Ivj+2Cp/ylzLiEU89QhWblYnOE9zerudt9Ftecq2C6k=
golang.org/x/sys v0.41.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo=
golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
golang.org/x/term v0.39.0 h1:RclSuaJf32jOqZz74CkPA9qFuVTX7vhLlpfj/IGWlqY=
golang.org/x/term v0.39.0/go.mod h1:yxzUCTP/U+FzoxfdKmLaA0RV1WgE0VY7hXBwKtY/4ww=
golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE=
@ -295,8 +295,8 @@ google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 h1:
google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto=
google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww=
google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
google.golang.org/grpc v1.79.2 h1:fRMD94s2tITpyJGtBBn7MkMseNpOZU8ZxgC3MMBaXRU=
google.golang.org/grpc v1.79.2/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE=
google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=