Repository navigation
Conversation
pnpm audit --audit-level=high in site/ fails on every branch with four high advisories, none of them brought in by a commit: - sharp <0.35.5, librsvg CVE-2026-96889 (GHSA-wq5f-xc86-pv6w): a direct dependency, now ^0.35.5. - http-cache-semantics <=4.2.0 (GHSA-ch52-4w7c-c8xp) and source-map-js <1.2.2 (GHSA-68fv-2mgg-jv7q): every consumer's range already admits 4.3.0 and 1.2.2, so the lockfile resolves them again and nothing else moves. - basic-ftp <=6.2.0 (GHSA-c475-qrg2-pj4r): fixed in 6.2.1 with no 5.x release, behind get-uri, whose latest release still asks for ^5.3.1. Pinned to 6.2.3 with an override, beside the reason it is safe: 6.0.0's only breaking change is the default refusal of a separate transfer host, and get-uri calls nothing whose signature changed. The path is dev-only, through pa11y-ci. The low and moderate findings left (dompurify, katex, smol-toml, postcss-selector-parser) are below the level the job fails on and are not touched here.
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Hey - I've found 1 issue
Fixed security issues:
Prompt for AI Agents
Please address the comments from this code review:
## Individual Comments
### Comment 1
<location path="site/pnpm-workspace.yaml" line_range="41" />
<code_context>
+ # list, downloadTo and close, which kept their signatures. 6.2.3 also carries
+ # the fixes for GHSA-5rfr-xx34-2xxv (6.2.2) and GHSA-r4jh-29pc-gfqr (6.2.3).
+ # Lift this once get-uri depends on a fixed basic-ftp itself.
+ "basic-ftp@<6.2.3": 6.2.3
# 7.3.1 added a pass that moves a <style> element's text into a `set:html`
# property, and runs it before the pass that collapses static MDX subtrees
</code_context>
<issue_to_address>
**FTP proxy configuration fails**
When an FTP fetch uses a server whose PASV response advertises a transfer host different from its control host, `get-uri` uses `basic-ftp` 6.2.3 without opting in to separate transfer hosts, so the client rejects the advertised host and the FTP fetch fails; PAC loading or proxy resolution fails.
Update the FTP fetch path to opt in to separate transfer hosts.
</issue_to_address>Sourcery assessment
Approval pending. 1 finding to address first.
Blocking findings: site/pnpm-workspace.yaml:41
| # list, downloadTo and close, which kept their signatures. 6.2.3 also carries | ||
| # the fixes for GHSA-5rfr-xx34-2xxv (6.2.2) and GHSA-r4jh-29pc-gfqr (6.2.3). | ||
| # Lift this once get-uri depends on a fixed basic-ftp itself. | ||
| "basic-ftp@<6.2.3": 6.2.3 |
There was a problem hiding this comment.
🟡 Medium · FTP proxy configuration fails
When an FTP fetch uses a server whose PASV response advertises a transfer host different from its control host, get-uri uses basic-ftp 6.2.3 without opting in to separate transfer hosts, so the client rejects the advertised host and the FTP fetch fails; PAC loading or proxy resolution fails.
Update the FTP fetch path to opt in to separate transfer hosts.
Prompt for AI agents
In `site/pnpm-workspace.yaml` at line 41:
**FTP proxy configuration fails**
When an FTP fetch uses a server whose PASV response advertises a transfer host different from its control host, `get-uri` uses `basic-ftp` 6.2.3 without opting in to separate transfer hosts, so the client rejects the advertised host and the FTP fetch fails; PAC loading or proxy resolution fails.
Update the FTP fetch path to opt in to separate transfer hosts.
|
…117) ## What this changes govulncheck, part of the required CI check, fails on main and so on every branch: Go 1.27.1's standard library carries ten advisories that code here reaches, all fixed in Go 1.27.2. One is GO-2026-6617, an HTTP/2 server crash from a race in net/http's HPACK encoder, which govulncheck reaches through the Prometheus exporter's `http.Server` (that server is plain HTTP and enables no unencrypted HTTP/2, so in practice it speaks HTTP/1.1, but the job gates on reachability). The other nine are GO-2026-6603, GO-2026-6604 (Windows only), GO-2026-6605, GO-2026-6607, GO-2026-6608, GO-2026-6610, GO-2026-6611, GO-2026-6612 and GO-2026-6613. The first commit moves go.mod from `go 1.27.1` to `go 1.27.2`, which every setup-go step (CI, e2e, race, CodeQL, release) and the Makefile's `GOTOOLCHAIN` read; the Dockerfile's build stage to `golang:1.27.2-alpine3.24` at its multi-arch index digest `sha256:f92b6ef800e499660581efdabdf25d9d817a9d124eaf900924f0504e7e27e12d`, read from the registry; the minimum stated on the three install pages in both languages, with `docs/running.md` regenerated by `make docs`; and the comment above the govulncheck job. golang.org/x/net, where the same fix shipped as v0.60.0, is not in the module graph, so go.mod and go.sum move nothing else. The second commit moves golangci-lint from v2.13.1 to v2.14.0, because the pinned release cannot read what Go 1.27.2 compiles. Go 1.27.2 writes export data version 5 and v2.13.1 reads up to version 4 (golang.org/x/tools v0.49.0): on this branch its release binary stops at every package with "export data version 5 is greater than maximum supported version 4", so the golangci-lint job would fail with no defect in the tree. The same binary passes on main with Go 1.27.1, and v2.13.2 fails the same way. v2.14.0 (2026-09-24, x/tools v0.50.0) reads it, and it is the release jmrplens/gitlab-mcp-server#1265 moved to with that repository's own Go 1.27.2 change, so the two repositories run one linter release again, as the Makefile says they should. v2.14.0 meets this tree 20 times, all in checks already enabled. gosec v2.29.0 no longer takes `filepath.Clean` or `filepath.Abs` for a path-traversal sanitizer, so G703 now reports 17 reads and writes in `cmd/check_postgres`, `cmd/check_prometheus` and the `gen_` commands; each path is that development command's own argument or flag, alone or joined to a file name the command declares, and each now carries a `//#nosec G703 -- <which>` line, the form gitlab-mcp-server uses for its own. modernize's stringscut now asks for `strings.CutLast` (new in Go 1.27) in place of `strings.LastIndex` and `LastIndexByte`; the five, all in tests, are rewritten, and a 20 s fuzz of the old and new forms of the two Prometheus helpers and of the before-and-after cut the three SQL helpers share, over 2.9 million inputs, found no difference. The header of `.golangci.yml` now names the one setting gitlab-mcp-server added with v2.14.0 that this file does not carry, its exclusion of the "`%s`" form of gocritic's sprintfQuotedString: no line here meets that form. Left as they are: the 1.27.1 mentions that are measurements, examples or fixtures (the ETag comment in `internal/ghapi/client.go`, the build-info fixtures in `cmd/ghchronicle/main_test.go`, the cache-key example on the Graphite page, `test/e2e/testdata/actions_caches.json`) and the CHANGELOG's history. VERSION is untouched and nothing is tagged. ## How it was checked All with `go version go1.27.2 linux/amd64` unless said otherwise. - [x] `go build ./...`, `go vet ./...`, `go vet` for linux/arm64, windows/amd64 and darwin/arm64, and `go test -tags dockere2e -c` of the containerised suite: pass. - [x] `make govulncheck`: "No vulnerabilities found", and none at module or package level under `-show verbose` either. On main with Go 1.27.1 it fails naming the ten advisories above. - [x] `go test -count=1 ./...` and `make test-race`: every package passes except `test/e2e`, where `TestTheServiceReadsTheHistoryBackBeforeItsFirstSweep` and `TestMigrateYesClearsOnlyTheMeasurementItNames` fail at the same assertions (`migrate_e2e_test.go:513`, `:540` and `:723`) on unmodified main with Go 1.27.1, so not from this change. No data race reported. - [x] `make golangci-lint` with the v2.14.0 release binary: passes. With v2.13.1 on this branch it fails on export data, as above. - [x] `make check-dashboards check-gallery check-layouts check-config-options check-compose check-config-cases`: pass. - [x] `make check-docs mdlint check-doc-links`, and `cd site && pnpm run build && pnpm run lint`: pass. - [x] hadolint on the Dockerfile, and `docker build .` on the new base digest: pass. ## What it owes - [x] No em dash or en dash, and nothing in the repository is in Spanish outside `site/src/content/docs/es/`. **Also carries #115 and #116.** #115 takes the site's dependencies past the four high advisories in its audit, and #116 stamps the fake InfluxDB's set-aside copy with the moment of the delete, which fixes the two end-to-end tests failing on main since 2026-10-04. Each of the three fixed one part of the required CI check and failed on the others, and this repository only allows squash merges, so they land together; #115 and #116 are closed in favour of this PR.



What this changes
pnpm audit --audit-level=highinsite/(the "Site dependency audit" job) fails on every branch with four high advisories that arrived in the advisory database, not in a commit. This takes each one to a patched version with the smallest change that reaches it:package.jsonnow asks for^0.35.5.^4.2.0), sopnpm updateresolves them again and the lockfile changes nothing else.^5.3.1up to its latest release (8.0.1), so no parent update reaches a fix. It is an override insite/pnpm-workspace.yaml, written beside the existing ones with its reason. Forcing the major is safe here, unlike brace-expansion's: 6.0.0's only breaking change is that a client refuses a separate transfer host by default, and get-uri calls onlyClient,access,lastMod,list,downloadToandclose, whose declarations are identical in 5.3.1 and 6.2.3. 6.2.3 also carries the fixes for GHSA-5rfr-xx34-2xxv and GHSA-r4jh-29pc-gfqr, which the project published after 6.2.1. The path is dev-only: pa11y-ci > puppeteer > @puppeteer/browsers > proxy-agent > pac-proxy-agent > get-uri.The low and moderate findings that remain (dompurify, katex, smol-toml, postcss-selector-parser) are below the level the job fails on and are left alone. Dependabot's #111 also bumps sharp to 0.35.5, among six other minor and patch updates; it fixes none of the other three, so this does not duplicate it, and Dependabot will rebase it after either lands.
This does not make CI green on its own. The two end-to-end tests that fail on main are fixed separately, in the test-only #116, and govulncheck (GO-2026-6617, net/http in Go 1.27.1) stays red: it is out of scope by the author's decision, and nothing here touches the Go toolchain.
How it was checked
pnpm install --frozen-lockfilethenpnpm audit --audit-level=highinsite/: before, 4 high (plus the 2 ignored extract-zip ones); after, exit 0 with "3 low | 2 moderate, 2 ignored: 2 high".cd site && pnpm run build(93 pages) and every check the CI and docs workflows run on it:check,contrast:check,i18n:check,cards:check,stats:check,figures:check,docs:check,eslint,format:check,html-validate,htmlhint,a11y:check,schema:check,directives:check,twins:check,llms:check,tables:check: all exit 0.pnpm run pa11y: 30/30 URLs passed.requireof both, and of get-uri'sdist/ftp.js).go test -count=1 ./internal/render/...: ok (no MDX changed).make build vet test-race,make golangci-lint,make check-*: not applicable, no Go change.What it owes
site/src/content/docs/es/.