{"schemaVersion":3,"id":"CVE-2026-34451","aliases":["GHSA-5474-4w2j-mq4c"],"status":"published","duplicateOf":null,"title":"Claude SDK for TypeScript: Memory Tool Path Validation Allows Sandbox Escape to Sibling Directories","description":"Claude SDK for TypeScript provides access to the Claude API from server-side TypeScript or JavaScript applications. From version 0.79.0 to before version 0.81.0, the local filesystem memory tool in the Anthropic TypeScript SDK validated model-supplied paths using a string prefix check that did not append a trailing path separator. A model steered by prompt injection could supply a crafted path that resolved to a sibling directory sharing the memory root's name as a prefix, allowing reads and writes outside the sandboxed memory directory. This issue has been patched in version 0.81.0.","dates":{"published":"2026-03-31T21:35:21.018Z","modified":"2026-04-01T18:57:05.442Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":6.3,"severity":"medium","version":"4.0","versionLabel":"v4.0","source":"CVE.org","vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"4.0","versionLabel":"v4.0","source":"CVE.org","score":6.3,"severity":"medium","vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":false},{"version":"4.0","versionLabel":"v4.0","source":"OSV · Npm","score":6.3,"severity":"medium","vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N","exploitability":null,"impact":null,"computed":true},{"version":"3.1","versionLabel":"v3.1","source":"OSV · Npm","score":5.4,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N","exploitability":5.6,"impact":4.5,"computed":true},{"version":"4.0","versionLabel":"v4.0","source":"NVD","score":6.3,"severity":"medium","vector":"CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/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","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":5.4,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:L/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00392,"percentile":0.32171,"severity":"low","asOf":"2026-10-22T00:00:00.000Z","change":{"pp":0.04299999999999998,"baselineDate":"2026-09-22T00:00:00.000Z","baselineScore":0.00349},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00349,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00349,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00349,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00349,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00349,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00349,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00349,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00349,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00349,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00349,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-22T00:00:00.000Z","score":0.00392,"percentile":0.32171}],"last30":[{"date":"2026-09-22T00:00:00.000Z","score":0.00349,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00349,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.00392,"percentile":null},{"date":"2026-10-22T00:00:00.000Z","score":0.00392,"percentile":0.32171}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-22","name":"Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","description":"The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/22.html"},{"id":"CWE-41","name":"Improper Resolution of Path Equivalence","description":"The product is vulnerable to file system contents disclosure through path equivalence. Path equivalence involves the use of special characters in file and directory names. The associated manipulations are intended to generate multiple names for the same object.","type":"weakness","status":"Incomplete","abstraction":"Base","likelihoodOfExploit":null,"url":"https://cwe.mitre.org/data/definitions/41.html"}],"affected":[{"vendor":"anthropic","product":"claude_sdk_for_typescript","name":"claude sdk for typescript","label":"claude_sdk_for_typescript","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 0.79.0, < 0.81.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 0.79.0, < 0.81.0","eol":null,"hubHref":"/vendor/anthropic/claude_sdk_for_typescript"},{"vendor":"anthropics","product":"anthropic-sdk-typescript","name":"anthropic-sdk-typescript","label":"anthropic-sdk-typescript","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 0.79.0, < 0.81.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 0.79.0, < 0.81.0","eol":null,"hubHref":"/vendor/anthropics/anthropic-sdk-typescript"},{"vendor":"@anthropic-ai","product":"sdk","name":"@anthropic-ai/sdk","label":"sdk","ecosystem":"Npm","cpePart":null,"purl":"pkg:npm/@anthropic-ai/sdk","purlType":"npm","versions":[{"text":"≥ 0.79.0, < 0.81.0","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 0.79.0, < 0.81.0","eol":null,"hubHref":null}],"affectedCount":3,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/anthropics/anthropic-sdk-typescript/security/advisories/GHSA-5474-4w2j-mq4c","label":"github.com/anthropics/anthropic-sdk-typescript/security/advisories/GHSA-5474-4w2j-mq4c","hostname":"github.com","tags":["X Refsource CONFIRM","WEB","Vendor Advisory"]},{"url":"https://github.com/anthropics/anthropic-sdk-typescript/commit/0ac69b3438ee9c96b21a7d3c39c07b7cdb6995d9","label":"github.com/anthropics/anthropic-sdk-typescript/commit/0ac69b3438ee9c96b21a7d3c39c07b7cdb6995d9","hostname":"github.com","tags":["X Refsource MISC","WEB","Patch"]},{"url":"https://github.com/anthropics/anthropic-sdk-typescript/releases/tag/sdk-v0.81.0","label":"github.com/anthropics/anthropic-sdk-typescript/releases/tag/sdk-v0.81.0","hostname":"github.com","tags":["X Refsource MISC","WEB","Release Notes"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-34451","label":"nvd.nist.gov/vuln/detail/CVE-2026-34451","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://github.com/anthropics/anthropic-sdk-typescript","label":"github.com/anthropics/anthropic-sdk-typescript","hostname":"github.com","tags":["PACKAGE"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-03-31T21:35:21.018Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-04-01T18:57:05.442Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":25,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-22T19:37:03.149Z","stale":false,"partial":false}}