취약점 개요
OpenAI의 GPT-4와 같은 거대 언어 모델(LLM)의 등장과 성공으로 인해 AI분야는 비약적으로 발전하고 있다. 이와 함께 LangChain과 같은 언어 모델 기반 애플리케이션 프레임워크들도 AI 서비스 개발에 도움을 주며 개발자들의 관심을 끌고 있다.
그러나, AI서비스 개발에 사용되는 Python 모듈인 LangChain의 ①PAL&CPALChain, ②PythonREPL, ③LLMMathChain에서 원격 실행 취약점이 발견됐다. 이들 취약점은 악의적인 사용자들이 시스템을 공격하거나 데이터를 유출할 수 있는 위험성을 내포하고 있어 주의가 필요하다.
①PAL&CPALChain, ②PythonREPL의 취약점은 exec[1]에 대한 입력을 검증없이 전달하여 발생한다. Chain에서 악의적인 출력을 생성할 수 있어 개발자가 의도하지 않은 동작을 유발할 수 있다. ①PAL&CPALChain의 경우 LangChain_experimental 패키지로 이동되어 취약점이 어느정도 완화되었지만, ②PythonREPL의 경우 현재 시점(2023-10-05)까지 패치가 진행되지 않아 주의해야 한다. ③LLMMathChain은 데이터 처리 과정에서 취약한 버전의 NumExpr을 사용하여 원격 코드 실행이 가능한 취약점이 있다. 하지만 LangChain(v0.0.307) 이상 버전을 설치하면 업데이트 된 NumExpr을 사용하도록 강제하므로, 취약한 버전의 NumExpr이 LangChain 보다 먼저 설치되어 있는 경우에도 안전하다.
[1] exec: 문자열을 입력으로 받아 실행시키는 함수
특히, 최근 기업들은 언어 모델을 활용한 AI상담사나 챗봇과 같은 서비스를 개발하고 배포하는데 있어 LangChain을 많이 사용하고 있다. 그러나 LangChain에는 이번에 살펴볼 취약점과 같이 최신 버전까지 영향을 미치는 취약점이 존재하기 때문에, 사용 시 세밀한 검토 및 주기적인 패치가 필요하다.
영향받는 소프트웨어 버전
CVE-2023-38860, CVE-2023-39659, CVE-2023-39631에 취약한 소프트웨어는 각각 다음과 같다.
* 현재 시점(2023-10-05) 최신 버전인 LangChain v0.0.308버전 기준으로 여전히 취약함. (후략)
더 자세한 내용은 리포트 다운로드를 통해 확인하세요! (클릭)