githubnext / githubnext/gh-aw-cao

[dependabot:release-train-updater] npm security fix ready but create_pull_request failed again (undici override)

Closed
#8,282 0 comments 0 reactions 0 assignees View on GitHub
dependabot dependabot:release-train-updater
Dominant language
JavaScript
Stars
3
Forks
1
Avg merge
49m
Merged PRs (30d)
837

Description

## Summary
`npm audit` on the root `package.json`/`package-lock.json` reports 5 vulnerabilities (1 high, 4 moderate) rooted in a vulnerable transitive `undici@5.29.0` (pulled in via `@actions/github` and `@actions/artifact`'s nested `@actions/github@6.0.1`). A fix was prepared, validated, and committed, but `create_pull_request` failed twice with the same generic error, so the fix is documented here for manual application or a future run's retry.

**Action:** Maintainer should manually apply the patch below (or re-dispatch this worker) and open the PR; acceptance check is `npm audit --package-lock-only` reporting 0 vulnerabilities after applying.

## Root cause
Root `package.json` declares `@actions/github@^7.0.0`; `@actions/artifact` also nests a second copy of `@actions/github@6.0.1`. Both resolve `undici@^5.28.5` → vulnerable `5.29.0`, matching these advisories:
- GHSA-g9mf-h72j-4rw9 (unbounded decompression, high)
- GHSA-2mjp-6q6p-2qxm (request smuggling)
- GHSA-vrm6-8vpv-qv8q
- GHSA-v9p9-hfj2-hcw8 (WebSocket DoS)
- GHSA-4992-7rv2-5pvq (CRLF injection)

## Fix (prepared, validated, not yet a PR)
Add to root `package.json`:
```json
"overrides": {
"undici": "6.28.1"
}
```
Then regenerate the lockfile:
```bash
npm install --registry=https://registry.npmjs.org/ --package-lock-only --ignore-scripts
```

This avoids `npm audit fix --force`, which would bump `@actions/github` to `9.1.1` (a larger, semver-major, invasive change) — the override achieves the same security fix without touching declared major versions. Both `@actions/github`/`@actions/artifact`/`@github/local-action` are devDependencies used only by `activity/local-runner.mjs` (local Actions tooling), not production runtime. `dashboard/site/package.json` has its own independent lockfile and does not resolve `undici` at all — out of scope.

## Validation performed
- `npm audit --package-lock-only --json` before: 5 vulnerabilities (1 high, 4 moderate)
- `npm install --package-lock-only --ignore-scripts` applying the override
- `npm audit --package-lock-only --json` after: **0 vulnerabilities**
- Both `package.json` and `package-lock.json` confirmed valid JSON
- `git diff --stat`: exactly 2 files changed (`package.json` +3/-0, `package-lock.json` net +41/-34)

Full diff (git patch format)

```diff
diff --git a/package-lock.json b/package-lock.json
index c6f76d05..ab7e320b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -76,17 +76,14 @@
"undici": "^5.25.4"
}
},
- "node_modules/@actions/artifact/node_modules/@actions/github/node_modules/undici": {
- "version": "5.29.0",
- "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz",
- "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==",
+ "node_modules/@actions/artifact/node_modules/undici": {
+ "version": "6.28.1",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.28.1.tgz",
+ "integrity": "sha512-zWpdTVD54H48CIybL0rWQ3ukpb9d23wM7eH5RtfdmeP70cWHNjtfo7P4vZX+5CoDcO53J4Pu5uXp7lNfjc6DRA==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "@fastify/busboy": "^2.0.0"
- },
"engines": {
- "node": ">=14.0"
+ "node": ">=18.17"
}
},
"node_modules/@actions/cache": {
@@ -156,16 +153,13 @@
}
},
"node_modules/@actions/github/node_modules/undici": {
- "version": "5.29.0",
- "resolved": "https://registry.npmjs.org/undici/-/undici-5.29.0.tgz",
- "integrity": "sha512-raqeBD6NQK4SkWhQzeYKd1KmIG6dllBOTt55Rmkt4HtI9mwdWtJljnrXjAFUBLTSN67HWrOIZ3EPF4kjUw80Bg==",
+ "version": "6.28.1",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.28.1.tgz",
+ "integrity": "sha512-zWpdTVD54H48CIybL0rWQ3ukpb9d23wM7eH5RtfdmeP70cWHNjtfo7P4vZX+5CoDcO53J4Pu5uXp7lNfjc6DRA==",
"dev": true,
"license": "MIT",
- "dependencies": {
- "@fastify/busboy": "^2.0.0"
- },
"engines": {
- "node": ">=14.0"
+ "node": ">=18.17"
}
},
"node_modules/@actions/glob": {
@@ -1678,16 +1672,6 @@
"@expressive-code/core": "^0.44.2"
}
},
- "node_modules/@fastify/busboy": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.1.tgz",
- "integrity": "sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=14"
- }
- },
"node_modules/@github/copilot": {
"version": "1.0.82",
"resolved": "https://registry.npmjs.org/@github/copilot/-/copilot-1.0.82.tgz",
@@ -4374,6 +4358,7 @@
"cpu": [
"ppc64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4390,6 +4375,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4406,6 +4392,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4422,6 +4409,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4438,6 +4426,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4454,6 +4443,7 @@
"cpu": [
"arm"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4470,6 +4460,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4486,6 +4477,7 @@
"cpu": [
"loong64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4502,6 +4494,7 @@
"cpu": [
"mips64el"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4518,6 +4511,7 @@
"cpu": [
"ppc64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4534,6 +4528,7 @@
"cpu": [
"riscv64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4550,6 +4545,7 @@
"cpu": [
"s390x"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4566,6 +4562,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4582,6 +4579,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4598,6 +4596,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4614,6 +4613,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4630,6 +4630,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4646,6 +4647,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4662,6 +4664,7 @@
"cpu": [
"arm64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -4678,6 +4681,7 @@
"cpu": [
"x64"
],
+ "dev": true,
"license": "Apache-2.0",
"optional": true,
"os": [
@@ -11345,15 +11349,6 @@
"integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==",
"license": "MIT"
},
- "node_modules/undici": {
- "version": "8.10.2",
- "resolved": "https://registry.npmjs.org/undici/-/undici-8.10.2.tgz",
- "integrity": "sha512-/y4/bH9YNU5hi9NIrpOuvGXFcxrj3CMrV+/AYpowAYTpHn8gX/XPFjNy766FPoYY0miQhdW977JFWKGNhBdwyQ==",
- "license": "MIT",
- "engines": {
- "node": ">=22.19.0"
- }
- },
"node_modules/undici-types": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz",
@@ -11390,6 +11385,15 @@
"undici": "^8.0.0"
}
},
+ "node_modules/unifont/node_modules/undici": {
+ "version": "6.28.1",
+ "resolved": "https://registry.npmjs.org/undici/-/undici-6.28.1.tgz",
+ "integrity": "sha512-zWpdTVD54H48CIybL0rWQ3ukpb9d23wM7eH5RtfdmeP70cWHNjtfo7P4vZX+5CoDcO53J4Pu5uXp7lNfjc6DRA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.17"
+ }
+ },
"node_modules/unist-util-find-after": {
"version": "5.0.0",
"resolved": "(msfeed2.pkgs.visualstudio.com/redacted),
diff --git a/package.json b/package.json
index 69d313cc..e0b6f1a4 100644
--- a/package.json
+++ b/package.json
@@ -51,5 +51,8 @@
"@types/node": "^26.4.1",
"fake-indexeddb": "^6.2.5",
"typescript": "^7.0.2"
+ },
+ "overrides": {
+ "undici": "6.28.1"
}
}

```

## Tooling issue: `create_pull_request` failed twice
This run committed the fix to branch `dependabot-agent/undici-security-fix-20260910083834` (commit `1e3d4572`, 2 files, verified via `git log origin/main..HEAD` and `git diff origin/main HEAD --stat` before calling the tool) and called `create_pull_request` twice — once without `base`, once with explicit `base: "main"` — both attempts returned the identical generic error:
```
{"result":"error","error":"No changes to commit - no commits found"}
```
despite the commit clearly existing and being non-empty. This is the **second consecutive run** in this repository (`githubnext/gh-aw-cao`) hitting this exact failure for an undici/security fix (see the 2026-09-10 07:55 UTC run's cache notes), with two different diff sizes (41+/34- lines this run vs. a similar range previously), suggesting the bug is in the `create_pull_request` patch-generation path for this repo/workflow and is not caused by diff size. Recommend maintainer investigation of the `create_pull_request` safe-output tool/service for this repository.

### Control Plane
- Correlation ID: 34455904106-963
- Central repo: githubnext/gh-aw-cao
- Run URL: https://github.com/githubnext/gh-aw-cao/actions/runs/34455904106

> Generated by [:dependabot: Dependabot / Release Trains](https://github.com/githubnext/gh-aw-cao/actions/runs/34455904106) · copilot · auto · 67.8 AIC · ⌖ 19.3 AIC · ⊞ 18K · [◷](https://github.com/search?q=repo%3Agithubnext%2Fgh-aw-cao+is%3Aissue+%22gh-aw-workflow-call-id%3A+githubnext%2Fgh-aw-cao%2Fdependabot-release-train-updater%22&type=issues)
>

Add this agentic workflow to your repo

To install this agentic workflow, run

```
gh aw add githubnext/gh-aw-cao/.github/workflows/dependabot-release-train-updater.md@main
```

> - [x] expires on Sep 24, 2026, 8:43 AM UTC

Contributor guide

Open the contributing guide

Research direction

Start with the root package.json and package-lock.json, then review the prepared undici override and the dependency paths through @actions/github and @actions/artifact. Run npm install --registry=https://registry.npmjs.org/ --package-lock-only --ignore-scripts, followed by npm audit --package-lock-only, and confirm the audit reports 0 vulnerabilities and only the two intended files change.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, javascript
Domain
devops, security, tooling
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.