🇰🇷 한글 설명
LangGraph의 SQLite 체크포인트 저장소에서 msgpack으로 인코딩된 데이터를 역직렬화할 때 Python 객체를 비안전하게 복원합니다. 데이터베이스 손상 또는 권한 있는 쓰기 접근을 획득한 공격자는 악의적인 페이로드를 주입하여 체크포인트 로드 시 임의 코드 실행을 유발할 수 있습니다. 버전 1.0.9 이하에서 발생하며 현재 공식 패치가 없습니다.
💡 쉬운 설명
LangGraph에서 작업 상태를 저장하는 SQLite 데이터베이스가 해킹되면, 공격자가 저장된 데이터를 조작하여 악의적인 코드를 실행할 수 있습니다. 데이터베이스 접근권한이 있는 공격자에게만 실질적 위험이 있습니다.
🇺🇸 원문 (English)
LangGraph SQLite Checkpoint is an implementation of LangGraph CheckpointSaver that uses SQLite DB (both sync and async, via aiosqlite). In version 1.0.9 and prior, LangGraph checkpointers can load msgpack-encoded checkpoints that reconstruct Python objects during deserialization. If an attacker can modify checkpoint data in the backing store (for example, after a database compromise or other privileged write access to the persistence layer), they can potentially supply a crafted payload that triggers unsafe object reconstruction when the checkpoint is loaded. No known patch is public.
📍 영향받는 시스템
LangGraph checkpoint-sqlite 패키지 버전 1.0.9 이하 (Python: langgraph[sqlite])
⚔️ 공격 벡터
데이터베이스 손상/권한 있는 쓰기 접근으로 msgpack 인코딩 체크포인트를 조작하여 로드 시 악의적 Python 객체 역직렬화 트리거
🛡️ 대응 방법
데이터베이스 접근제어 강화, langgraph를 1.0.10 이상으로 업데이트, 체크포인트 데이터 암호화 또는 무결성 검증 구현
🔧 검증 코드
Version이 1.0.9 이하면 취약 상태. 1.0.10 이상으로 업그레이드하거나 데이터베이스 접근 제한 필요.
pip show langgraph 2>/dev/null | grep Version