{"id":"CVE-2026-59152","aliases":["GHSA-f4xh-w4cj-qxq8"],"title":"LangSmith SDK TracingMiddleware: Arbitrary server-side file read","summary":"LangSmith SDK TracingMiddleware: Arbitrary server-side file read","severity":"high","cvss":7.7,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N","vendor":"langsmith","product":"langsmith","ecosystem":"pip","affected":["langsmith < 0.8.18"],"patched":["langsmith 0.8.18"],"published":"2026-06-19","updated":"2026-09-10","sourceUpdated":"2026-09-10T03:50:49.251222821Z","source":"OSV","sourceUrl":"https://osv.dev/vulnerability/GHSA-f4xh-w4cj-qxq8","references":[{"url":"https://github.com/langchain-ai/langsmith-sdk/security/advisories/GHSA-f4xh-w4cj-qxq8"},{"url":"https://github.com/langchain-ai/langsmith-sdk"}],"tags":["osv","pip"],"epss":0.00198,"epssPercentile":0.09923,"ingestedAt":"2026-07-08T18:25:48.646Z","slug":"CVE-2026-59152","body":"## Overview\n\n# Summary\n\nAn attacker who can send an HTTP request to a server running the LangSmith SDK's `TracingMiddleware` can cause that server to read an arbitrary file from its local filesystem and upload the contents to LangSmith as a trace attachment. Depending on how the distributed trace system is deployed, triggering a read may not require authentication. Retrieving the contents requires read access to the LangSmith workspace the traces are sent to. The net effect is a trust-boundary crossing: a party with workspace trace-read access (for example a low-privilege workspace member, a contractor, or a compromised teammate account) gains the ability to read files from any server running `TracingMiddleware`, a capability outside that workspace's intended trust boundary.\n\n# Impact\n\nConfidentiality (High): arbitrary read of files accessible to the server process, exposed to anyone with workspace trace-read access.\n\n# Details\n\nTwo defects combine. A field supplied through a tracing-propagation header was merged into the run without validation, allowing injection of run attributes including attachments (CWE-346). A type check intended to gate filesystem access did not match the type of the decoded input, so the guard never engaged (CWE-843). As a result, an attacker-named file is opened by the server and uploaded as a trace attachment by the background tracing thread (CWE-22).\n\n## Who can exploit this\n\n- Anyone reachable by HTTP can trigger the file read. Depending on how the distributed trace system is deployed, triggering may not require authentication.\n- Retrieving the file contents requires read access to the destination LangSmith workspace. The upload uses the server's own configured API key and workspace, which the attacker cannot redirect, so a zero-access outsider cannot retrieve the result; a workspace member, or anyone who has compromised one, can.\n\n# Remediation\n\nUpgrade the Python SDK to `>= 0.8.18`.\n\n# Workarounds\n\nUntil upgrading, do not expose `TracingMiddleware` to untrusted HTTP traffic, and limit workspace trace-read access to trusted members.\n\n# Credits\n\nFirst reported by @Ryu7zz.\n\n## Affected packages\n\n- `langsmith < 0.8.18`\n\n## Remediation\n\nUpgrade to a patched release:\n\n- `langsmith 0.8.18`","depth":"twilight","depthScore":42,"depthScoreParts":{"impact":42.4,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}