Resolve tmp CVE Audit Finding
Summary
Updated the workspace dependency override for tmp so Bun resolves a patched version for the desktop packaging chain. The current audit finding, GHSA-ph9p-34f9-6g65, is no longer present: bun audit reports no vulnerabilities.
Changes Made
- Changed the root
overrides.tmprange from^0.2.5to^0.2.6. - Regenerated
bun.lockwithbun install, resolvingtmpto0.2.7. - Checked Forgejo-related access paths for open issue review. Git-over-SSH worked, but Forgejo issue API/web access was blocked or unavailable from this environment.
Context
bun audit on current main reported one high-severity vulnerability: tmp <0.2.6, pulled through workspace:@islandflow/desktop via @electron-forge/cli. The advisory describes path traversal risk through unsanitized prefix/postfix handling.
A previous Forgejo security branch already attempted this remediation, but that remote branch/PR also contains unrelated standup and Beads/documentation commits. This branch was rebuilt from forgejo/main in a clean worktree so the PR contains only the security fix and this task record.
fj issue search and authenticated REST calls hit Cloudflare 1010, the old git.dirtydishes.dev host resolves to 0.0.0.0, and git.deltaisland.io returned generic 404s for web issue routes. The local package audit was still checked end to end.Important Implementation Details
- The direct dependency source is transitive, so the safest narrow remediation is the existing root override.
- The range starts at
^0.2.6, the first non-vulnerable version according to the audit rule, while the lockfile currently resolvestmp@0.2.7. - No runtime application code changed. This is a package graph and lockfile correction.
Relevant Diff Snippets
The rendered diff below is generated with @pierre/diffs/ssr using preloadPatchFile({ patch, options: {} }). Each SSR fragment is contained inside a declarative Shadow DOM root so Diffs styles cannot affect the rest of the report.
175 unmodified lines176177178179180181182992 unmodified lines1175117611771178117911801181175 unmodified lines"@electron/node-gyp": "^10.2.0-electron.2","postcss": "^8.5.15","tar": "^7.5.15","tmp": "^0.2.5",},"packages": {"@biomejs/biome": ["@biomejs/biome@2.4.16", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.4.16", "@biomejs/cli-darwin-x64": "2.4.16", "@biomejs/cli-linux-arm64": "2.4.16", "@biomejs/cli-linux-arm64-musl": "2.4.16", "@biomejs/cli-linux-x64": "2.4.16", "@biomejs/cli-linux-x64-musl": "2.4.16", "@biomejs/cli-win32-arm64": "2.4.16", "@biomejs/cli-win32-x64": "2.4.16" }, "bin": { "biome": "bin/biome" } }, "sha512-x9ajFh1zChVybCiM3TN6OD4phAqLgtPZjFrZF+aTMYCPjwBO+k529TX7PPsAqtGNLeV4UgzwQnowEgS7bGmzcA=="],992 unmodified lines"terser-webpack-plugin": ["terser-webpack-plugin@5.6.0", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", "terser": "^5.31.1" }, "peerDependencies": { "webpack": "^5.1.0" } }, "sha512-Eum+5ajkaOhf5KbM26osvv21kLD7BaGqQ1UA4Ami4arYwylmGUQTgHFpHDdmJod1q4QXa66p0to/FBKID+J1vA=="],"tmp": ["tmp@0.2.5", "", {}, "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow=="],"to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="],175 unmodified lines176177178179180181182992 unmodified lines1175117611771178117911801181175 unmodified lines"@electron/node-gyp": "^10.2.0-electron.2","postcss": "^8.5.15","tar": "^7.5.15","tmp": "^0.2.6",},"packages": {"@biomejs/biome": ["@biomejs/biome@2.4.16", "", { "optionalDependencies": { "@biomejs/cli-darwin-arm64": "2.4.16", "@biomejs/cli-darwin-x64": "2.4.16", "@biomejs/cli-linux-arm64": "2.4.16", "@biomejs/cli-linux-arm64-musl": "2.4.16", "@biomejs/cli-linux-x64": "2.4.16", "@biomejs/cli-linux-x64-musl": "2.4.16", "@biomejs/cli-win32-arm64": "2.4.16", "@biomejs/cli-win32-x64": "2.4.16" }, "bin": { "biome": "bin/biome" } }, "sha512-x9ajFh1zChVybCiM3TN6OD4phAqLgtPZjFrZF+aTMYCPjwBO+k529TX7PPsAqtGNLeV4UgzwQnowEgS7bGmzcA=="],992 unmodified lines"terser-webpack-plugin": ["terser-webpack-plugin@5.6.0", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", "terser": "^5.31.1" }, "peerDependencies": { "webpack": "^5.1.0" } }, "sha512-Eum+5ajkaOhf5KbM26osvv21kLD7BaGqQ1UA4Ami4arYwylmGUQTgHFpHDdmJod1q4QXa66p0to/FBKID+J1vA=="],"tmp": ["tmp@0.2.7", "", {}, "sha512-e0votIpp4Uo2AJYSzVHV6xCcawuiez3DzqDAbrTc3YxBkplN6e+dM13ZeIcZnDg/QpSuU2zfZ3rzwY8ukEnaXw=="],"to-regex-range": ["to-regex-range@5.0.1", "", { "dependencies": { "is-number": "^7.0.0" } }, "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ=="],
38 unmodified lines3940414243444538 unmodified lines"overrides": {"postcss": "^8.5.15","tar": "^7.5.15","tmp": "^0.2.5","@electron/node-gyp": "^10.2.0-electron.2"},"dependencies": {38 unmodified lines3940414243444538 unmodified lines"overrides": {"postcss": "^8.5.15","tar": "^7.5.15","tmp": "^0.2.6","@electron/node-gyp": "^10.2.0-electron.2"},"dependencies": {
Expected Impact for End-Users
No interface or workflow behavior should change. The practical effect is reduced exposure to the known tmp path traversal advisory in the desktop build/tooling dependency graph.
Validation
bun audit: passed, no vulnerabilities found.bun test: passed, 250 tests across 41 files.git diff --check -- docs/turns/ package.json bun.lock: passed.bun run check: failed on pre-existing Biome import-order diagnostics in unrelated source/test files. No dependency-fix files were implicated.
Issues, Limitations, and Mitigations
- Forgejo issue list access was incomplete. CLI/API/web issue enumeration was blocked or unavailable from this environment. Mitigation: the local security audit was run from clean
main, and the only active audit finding was fixed. - Full Biome check is not green on current main. It reports import-order fixes across existing files outside this change. Mitigation: the targeted security audit and full test suite passed, and the PR avoids broad formatting churn.
- The fix relies on an override because
tmpis transitive through Electron Forge tooling. Mitigation: the lockfile records the resolved patched version.
Follow-up Work
- Once Forgejo issue access is available, cross-check the open issue list against this PR and close/comment on the matching security ticket.
- Retire or close the older polluted
lavender/address-cve-tmp@0.2.5PR/branch if this clean PR supersedes it. - Run a separate formatting PR for the existing Biome import-order backlog if
bun run checkshould become a merge gate.