LangChain은 LangGraph Platform의 공식 Helm 차트를 포함해 LangGraph Server 런타임인 langgraph-api를 대상으로 한 GitHub Security Advisory 두 건을 8월 19일 UTC 18:55:5718:56:03에 공개했다. 두 취약점 모두 운영 중인 에이전트 런타임에서 발생한 크로스 테넌트 권한 부여 실패다.

두 가지 버그

CVE-2026-55236(CVSS 5.9, 기밀성 중심): 런 생성 경로는 assistants.search 권한 부여 이벤트를 전송한 반면, 직접 읽기와 cron 작업은 assistants.read를 전송했다. 글로벌 대체 경로 없이 assistants.read를 기준으로 어시스턴트 접근을 차단하도록 커스텀 핸들러를 설정한 배포에서는, 런 생성 시 아무 핸들러도 호출되지 않았다. 그 결과 소유자 제약이 사라지면서 다른 사용자의 비공개 어시스턴트 metadata, config, context가 응답에 반환됐다.

CVE-2026-55235(CVSS 5.9, 무결성 중심): 런 또는 cron이 상대적 웹훅 대상을 지정할 수 있었다. 그러면 전달은 인증 미들웨어가 내부로 간주해 인증하지 않는 인프로세스 전송을 통해 동일한 애플리케이션으로 되돌아갔고, 이를 통해 한 요청이 다른 사용자의 thread에 런을 생성하거나 상태를 수정할 수 있었다.

일반적인 설명이 놓치는 점

이 사안은 LangGraph에서 새로 발견된 취약점으로 보도될 것이다. 그러나 두 가지를 바로잡아야 한다. 첫째, 수정본은 2026년 6월 11일부터 이미 PyPI에 올라와 있었다. 최초 패치 버전은 0.10.0이며, 그 이후 14개의 추가 릴리스가 배포돼 8월 18일의 0.12.6까지 이어졌다. 비교적 최신 버전을 사용한 이용자는 애초에 노출되지 않았다. 8월 19일에 일어난 일은 발견이 아니라 공개였고, 급박한 대응도 아니었다.

둘째, "에이전트 플랫폼의 크로스 테넌트 데이터 노출"이라는 표현은 영향 범위를 과장한다. CVE-2026-55236은 글로벌 핸들러 없이 assistants.read 또는 assistants.search를 등록하는 커스텀 권한 부여 핸들러를 작성한 배포에서만 발생한다. LangChain의 자체 공지에 따르면 커스텀 핸들러가 없거나, 모든 이벤트에 걸쳐 동일한 소유자 필터를 적용한 배포는 영향을 받지 않는다. 두 공지 모두 분명히 적고 있다. "우리는 이러한 동작이 실제 환경에서 발생했다는 증거를 갖고 있지 않다."

버그의 구조가 곧 이야기다

두 취약점은 같은 실패 양상에서 비롯됐다. 동일한 자원에 이르는 내부 경로가 둘 이상인데 그중 하나에서 권한 부여 이벤트 이름이 달라지고, 여기에 인증을 완전히 건너뛰는 "내부" 전송이 더해진 구조다. 에이전트 서버는 웹훅, cron, thread, run이 서로 다른 진입점으로 공유 상태를 건드리는 구조이기 때문에 정확히 이런 표면을 쌓아 올린다. 이 유형의 문제는 어느 한 팀의 부주의 때문이 아니라 구조적 이유로 계속 반복될 것이다.