VDB
KO
MEDIUM 5.3

GHSA-rr7j-v2q5-chgv

LangSmith SDK: Streaming token events bypass output redaction

Details

## Summary

The LangSmith SDK's output redaction controls (hideOutputs in JS, hide_outputs in Python) do not apply to streaming token events. When an LLM run produces streaming output, each chunk is recorded as a new_token event containing the raw token value. These events bypass the redaction pipeline entirely — prepareRunCreateOrUpdateInputs (JS) and _hide_run_outputs (Python) only process the inputs and outputs fields on a run, never the events array. As a result, applications relying on output redaction to prevent sensitive LLM output from being stored in LangSmith will still leak the full streamed content via run events.

## Details

**Both JS and Python SDKs are affected.** The same pattern exists in both:

- **JS SDK**: `traceable.ts:997-1003` and `traceable.ts:1044-1050` - **Python SDK**: `run_helpers.py:1924` and `run_helpers.py:1996`

In both SDKs, `new_token` events with raw `kwargs.token` values are added during streaming, and the redaction pipeline (`hideOutputs` in JS, `hide_outputs` in Python) only processes `inputs`/`outputs` — never `events`.

Are you affected?

Enter the version of the package you're using.

Affected packages

npm / langsmith
Introduced in: 0 Fixed in: 0.5.19
Fix npm install langsmith@0.5.19
PyPI / langsmith
Introduced in: 0 Fixed in: 0.7.31
Fix pip install --upgrade 'langsmith>=0.7.31'

References