무슨 일이 있었나
Google의 langfun 라이브러리(0.1.2 이전 버전)의 기본 lf.query Python 프로토콜은 샌드박스 없이 모델에서 생성된 Python 표현식을 평가합니다. 원격 인증되지 않은 공격자는 LLM이 실행 가능한 Python 표현식을 생성하도록 하는 프롬프트 입력을 제작할 수 있으며, 이러한 표현식은 호스트 애플리케이션의 컨텍스트에서 직접 평가됩니다.
왜 중요한가
langfun은 LLM 출력을 실행 가능한 프로토콜로 구조화하는 데 사용됩니다; 모델에서 생성된 코드의 비샌드박스형 eval은 프롬프트-인젝션 가능한 입력 표면을 호스트 애플리케이션에 대한 원격 코드 실행 벡터로 바꿉니다 — 프롬프트 인젝션이 임의의 코드 실행에 도달하는 직접적인 경우입니다.
공격 경로
제작된 프롬프트 입력으로 LLM이 악의적인 Python 표현식을 생성하도록 하며, langfun은 lf.query를 통해 이를 비샌드박스형으로 평가합니다
영향받는 시스템
Google langfun < 0.1.2
완화 방안
langfun >= 0.1.2로 업그레이드합니다; 모델에서 생성된 코드의 비샌드박스형 eval을 피합니다