CVE-2026-29872awesome-llm-apps项目中存在严重的跨会话信息泄露漏洞。该受影响的基于Streamlit的GitHub MCP Agent在处理用户提供的API令牌时,未能实现适当的会话隔离,直接将其存储在进程级的环境变量中。由于Streamlit框架在单一Python进程中服务多个并发用户,一名用户提供的凭证(如GitHub个人访问令牌或LLM API密钥)会在其会话结束后残留,导致后续未经身份认证的用户能够访问这些敏感信息。攻击者可利用此漏洞窃取凭证,进而导致未授权访问私有资源及潜在的财务滥用风险。
该漏洞的根本原因在于应用程序错误地使用了Python的全局环境变量字典来存储敏感的用户凭据,而不是使用Streamlit提供的会话状态管理功能。在Streamlit的默认架构中,所有用户共享同一个Python后端进程。当受害者用户A在应用中输入API Token时,应用程序调用`os.environ`将该令牌设置为环境变量。由于这些变量存储在进程的全局命名空间中,它们在用户A的会话结束后并不会自动清除。此时,如果用户B(攻击者)访问该应用,他们可以通过读取环境变量或触发相关功能,检索到用户A留下的凭证。由于无需身份认证(PR:N)且无需用户交互(UI:N),攻击者可以自动化地扫描并窃取活跃会话中的敏感令牌。