CVE-2026-29872: RCE — Patch Guide
CVE-2026-29872
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 Age...
Overview
A critical information disclosure vulnerability has been identified in the awesome-llm-apps project, specifically in a Streamlit-based GitHub MCP Agent. The flaw, tracked as CVE-2026-29872, stems from improper isolation of user sessions.
Vulnerability Details
In the affected application, user-supplied sensitive credentials-such as GitHub Personal Access Tokens or LLM API keys-are stored in the Python process’s global environment variables. Because Streamlit applications typically run multiple user sessions within a single, shared Python process, these credentials are not isolated. Any data written to os.environ becomes visible to all other users connecting to the same application instance. An attacker can simply query the environment variables from their session to retrieve another user’s tokens, requiring no authentication or special interaction.
Impact
The impact of this vulnerability is severe. Successfully exploited, it allows an unauthenticated attacker to steal:
- GitHub Personal Access Tokens, potentially leading to unauthorized access to private repositories, code theft, or even malicious commits, as seen in incidents like the GlassWorm attack force-pushing malware.
- LLM API Keys, which could be used for financial abuse, incurring substantial charges, or accessing proprietary AI models and data.
Exploitation is simple, reliable, and leaves no trace for the victim user.
Remediation and Mitigation
If you have deployed or used the affected version of the awesome-llm-apps project (commit e46690f from 2026-01-19), take these steps immediately:
- Rotate All Exposed Credentials: Consider any API tokens or keys entered into the vulnerable application as compromised. Immediately revoke and replace all GitHub Personal Access Tokens and LLM API keys that were supplied to the app.
- Update or Modify the Application: The root cause is the use of process-global
os.environfor session data. The application code must be modified to store user session data in an isolated context, such as Streamlit’s session state (st.session_state), which is properly scoped to individual users. - Audit Access: Review logs for your GitHub organization and LLM API providers for any suspicious activity originating from unrecognized IP addresses or locations following the use of this tool.
Security Insight
This vulnerability highlights a recurring pattern in the rapid development of AI tooling: security best practices for multi-user applications are often overlooked. The mistake of using global process state for user data is a classic web development error, now reappearing in new AI agent frameworks. It serves as a reminder that the integration of powerful, credentialed agents into web interfaces demands the same rigorous session and secret management as any traditional enterprise application.
Further Reading
Never miss a critical vulnerability
Get real-time security alerts delivered to your preferred platform.
Related Advisories
EverShop is a TypeScript-first eCommerce platform. Versions prior to 2.1.1 have a vulnerability in the "Forgot Password" functionality. When specifying a target email address, the API response returns...
UptimeFlare is a serverless uptime monitoring & status page solution, powered by Cloudflare Workers. Prior to commit 377a596, configuration file uptime.config.ts exports both pageConfig (safe for clie...
Known is a social publishing platform. Prior to 1.6.3, a Critical Broken Authentication vulnerability exists in Known 1.6.2 and earlier. The application leaks the password reset token within a hidden ...
Note Mark is an open-source note-taking application. In versions 0.19.1 and prior, the asset delivery handler serves uploaded files inline and relies on magic-byte detection for content type, which do...