🇰🇷 한글 설명
LangSmith SDK의 출력 재정의 기능(hideOutputs/hide_outputs)이 스트리밍 토큰 이벤트에 적용되지 않는 취약점입니다. new_token 이벤트를 통해 민감한 LLM 출력이 재정의 파이프라인을 우회하여 LangSmith에 저장됩니다. JavaScript SDK 0.5.19 이상, Python SDK 0.7.31 이상으로 업그레이드하여 해결됩니다.
💡 쉬운 설명
LangSmith SDK는 민감한 정보를 숨기는 기능이 있지만, 실시간 스트리밍 데이터에는 이 보호 기능이 작동하지 않습니다. 결과적으로 숨겨야 할 정보가 서버에 그대로 저장될 수 있습니다.
🇺🇸 원문 (English)
LangSmith Client SDKs provide SDK's for interacting with the LangSmith platform. Prior to version 0.5.19 of the JavaScript SDK and version 0.7.31 of the Python SDK, 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. Version 0.5.19 of the JavaScript SDK and version 0.7.31 of the Python SDK fix the issue.
📍 영향받는 시스템
LangSmith JavaScript SDK < 0.5.19, Python SDK < 0.7.31
⚔️ 공격 벡터
스트리밍 LLM 출력 시 각 토큰이 new_token 이벤트로 기록되며, 이는 출력 재정의 파이프라인을 완전히 우회하여 민감한 정보 노출
🛡️ 대응 방법
JavaScript SDK를 0.5.19 이상으로, Python SDK를 0.7.31 이상으로 업그레이드
🔧 검증 코드
설치된 langsmith 버전을 확인하여 Python은 0.7.31 이상, JavaScript는 0.5.19 이상인지 확인. 하위 버전이면 즉시 업그레이드 필요
pip show langsmith 2>/dev/null | grep Version