Skip to content

Commit c7d00a8

Browse files
authored
Update prometheus dependencies for CVE fixes (#918)
* Update github.com/prometheus/prometheus to 0.313.1 * Update github.com/prometheus-community/prom-label-proxy to 0.14.0 * Update metrics API to use new PromQL parser interface * Update Go builder images * Update CircleCI builds to use Go 1.26 * Update e2e test
1 parent fbeeddd commit c7d00a8

8 files changed

Lines changed: 282 additions & 282 deletions

File tree

.circleci/config.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ version: 2
22
jobs:
33
build:
44
docker:
5-
- image: golang:1.24
5+
- image: golang:1.26
66
steps:
77
- checkout
88
- run: |
@@ -11,7 +11,7 @@ jobs:
1111
1212
lint:
1313
docker:
14-
- image: golang:1.24
14+
- image: golang:1.26
1515
steps:
1616
- checkout
1717
- run: |
@@ -26,7 +26,7 @@ jobs:
2626
- run: |
2727
apt-get update && apt-get -y install xz-utils unzip openssl
2828
sudo rm -rf /usr/local/go
29-
wget -qO- https://dl.google.com/go/go1.24.11.linux-amd64.tar.gz | sudo tar -C /usr/local -xzf -
29+
wget -qO- https://dl.google.com/go/go1.26.5.linux-amd64.tar.gz | sudo tar -C /usr/local -xzf -
3030
export PATH=$PATH:/usr/local/go/bin
3131
go version
3232
make test --always-make
@@ -38,14 +38,14 @@ jobs:
3838
- checkout
3939
- run: |
4040
sudo rm -rf /usr/local/go
41-
wget -qO- https://dl.google.com/go/go1.24.11.linux-amd64.tar.gz | sudo tar -C /usr/local -xzf -
41+
wget -qO- https://dl.google.com/go/go1.26.5.linux-amd64.tar.gz | sudo tar -C /usr/local -xzf -
4242
export PATH=$PATH:/usr/local/go/bin
4343
go version
4444
make test-e2e
4545
4646
generate:
4747
docker:
48-
- image: golang:1.24
48+
- image: golang:1.26
4949
steps:
5050
- checkout
5151
- run: |

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM --platform=$BUILDPLATFORM golang:1.24-alpine as builder
1+
FROM --platform=$BUILDPLATFORM golang:1.26-alpine as builder
22

33
ARG TARGETOS
44
ARG TARGETARCH

Dockerfile.e2e-test

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM golang:1.24-alpine as builder
1+
FROM golang:1.26-alpine as builder
22

33
RUN apk add --update --no-cache ca-certificates tzdata git make bash && update-ca-certificates
44

api/metrics/v1/labels_enforcer.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111

1212
"github.com/prometheus-community/prom-label-proxy/injectproxy"
1313
"github.com/prometheus/prometheus/model/labels"
14-
"github.com/prometheus/prometheus/promql/parser"
1514

1615
"github.com/observatorium/api/authentication"
1716
"github.com/observatorium/api/authorization"
@@ -148,7 +147,7 @@ func enforceQueryValues(e *injectproxy.PromQLEnforcer, paramName string, request
148147

149148
matchers := requestParams[paramName]
150149
for i, rawMatcher := range matchers {
151-
expr, err := parser.ParseExpr(rawMatcher)
150+
expr, err := promQLParser.ParseExpr(rawMatcher)
152151
if err != nil {
153152
return "", true, fmt.Errorf("parse expr error: %w", err)
154153
}

api/metrics/v1/rules.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import (
1818
"github.com/observatorium/api/rules"
1919
)
2020

21+
var promQLParser = parser.NewParser(parser.Options{})
22+
2123
func enforceLabelsInRules(rawRules rules.Rules, tenantLabel, tenantID string) error {
2224
// creates new tenant label enforcer
2325
e := injectproxy.NewPromQLEnforcer(false, []*labels.Matcher{{
@@ -82,7 +84,7 @@ func enforceLabelsInRules(rawRules rules.Rules, tenantLabel, tenantID string) er
8284
}
8385

8486
func enforceLabelsInExpr(e *injectproxy.PromQLEnforcer, expr string) (string, error) {
85-
parsedExpr, err := parser.ParseExpr(expr)
87+
parsedExpr, err := promQLParser.ParseExpr(expr)
8688
if err != nil {
8789
return "", fmt.Errorf("parse expr error: %w", err)
8890
}

go.mod

Lines changed: 67 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
module github.com/observatorium/api
22

3-
go 1.24.9
4-
5-
toolchain go1.24.13
3+
go 1.25.0
64

75
require (
86
github.com/brancz/kube-rbac-proxy v0.20.1
@@ -13,44 +11,44 @@ require (
1311
github.com/go-chi/chi/v5 v5.2.5
1412
github.com/go-chi/httprate v0.15.0
1513
github.com/go-kit/log v0.2.1
16-
github.com/go-openapi/runtime v0.29.2
17-
github.com/go-openapi/strfmt v0.25.0
14+
github.com/go-openapi/runtime v0.32.6
15+
github.com/go-openapi/strfmt v0.27.0
1816
github.com/golang-jwt/jwt/v4 v4.5.2
1917
github.com/golang/protobuf v1.5.4
2018
github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674
2119
github.com/grafana/tempo v1.5.1-0.20241219111835-fa9b7ad5ad34
2220
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0
2321
github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.3.3
2422
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
25-
github.com/klauspost/compress v1.18.2
23+
github.com/klauspost/compress v1.19.0
2624
github.com/metalmatze/signal v0.0.0-20210307161603-1c9aa721a97a
2725
github.com/mitchellh/mapstructure v1.5.1-0.20231216201459-8508981c8b6c
2826
github.com/mwitkow/grpc-proxy v0.0.0-20250813121105-2866842de9a5
2927
github.com/oapi-codegen/runtime v1.2.0
3028
github.com/oklog/run v1.2.0
3129
github.com/open-policy-agent/opa v1.13.2
3230
github.com/pkg/errors v0.9.1
33-
github.com/prometheus-community/prom-label-proxy v0.12.1
34-
github.com/prometheus/alertmanager v0.31.1
35-
github.com/prometheus/client_golang v1.23.2
36-
github.com/prometheus/common v0.67.5
37-
github.com/prometheus/prometheus v0.309.1
31+
github.com/prometheus-community/prom-label-proxy v0.14.0
32+
github.com/prometheus/alertmanager v0.33.1
33+
github.com/prometheus/client_golang v1.24.0
34+
github.com/prometheus/common v0.70.0
35+
github.com/prometheus/prometheus v0.313.1
3836
github.com/redis/rueidis v1.0.72
3937
github.com/stretchr/testify v1.11.1
40-
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.65.0
38+
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.69.0
4139
go.opentelemetry.io/contrib/propagators/jaeger v1.40.0
42-
go.opentelemetry.io/otel v1.41.0
43-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.40.0
44-
go.opentelemetry.io/otel/sdk v1.40.0
45-
go.opentelemetry.io/otel/trace v1.41.0
40+
go.opentelemetry.io/otel v1.44.0
41+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.44.0
42+
go.opentelemetry.io/otel/sdk v1.44.0
43+
go.opentelemetry.io/otel/trace v1.44.0
4644
go.uber.org/automaxprocs v1.6.0
47-
golang.org/x/oauth2 v0.35.0
48-
google.golang.org/genproto/googleapis/api v0.0.0-20260128011058-8636f8732409
49-
google.golang.org/grpc v1.79.3
45+
golang.org/x/oauth2 v0.36.0
46+
google.golang.org/genproto/googleapis/api v0.0.0-20260615183401-62b3387ff324
47+
google.golang.org/grpc v1.81.1
5048
google.golang.org/protobuf v1.36.11
51-
k8s.io/apimachinery v0.34.4
49+
k8s.io/apimachinery v0.35.3
5250
k8s.io/apiserver v0.34.4
53-
k8s.io/client-go v0.34.4
51+
k8s.io/client-go v0.35.3
5452
)
5553

5654
require (
@@ -63,45 +61,46 @@ require (
6361
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
6462
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect
6563
github.com/dennwc/varint v1.0.0 // indirect
66-
github.com/edsrzf/mmap-go v1.2.0 // indirect
64+
github.com/edsrzf/mmap-go v1.2.1-0.20241212181136-fad1cd13edbd // indirect
6765
github.com/emicklei/go-restful/v3 v3.12.2 // indirect
6866
github.com/facette/natsort v0.0.0-20181210072756-2cd4dd1e2dcb // indirect
6967
github.com/felixge/httpsnoop v1.0.4 // indirect
70-
github.com/fsnotify/fsnotify v1.9.0 // indirect
68+
github.com/fsnotify/fsnotify v1.10.1 // indirect
7169
github.com/fxamacker/cbor/v2 v2.9.0 // indirect
7270
github.com/go-jose/go-jose/v4 v4.1.4 // indirect
7371
github.com/go-logfmt/logfmt v0.6.0 // indirect
74-
github.com/go-logr/logr v1.4.3 // indirect
72+
github.com/go-logr/logr v1.4.4 // indirect
7573
github.com/go-logr/stdr v1.2.2 // indirect
76-
github.com/go-openapi/analysis v0.24.2 // indirect
77-
github.com/go-openapi/errors v0.22.6 // indirect
78-
github.com/go-openapi/jsonpointer v0.22.4 // indirect
79-
github.com/go-openapi/jsonreference v0.21.4 // indirect
80-
github.com/go-openapi/loads v0.23.2 // indirect
81-
github.com/go-openapi/spec v0.22.3 // indirect
82-
github.com/go-openapi/swag v0.25.4 // indirect
83-
github.com/go-openapi/swag/cmdutils v0.25.4 // indirect
84-
github.com/go-openapi/swag/conv v0.25.4 // indirect
85-
github.com/go-openapi/swag/fileutils v0.25.4 // indirect
86-
github.com/go-openapi/swag/jsonname v0.25.4 // indirect
87-
github.com/go-openapi/swag/jsonutils v0.25.4 // indirect
88-
github.com/go-openapi/swag/loading v0.25.4 // indirect
89-
github.com/go-openapi/swag/mangling v0.25.4 // indirect
90-
github.com/go-openapi/swag/netutils v0.25.4 // indirect
91-
github.com/go-openapi/swag/stringutils v0.25.4 // indirect
92-
github.com/go-openapi/swag/typeutils v0.25.4 // indirect
93-
github.com/go-openapi/swag/yamlutils v0.25.4 // indirect
94-
github.com/go-openapi/validate v0.25.1 // indirect
95-
github.com/go-viper/mapstructure/v2 v2.4.0 // indirect
74+
github.com/go-openapi/analysis v0.25.5 // indirect
75+
github.com/go-openapi/errors v0.22.8 // indirect
76+
github.com/go-openapi/jsonpointer v1.0.0 // indirect
77+
github.com/go-openapi/jsonreference v1.0.0 // indirect
78+
github.com/go-openapi/loads v0.25.0 // indirect
79+
github.com/go-openapi/runtime/server-middleware v0.32.6 // indirect
80+
github.com/go-openapi/spec v0.22.9 // indirect
81+
github.com/go-openapi/swag v0.27.3 // indirect
82+
github.com/go-openapi/swag/cmdutils v0.27.3 // indirect
83+
github.com/go-openapi/swag/conv v0.27.3 // indirect
84+
github.com/go-openapi/swag/fileutils v0.27.3 // indirect
85+
github.com/go-openapi/swag/jsonutils v0.27.3 // indirect
86+
github.com/go-openapi/swag/loading v0.27.3 // indirect
87+
github.com/go-openapi/swag/mangling v0.27.3 // indirect
88+
github.com/go-openapi/swag/netutils v0.27.3 // indirect
89+
github.com/go-openapi/swag/pools v0.27.3 // indirect
90+
github.com/go-openapi/swag/stringutils v0.27.3 // indirect
91+
github.com/go-openapi/swag/typeutils v0.27.3 // indirect
92+
github.com/go-openapi/swag/yamlutils v0.27.3 // indirect
93+
github.com/go-openapi/validate v0.26.1 // indirect
94+
github.com/go-viper/mapstructure/v2 v2.5.0 // indirect
9695
github.com/gobwas/glob v0.2.3 // indirect
9796
github.com/goccy/go-json v0.10.5 // indirect
9897
github.com/gogo/protobuf v1.3.2 // indirect
99-
github.com/golang-jwt/jwt/v5 v5.3.0 // indirect
98+
github.com/golang-jwt/jwt/v5 v5.3.1 // indirect
10099
github.com/google/gnostic-models v0.7.0 // indirect
101100
github.com/google/go-cmp v0.7.0 // indirect
102101
github.com/google/uuid v1.6.0 // indirect
103102
github.com/grafana/regexp v0.0.0-20250905093917-f7b3be9d1853 // indirect
104-
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.7 // indirect
103+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.29.0 // indirect
105104
github.com/jpillora/backoff v1.0.0 // indirect
106105
github.com/json-iterator/go v1.1.12 // indirect
107106
github.com/klauspost/cpuid/v2 v2.2.10 // indirect
@@ -116,10 +115,10 @@ require (
116115
github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect
117116
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
118117
github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f // indirect
119-
github.com/oklog/ulid v1.3.1 // indirect
118+
github.com/oklog/ulid/v2 v2.1.1 // indirect
120119
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
121120
github.com/prometheus/client_model v0.6.2 // indirect
122-
github.com/prometheus/procfs v0.17.0 // indirect
121+
github.com/prometheus/procfs v0.21.1 // indirect
123122
github.com/rcrowley/go-metrics v0.0.0-20250401214520-65e299d6c5c9 // indirect
124123
github.com/segmentio/asm v1.2.1 // indirect
125124
github.com/sirupsen/logrus v1.9.4 // indirect
@@ -132,35 +131,34 @@ require (
132131
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
133132
github.com/yashtewari/glob-intersection v0.2.0 // indirect
134133
github.com/zeebo/xxh3 v1.0.2 // indirect
135-
go.mongodb.org/mongo-driver v1.17.6 // indirect
136134
go.opentelemetry.io/auto/sdk v1.2.1 // indirect
137-
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.40.0 // indirect
138-
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.39.0 // indirect
139-
go.opentelemetry.io/otel/metric v1.41.0 // indirect
140-
go.opentelemetry.io/proto/otlp v1.9.0 // indirect
135+
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.44.0 // indirect
136+
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.44.0 // indirect
137+
go.opentelemetry.io/otel/metric v1.44.0 // indirect
138+
go.opentelemetry.io/proto/otlp v1.10.0 // indirect
141139
go.uber.org/atomic v1.11.0 // indirect
142-
go.yaml.in/yaml/v2 v2.4.3 // indirect
140+
go.yaml.in/yaml/v2 v2.4.4 // indirect
143141
go.yaml.in/yaml/v3 v3.0.4 // indirect
144-
golang.org/x/crypto v0.47.0 // indirect
145-
golang.org/x/net v0.49.0 // indirect
146-
golang.org/x/sync v0.19.0 // indirect
147-
golang.org/x/sys v0.40.0 // indirect
148-
golang.org/x/term v0.39.0 // indirect
149-
golang.org/x/text v0.33.0 // indirect
150-
golang.org/x/time v0.14.0 // indirect
151-
google.golang.org/genproto/googleapis/rpc v0.0.0-20260128011058-8636f8732409 // indirect
152-
gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
142+
golang.org/x/crypto v0.54.0 // indirect
143+
golang.org/x/net v0.57.0 // indirect
144+
golang.org/x/sync v0.22.0 // indirect
145+
golang.org/x/sys v0.47.0 // indirect
146+
golang.org/x/term v0.45.0 // indirect
147+
golang.org/x/text v0.40.0 // indirect
148+
golang.org/x/time v0.15.0 // indirect
149+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260610212136-7ab31c22f7ad // indirect
150+
gopkg.in/evanphx/json-patch.v4 v4.13.0 // indirect
153151
gopkg.in/inf.v0 v0.9.1 // indirect
154-
gopkg.in/ini.v1 v1.67.1 // indirect
152+
gopkg.in/ini.v1 v1.67.2 // indirect
155153
gopkg.in/yaml.v2 v2.4.0 // indirect
156154
gopkg.in/yaml.v3 v3.0.1 // indirect
157-
k8s.io/api v0.34.4 // indirect
155+
k8s.io/api v0.35.3 // indirect
158156
k8s.io/component-base v0.34.4 // indirect
159-
k8s.io/klog/v2 v2.130.1 // indirect
160-
k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect
161-
k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 // indirect
157+
k8s.io/klog/v2 v2.140.0 // indirect
158+
k8s.io/kube-openapi v0.0.0-20250910181357-589584f1c912 // indirect
159+
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 // indirect
162160
sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect
163-
sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect
161+
sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect
164162
sigs.k8s.io/randfill v1.0.0 // indirect
165163
sigs.k8s.io/structured-merge-diff/v6 v6.3.0 // indirect
166164
sigs.k8s.io/yaml v1.6.0 // indirect

0 commit comments

Comments
 (0)