🇰🇷 한글 설명
awesome-llm-apps 프로젝트의 GitHub MCP Agent에서 세션 간 정보 노출 취약점이 발견되었습니다. Streamlit 기반 애플리케이션이 API 토큰을 세션별로 격리하지 않고 프로세스 전체 환경 변수(os.environ)에 저장하여, 이후 접속한 사용자가 이전 사용자의 자격 증명을 탈취할 수 있습니다. 이를 통해 GitHub 개인 액세스 토큰이나 LLM API 키와 같은 민감한 정보가 유출될 위험이 있습니다.
💡 쉬운 설명
여러 사람이 함께 사용하는 프로그램에서 비밀번호를 공용 게시판에 적어두는 것과 같은 문제입니다. 나중에 접속한 사람이 앞서 접속한 사람의 비밀번호를 쉽게 훔쳐볼 수 있는 상태입니다.
🇺🇸 원문 (English)
A cross-session information disclosure vulnerability exists in the awesome-llm-apps project in commit e46690f99c3f08be80a9877fab52acacf7ab8251 (2026-01-19). The affected Streamlit-based GitHub MCP Agent stores user-supplied API tokens in process-wide environment variables using os.environ without proper session isolation. Because Streamlit serves multiple concurrent users from a single Python process, credentials provided by one user remain accessible to subsequent unauthenticated users. An attacker can exploit this issue to retrieve sensitive information such as GitHub Personal Access Tokens or LLM API keys, potentially leading to unauthorized access to private resources and financial abuse.
📍 영향받는 시스템
awesome-llm-apps (commit e46690f99c3f08be80a9877fab52acacf7ab8251 및 이전 버전)
⚔️ 공격 벡터
동일한 Python 프로세스를 공유하는 Streamlit 애플리케이션에 접속하여 환경 변수에 저장된 타 사용자의 API 토큰을 조회
🛡️ 대응 방법
os.environ 대신 Streamlit의 st.session_state를 사용하여 사용자별 세션 격리를 구현하고 최신 패치 버전을 적용하십시오.
🔧 검증 코드
명령어 실행 결과로 해당 커밋 해시가 출력되면 취약한 버전이 설치된 상태입니다.
git rev-parse HEAD | grep -E 'e46690f99c3f08be80a9877fab52acacf7ab8251'