{"answers":{"affected":"3 open source packages ship an affected version, including anthropic. It affects 1 product.","exploited":"There is no known exploitation of CVE-2026-34452 in the wild and no public exploit code.","fix":"Upgrade anthropic to 0.87.0 or later.","what":"CVE-2026-34452 is a medium-severity vulnerability in anthropics anthropic-sdk-python, published on 31 Mar 2026. It can only be exploited from the same machine or local network, with no action from the victim."},"fix_prompt":"Check this codebase for CVE-2026-34452 and fix it if it is affected.\n\nWhat it is: CVE-2026-34452 is a medium-severity vulnerability in anthropics anthropic-sdk-python, published on 31 Mar 2026. It can only be exploited from the same machine or local network, with no action from the victim.\nExploitation: There is no known exploitation of CVE-2026-34452 in the wild and no public exploit code.\n\nAffected packages and fixed versions:\n- anthropic (PyPI): affected from 0.86.0; fixed in 0.87.0\n- anthropic (PyPI): affected from 0.86.0; fixed in 0.87.0\n- anthropic (PyPI): affected from 0.86.0; fixed in 0.87.0\n\nTask:\n1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.\n2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.\n3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.\n4. Run the tests and summarise what changed and why.\n5. If nothing in the project is affected, say so and change nothing.\n\nReference: https://insights.sbomify.com/CVE-2026-34452/ (Markdown: https://insights.sbomify.com/CVE-2026-34452/index.md)","id":"CVE-2026-34452","markdown":"https://insights.sbomify.com/CVE-2026-34452/index.md","name":"CVE-2026-34452","record":{"aliases":["ECHO-38d5-c884-2737","GHSA-w828-4qhx-vxx3","PYSEC-2026-2115"],"analysis":{"component_type":"library","fix_type":"upgrade","impacts":["data_read","data_modify"],"network_reachable":"adjacent_or_local","non_default_config":false,"product_category":"Python SDK","requires_auth":"low_privilege","summary":"A race condition in the Claude Python SDK allows local attackers to escape the sandbox via symlink manipulation, enabling unauthorized file access.","user_interaction":"not_required","vuln_class":"race_condition"},"analysis_generated_by":"qwen3.8-flash-next","assigner":"GitHub_M","cpe":[{"product":"claude_sdk_for_python","vendor":"anthropic"}],"cvss":{"score":5.8,"severity":"medium","source":"cna","vector":"CVSS:4.0/AV:L/AC:H/AT:N/PR:L/UI:N/VC:H/VI:L/VA:N/SC:N/SI:N/SA:N","version":"4.0"},"cwes":[{"id":"CWE-59","name":"Improper Link Resolution Before File Access"},{"id":"CWE-367","name":"Time-of-check Time-of-use (TOCTOU) Race Condition"}],"description":"The Claude SDK for Python provides access to the Claude API from Python applications. From version 0.86.0 to before version 0.87.0, the async local filesystem memory tool in the Anthropic Python SDK validated that model-supplied paths resolved inside the sandboxed memory directory, but then returned the unresolved path for subsequent file operations. A local attacker able to write to the memory directory could retarget a symlink between validation and use, causing reads or writes to escape the sandbox. The synchronous memory tool implementation was not affected. This issue has been patched in version 0.87.0.","ecosystems":["PyPI"],"exploits":{"exploitdb":0,"first_seen":null,"github_poc":0,"max_poc_stars":null,"metasploit":0,"nuclei":0,"refs":[],"tier":"none_known"},"has_fix":true,"headline":"Claude SDK for Python: Memory Tool Path Validation Race Condition Allows Sandbox Escape","id":"CVE-2026-34452","indexable":true,"kev":null,"kind":"cve","links":{"ecosystem":"PyPI","product":null,"products":[],"type":"race_condition","year":"2026"},"n_packages":3,"n_references":3,"next":{"headline":"SiYuan: Unauthenticated Access to Password-Protected Bookmarks via /api/bookmark/getBookmark","id":"CVE-2026-34453"},"packages":[{"ecosystem":"PyPI","fixed":["0.87.0"],"introduced":["0.86.0"],"last_affected":[],"package":"anthropic","purl":null,"source":"GHSA-w828-4qhx-vxx3"},{"ecosystem":"PyPI","fixed":["0.87.0"],"introduced":["0.86.0"],"last_affected":[],"package":"anthropic","purl":"pkg:pypi/anthropic","source":"GHSA-w828-4qhx-vxx3"},{"ecosystem":"PyPI","fixed":["0.87.0"],"introduced":["0.86.0"],"last_affected":[],"package":"anthropic","purl":"pkg:pypi/anthropic","source":"PYSEC-2026-2115"}],"prev":{"headline":"Claude SDK for TypeScript: Memory Tool Path Validation Allows Sandbox Escape to Sibling Directories","id":"CVE-2026-34451"},"products":["anthropic-sdk-python"],"published":"2026-03-31","related":[{"cvss_score":4.8,"headline":"Claude SDK for Python: Insecure Default File Permissions in Local Filesystem Memory Tool","id":"CVE-2026-34450","kev_date_added":null,"published":"2026-03-31"}],"sources":[{"class":"attribution","licence":"CVE Terms of Use (MITRE)","name":"CVE List","prefix":"CVE"},{"class":"attribution","licence":"CC BY 4.0","name":"GitHub Advisory Database","prefix":"GHSA"},{"class":"attribution","licence":"CC BY 4.0","name":"PyPA Advisory Database","prefix":"PYSEC"},{"class":"attribution","licence":"US public information, NVD API terms","name":"NVD"},{"class":"attribution","licence":"CWE Terms of Use","name":"CWE (MITRE)"},{"class":"attribution","licence":"FIRST CVSS licence","name":"CVSS (FIRST)"}],"ssvc":{"automatable":"no","exploitation":"none","technical_impact":"partial"},"state":"PUBLISHED","updated":"2026-04-03","vendors":["anthropics"]},"summary":"A race condition in the Claude Python SDK allows local attackers to escape the sandbox via symlink manipulation, enabling unauthorized file access.","url":"https://insights.sbomify.com/CVE-2026-34452/"}