HN user

lbeurerkellner

203 karma
Posts48
Comments52
View on HN
arxiv.org 4mo ago

Skill-Inject: Measuring Agent Vulnerability to Skill File Attacks

lbeurerkellner
1pts1
github.com 4mo ago

Snyk Agent Scan: Security scanner for AI agents, MCP servers and agent skills

lbeurerkellner
2pts0
github.com 5mo ago

MCP-Scan: A Security scanner for AI agents, MCP servers and agent skills

lbeurerkellner
3pts0
github.com 5mo ago

Technical Report: Exploring the Emerging Threats of the Agent Skill Ecosystem

lbeurerkellner
3pts0
github.com 8mo ago

MCP-Scan: Constrain, log and scan your MCP server for security vulnerabilities

lbeurerkellner
2pts0
invariantlabs.ai 11mo ago

Exposing Novel Prompt Injections, "Toxic Flows" in Agentic Systems

lbeurerkellner
1pts0
invariantlabs.ai 11mo ago

Hardening AI Agent Security with Toxic Flow Analysis

lbeurerkellner
2pts0
github.com 1y ago

Mcp-scan: constrain, log and scan your active MCP connections

lbeurerkellner
1pts0
github.com 1y ago

mcp-scan: Constrain, log and scan MCP traffic for security vulnerabilities

lbeurerkellner
2pts0
github.com 1y ago

MCP Streamable HTTP – Python and TypeScript Examples

lbeurerkellner
2pts0
invariantlabs.ai 1y ago

Show HN: Guardrails – A Contextual Security Layer for Agentic AI Systems

lbeurerkellner
1pts0
explorer.invariantlabs.ai 1y ago

Securing Agents with Rules

lbeurerkellner
2pts0
github.com 1y ago

MCP-scan: A security scanning tool for MCP servers

lbeurerkellner
1pts0
agentdojo.spylab.ai 1y ago

AgentDojo: An Environment to Evaluate Prompt Injection Attacks on AI Agents

lbeurerkellner
3pts0
invariantlabs.ai 1y ago

WhatsApp MCP Exploited: Exfiltrating your message history via MCP

lbeurerkellner
3pts0
lbeurerkellner.github.io 1y ago

MCP Tool Poisoning: Taking over Your Favorite MCP Client

lbeurerkellner
2pts0
lbeurerkellner.github.io 1y ago

MCP Tool Poisoning: Taking over Your Favorite MCP Client

lbeurerkellner
2pts0
twitter.com 1y ago

MCP is all fun, until you add this one malicious MCP server and forget about it

lbeurerkellner
1pts0
lbeurerkellner.github.io 1y ago

MCP Tool Poisoning: Taking over Your Favorite MCP Client

lbeurerkellner
1pts0
github.com 1y ago

JSONSchemaBench: Generating Structured Outputs from Language Models

lbeurerkellner
1pts0
invariantlabs.ai 1y ago

Enhancing Browser Agent Safety with Guardrails

lbeurerkellner
1pts0
github.com 1y ago

Invariant: A security and bug scanner for agent traces

lbeurerkellner
1pts0
invariantlabs.ai 1y ago

Enhancing Browser Agent Safety with Guardrails

lbeurerkellner
1pts0
github.com 1y ago

Security Scanner for AI Agent Traces: Invariant Analyzer

lbeurerkellner
1pts0
github.com 1y ago

playwright-computer-use: Let Claude control a web browser on your machine

lbeurerkellner
3pts0
github.com 1y ago

Invariant Agent Stack: A framework-less approach to robust agent development

lbeurerkellner
1pts0
github.com 1y ago

Show HN: Let Claude control a web browser on your machine

lbeurerkellner
3pts0
github.com 1y ago

Invariant Analyzer: Security scanner for AI agent trajectories

lbeurerkellner
6pts0
github.com 1y ago

Invariant Explorer: A tool for visualizing and exploring agent traces

lbeurerkellner
1pts0
invariantlabs.ai 1y ago

Show HN: Try test-driven agent development in this holiday prompting challenge

lbeurerkellner
3pts0

Interesting report. Though, I think many of the attack demos cheat a bit, by putting injections more or less directly in the prompt (here via a website at least).

I know it is only one more step, but from a privilege perspective, having the user essentially tell the agent to do what the attackers are saying, is less realistic then let’s say a real drive-by attack, where the user has asked for something completely different.

Still, good finding/article of course.

We have published the full trace, with tool outputs here now: https://explorer.invariantlabs.ai/trace/5f3f3f3c-edd3-4ba7-a...

The minesweeper comment was caused by the issue containing explicit instructions in the version that the agent actually ran on. The issue was mistakenly edited afterwards to remove that part, but you can check the edit history in the test repo here: https://github.com/ukend0464/pacman/issues/1

The agent ran on the unedited issue, with the explicit request to exclude the minesweeper repo (another repo of the same user).

One of the authors here. Thanks for posting. If you are interested in learning more about MCP and agent security, check out some of the following resources, that we have created since we started working on this:

* The full execution trace of the Claude session in this attack scenario: https://explorer.invariantlabs.ai/trace/5f3f3f3c-edd3-4ba7-a...

* MCP-Scan, A security scanner for MCP connections: https://github.com/invariantlabs-ai/mcp-scan

* MCP Tool Poisoning Attacks, https://invariantlabs.ai/blog/mcp-security-notification-tool...

* WhatsApp MCP Exploited, https://invariantlabs.ai/blog/whatsapp-mcp-exploited

* Guardrails, a contextual security layer for agents, https://invariantlabs.ai/blog/guardrails

* AgentDojo, Jointly evaluate security and utility of AI agents https://invariantlabs.ai/blog/agentdojo

I agree, one of the issues are tokens with too broad permission sets. However, at the same time, people want general agents which do not have to be unlocked on a repository-by-repository basis. That's why they give them tokens with those access permissions, trusting the LLM blindly.

Your caution is wise, however, in my experience, large parts of the eco-system do not follow such practices. The report is an educational resource, raising awareness that indeed, LLMs can be hijacked to do anything if they have the tokens, and access to untrusted data.

The solution: To dynamically restrict what your agent can and cannot do with that token. That's precisely the approach we've been working on for a while now [1].

[1] https://explorer.invariantlabs.ai/docs/guardrails/

Original author of some of the initial security notes at Invariant Labs here. Some resources, if you want to learn about MCP security:

* Initial Security Note describing Tool Poisoning, Rug Pulls, Tool Shadowing for the first time with diagrams and detailed experiments: https://invariantlabs.ai/blog/mcp-security-notification-tool...,

* Attack on WhatsApp MCP (both tool poisoning but also take-over via an infected message to your account): https://invariantlabs.ai/blog/whatsapp-mcp-exploited

* BrowserMCP attack, where it suffices for the agent to visit a compromised website (https://access.invariantlabs.ai): https://x.com/lbeurerkellner/status/1912145060763742579

We also recently released a security scanning tool to detect and prevent such attacks, including upcoming support for full proxying and local security scanning of tool calling payload and responses.

Please have a look and provide feedback if you can: https://github.com/invariantlabs-ai/mcp-scan

I think what is not to be overlooked in these discussions, is the user base of MCP.

In my experience, many less-technical folks started using MCP, and that makes security issues all the more relevant. This audience often lacks intuition around security best-practices. So it’s definitely important to raise awareness around this.

I think it is important to understand the difference between instruction and implementation level attacks.

Yes, running unsafe bash commands in the implementation can be prevented by sandboxing. Instruction level attacks like tool poisoning, cannot be prevented like this, since they are prompt injections and hijack the executing LLM itself, to perform malicious actions.

This would work in an ideal setting, however, in my experience it is not compatible with the general expectations we have for agentic systems.

For instance, what about a simple user query like "Can you install this library?". In that case a useful agent, must go, check out the libraries README/documentation and install according to the instructions provided there.

In many ways, the whole point of an agent system, is to react to unpredictable new circumstances encountered in the environment, and overcoming them. This requires data to flow from the environment to the agent, which in turn must understand some of that data as instruction to react correctly.

The post highlights and cites a few attack scenarios we originally described in a security note (tool poisoning, shadowing, MCP rug pull), published a few days ago [1]. I am the author of said blog post at Invariant Labs.

Different from what many suspect, the security problem with MCP-style LLM tool calling is not in isolating different MCP server implementations. MCP server implementations that run locally should be vetted by the package manager you use to install them (remote MCP servers are actually harder to verify).

Instead, the problem here is a special form of indirect prompt injection that you run into, when you use MCP in an agent system. Since the agent includes all installed MCP server specifications in the same context, one MCP server (that may be untrusted), can easily override and manipulate the agent's behavior with respect to another MCP server (e.g. one with access to your sensitive database). This is what we termed tool shadowing.

Further, MCP's dynamic nature makes it possible for an MCP server to change its provided tool set at any point or for any specific user only. This means MCP servers can turn malicious at any point in time. Current MCP clients like Claude and Cursor, will not notify you about this change, which leaves agents and users vulnerable.

For anyone, more interested, please have a look at our more detailed blog post at [1]. We have been working on agent security for a while now (both in research and now at Invariant).

We have also released some code snippets for everyone to play with, including a tool poisoning attack on the popular WhatsApp MCP server [2].

[1] https://invariantlabs.ai/blog/mcp-security-notification-tool...

[2] https://github.com/invariantlabs-ai/mcp-injection-experiment...

The security implications of this are very unclear it seems. Even the supervisor model can be fooled, and what if the agent just makes an honest mistake. It will be very interesting to see whether people are willing to let this actually go into their real accounts with real payment information attached. I am assuming that it may happen eventually, but the trust for it will need to be built over time.

This is specifically directed at agent traces and not necessarily other LLM use cases. We work on a lot of automated analysis and error detection mechanisms (see https://github.com/invariantlabs-ai/invariant/tree/main/anal...) on such agent traces, which can be nicely shown and highlighted in line with the trace in Explorer. Also, agent builders value collaboration a lot. They send around traces like pastebins to point out specific issues and failure modes of their agents. Explorer makes it easy to point to specific points in long traces and annotate them.