{"id":"CVE-2026-120325","kind":"vulnerability","aliases":["CVE-2026-120325"],"related":[],"title":"Knip: path traversal in workspace handler lets attackers write files","description":"A security vulnerability has been detected in Webpro-nl Knip up to 6.44.0. The impacted element is the function writeFile of the file packages/knip/src/IssueFixer.ts of the component Workspace Handler. Such manipulation of the argument workspaces leads to path traversal. The attack can be executed remotely. The exploit has been disclosed publicly and may be used. The vendor was contacted early about this disclosure but did not respond in any way.","summary":"Knip, a dead-code finder for JavaScript and TypeScript projects, has a path traversal flaw in its IssueFixer writeFile function when handling the workspaces argument. A remote attacker can use crafted workspace paths to write files outside the intended directory, and a public exploit exists.","severity":"high","cvss":7.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["ci","javascript","knip","package","typescript"],"not_affected_if":["knip-not-installed","trusted-input-only"],"how_to_check":"- Check the installed Knip version with `npx knip --version` or `npm ls knip` in each project\n- Search lockfiles and CI configs for `knip` to find every place it runs","fix":"- Knip: unknown; the sources state no fixed version and the vendor did not respond","status":"open","published_at":"2026-11-02T03:17:30+00:00","first_seen_at":"2026-11-02T03:31:23+00:00","triaged_at":"2026-11-02T03:31:51+00:00","updated_at":"2026-11-02T03:31:51+00:00","category":"package","confidence":0.6,"triage":{"at":"2026-11-02T03:31:51Z","model":"claude-haiku-5-5","output":{"fix":"- Knip: unknown; the sources state no fixed version and the vendor did not respond","reach":"internet","title":"Knip: path traversal in workspace handler lets attackers write files","impact":"high","summary":"Knip, a dead-code finder for JavaScript and TypeScript projects, has a path traversal flaw in its IssueFixer writeFile function when handling the workspaces argument. A remote attacker can use crafted workspace paths to write files outside the intended directory, and a public exploit exists.","audience":"developers","category":"package","nicknames":[],"who_cares":["knip","javascript","typescript","ci"],"confidence":0.6,"fix_status":"none","needs_auth":"unknown","worst_case":"Attacker writes arbitrary files on the machine running Knip","analyst_note":"Confirm the fixed version and the exact trigger for the workspaces argument; the vendor did not respond per the NVD description.","how_to_check":"- Check the installed Knip version with `npx knip --version` or `npm ls knip` in each project\n- Search lockfiles and CI configs for `knip` to find every place it runs\n- unknown whether a specific setting or feature must be enabled to trigger the flaw","plain_action":"","needs_analyst":true,"not_affected_if":["knip-not-installed","trusted-input-only"],"who_is_affected":"Projects that run Knip up to version 6.44.0, including in CI pipelines, where the workspaces argument can be influenced from outside. The sources do not say whether Knip run on trusted local input only is exposed. Teams that do not run Knip, or run only trusted configurations, can likely deprioritise it.","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000717,"input_tokens":4166,"output_tokens":601,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-120325':13A,16A '-2026':12A,15A '6.44.0':81C 'argument':47B,102C 'attack':8A,50B,109C 'ci':17B 'code':26B 'compon':95C 'contact':127C 'craft':53B 'cve':11A,14A 'dead':25B 'dead-cod':24B 'detect':73C 'directori':62B 'disclos':118C 'disclosur':131C 'earli':128C 'element':84C 'execut':112C 'exist':67B 'exploit':66B,115C 'file':10A,58B,91C 'finder':27B 'flaw':37B 'function':42B,87C 'handl':44B 'handler':6A,97C 'impact':83C 'intend':61B 'issuefix':40B 'javascript':18B,29B 'knip':1A,19B,22B,78C 'lead':104C 'let':7A 'manipul':99C 'may':121C 'nl':77C 'outsid':59B 'packag':20B 'packages/knip/src/issuefixer.ts':92C 'path':2A,35B,55B,106C 'project':32B 'public':65B,119C 'remot':49B,113C 'respond':135C 'secur':69C 'travers':3A,36B,107C 'typescript':21B,31B 'use':52B,123C 'vendor':125C 'vulner':70C 'way':138C 'webpro':76C 'webpro-nl':75C 'workspac':5A,46B,54B,96C,103C 'write':9A,57B 'writefil':41B,88C","nicknames":[],"mitigations":[],"who_affected":"Projects that run Knip up to version 6.44.0, including in CI pipelines, where the workspaces argument can be influenced from outside. The sources do not say whether Knip run on trusted local input only is exposed. Teams that do not run Knip, or run only trusted configurations, can likely deprioritise it.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"none","audience":"developers","plain_action":null,"pkeys":[],"ptokens":[],"labels":["ci","high","javascript","knip","package","typescript"],"first_public_at":"2026-11-02T03:17:30+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"cna@vuldb.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-120325","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-120325","severity":null,"published_at":"2026-11-02T03:17:30+00:00","modified_at":"2026-11-02T03:17:30+00:00","first_seen_at":"2026-11-02T03:31:23+00:00","fetched_at":"2026-11-02T03:31:23+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}