frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Trust Me, I'm Local: Chrome Extensions, MCP, and the Sandbox Escape

https://blog.extensiontotal.com/trust-me-im-local-chrome-extensions-mcp-and-the-sandbox-escape-1875a0ee4823
148•el_duderino•1y ago

Comments

npace12•1y ago
I built little-rat (chrome extension) a couple of years ago that can track and block traffic from other extensions:

https://github.com/dnakov/little-rat

euazOn•1y ago
Hey, thanks for that, Anon Kode, Anon Codex and other projects, very cool!
npace12•1y ago
also check out the claude-mcp extension, very much related to this post :)
binarymax•1y ago
Wow thanks for building this! Any idea the effort it would take for someone to port this to Firefox?
npace12•1y ago
it's not possible in firefox, that traffic is not visible (at least as of the last time I tried 1.5 years ago)
binarymax•1y ago
Thanks for the info. That's unfortunate, but I can somewhat understand why FF takes that approach.
fluffet•1y ago
Woah, I had no idea. Thanks for the article.

I feel like some cycle phenomenon has been reached here..

The first protocols of the internet were very naive. Why'd you need to encrypt traffic? What do you mean exploit DNS, why would anyone do that?

Then people realised that the internet is a really, really wild place and that won't do.

I suddenly feel old, because this new AI tool era seems to have forgotten that lesson.

I feel it's like watching crypto learn by any% speedrunning why regulations and oversight might be a good in the first place (FTX and such).

I hope the next generation of AI tech/protocols are more robust, trust just doesn't cut it, or we'll see plenty of fingers being burnt at the stove.

deadbabe•1y ago
In early days it's always best to push security risk onto users in a bid to gain as much market share as possible. By the time they realize they've been screwed, technology will have matured and you can hand wave those old criticisms away, and even trumpet them as new innovations and upgrades.
dowager_dan99•1y ago
I did a presentation on AI Agents from the perspective of an AI newbie and one of my comments/conclusions was that it felt like releasing a browser from 2000 in the middle of today's scary 2025 environment. MCP and similar are missing 20+ years of responding to new and emerging threats, and the hype men (executives everywhere) don't realize, care or have the ability to respond.
outworlder•1y ago
Is the presentation public?
esafak•1y ago
It's a new technology so it is understandable that practitioners are not aware of the security best practices, like https://genai.owasp.org/

Also, the security tooling is still nascent.

OsrsNeedsf2P•1y ago
https://archive.is/HQMBa
telotortium•1y ago
Literally nothing here is specific to MCP - it all has to do with the fact that Chrome extensions can make HTTP connections to localhost ports, which could be running any kind of server. This is not an unrestricted backdoor either - Chrome extensions already need permissions in the manifest to talk to localhost, except via content scripts, which run in the context of the website and so could be served by the website without any extension installed.
kypro•1y ago
Yeah, that's exactly what I took away from this too... I get why it's worth noting MCP servers in the article since these could provide a large attack vector, but it seems odd to focus on that as if that is the core security vulnerability here.

I guess the bit I'm more surprised about is why Chrome extensions are even allowed to make localhost connections without requesting user approval? Is the assumption that everything running locally must be safe? What am I missing here?

nightpool•1y ago
I mean, the core security vulnerability explained here is that MCP does not expose / allow for any kind of authentication or user consent before accessing your computer's most sensitive resources, like a terminal or list of private Slack messages. Spotify, 1Password, or other services on your computer that use `localhost` do not have the same issue.

This would be a non-issue if some kind of simple origin-authenticated token exchange was built into the protocol itself.

cruffle_duffle•1y ago
How could it? The agent calling into the MCP server is the one exposing an interface to the end user. It’s the agents job to prompt the user (and both Claude desktop and cursor do).

It’s the “system administrator”’s job to make sure the MCP is running at the right privilege level with correct data access levels. The MCP server can’t stop somebody from running it as root the same way any other program can’t.

At the end of the day the MCP should be treated as an extension of the user. Whatever the user can do, so too can the MCP server. (I mean, this isn’t technically true.. you can run the MCP under its own account or inside some sandbox… this will probably start to happen soon enough)

Dylan16807•1y ago
The problem isn't the permissions the MCP has, it's about whose orders it obeys.

Many other programs on the system aren't an extension of the user. And they can access ports.

How could it do authentication? Easily. The most basic option is for the server to put a secret token in your user folder, so only code with access to that token can talk to it.

On Linux it can be even simpler. Don't attach the server to a port, attach it to a socket file.

marcus_holmes•1y ago
It's crazy that, after all our experience with this, we're implementing another protocol that doesn't have any auth built in.

You'd think the last 30+ years of regret and hacky attempt to add auth to email and http (as just the top two to come to mind) hadn't happened.

maple3142•1y ago
I think the reason is that MCP also works over a pipe (stdio), which does not need authentication.
nightpool•1y ago
It doesn't need it if this vulnerability is the only one you're worried about (remote websites), but it'd be nice to have it before letting it use e.g. your Github account. This is how VS Code extensions work, for example, and it's pretty nice
fluffet•1y ago
I take away that the combination is the problem. Bleach and ammonia isn't so bad on their own, but mixing the two is not a good idea. MCP would provide crazy attack vectors.

Especially if you could ask another AI "I have access to an MCP running on a Victim computer with these tools. What can you do with them?" => "Well, start by reading .ssh/id_rsa and I'd look for any crypto wallets. Then you can move on to reading personal files for blackmailing or sniff passwords..." and just let it "do its thing" as an attacking agent in an automated way. It could be automated which creeps me out!

eMPee584•1y ago
Don't you give THEM ideas!
im3w1l•1y ago
My intuition tells me that blackmailing at scale has the potential to be quite terrifying if you ask for favors that each seem innocent enough on their own. E.g. one favor may be as simple as asking the guy walking his dog to delay it for half an hour. He will surely comply without hesitation. But hidden reason was that he would otherwise witness a murder.
OsrsNeedsf2P•1y ago
Lots of people think MCP is a case of "wow, how did we forget basic security", but I wonder if there were other competitors that MCP beat _because_ they had security friction.
rvz•1y ago
Every time a startup uses an MCP server in their product software offering or even offers their own, I can only see the number of security consultants waiting for a massive payout when an LLM causes a security incident.
brap•1y ago
I still don’t understand why we even need a new protocol when we already have something like the OpenAPI spec, which can also be used to describe common authentication mechanisms like OAuth2. And it supports almost every existing API out of the box.

Granted it doesn’t separate between “resources”, “tools” and “prompts” but I think the line is blurry anyway.

And yes it can be used locally.

cruffle_duffle•1y ago
I think people who consider Open API to be a “competitor” to MCP haven’t really played with MCP.

MCP is a tool calling protocol. Models are trained on it as a way to do stuff outside their sandbox. OpenAPI isn’t a tool calling protocol but more of a schema to describe interfaces.

You could write an MCP that exposes an OpenAPI compatible set of interfaces, but you couldn’t write an OpenAPI thing to call… well… anything. OpenAPI doesn’t cover the actual tool calling.

In addition, even if OpenAPI would work it’s massive and contains a ton of extra “stuff” that would overwhelm the models precious context window. Unless the OpenAPI schema was explicitly intended for LLM consumption, the results will be a mixed bag as the LLM will have to spend half its time making sense of the schema. A well designed MCP might take an OpenAPI endpoint suite and wrap it in thoughtful tool calls so the LLM doesn’t have to parse a giant schema doc (also… the LLM actually needs to make the HTTP call and guess how it will do that? Why though MCP of course!)

By contrast, MCP tools expose a slender LLM optimized interface that requires little “thought” to call.

Honestly though, comparing OpenAPI to MCP is a bit like comparing an xml schema to curl. They are completely different. MCP is for tool calling. It’s how you expose… well… anything from calling into your shell to looking something up in your database. The only similarity is that MCP exposes a schema to the model to tell it what kinds of tool calls the model can make. And did you read the spec I’d imagine said schema looks a wee bit like OpenAPI (wouldn’t know as I haven’t looked though).

Seriously. Go write an MCP for something you think would be cool. Like go write an MCP for Claude that connects to your logging and lets Claude search the logs in a more structured way. Make something like “find_request(request_id)” and then let your code do all the searching and have it return the relevant logs. Watch as the model doesn’t have to spend a billion tokens figuring out your database schema, how to grep, etc… good MCP’s do all the grunt work so the LLM can focus on your task and not spend tons of time bootstrapping. The entire exercise won’t even take a half day and you’ll have yourself a cool new tool that saves you time.

In short, MCP and OpenAPI are two entirely different concepts.

bhelx•1y ago
This is the first i've heard of people using the SSE transport locally. What purpose what that serve? Is this by design because the chrome extension could not talk to it otherwise?

BTW, you should really run your MCP servers in a sandboxed environment, esp if they don't need to do things like `exec` or read from the filesystem. We do this with the https://mcp.run ecosystem by wrapping them in wasm. Because they are wasm you could also run them right in the chrome extension!

olalonde•1y ago
So do we add authentication to MCP servers or does Chrome fix this by restricting unauthorized calls to localhost?
gitroom•1y ago
bruh this stuff honestly makes my head spin - feels like were all relearning the same old security lessons
_pdp_•1y ago
Also, credentials scattered in clear text inside the MCP configuration. They forgot how to do security!
babyshake•1y ago
Is it correct that this exploit would not be possible with streamable HTTP MCP servers? I'd imagine that fairly soon every MCP server that does not need filesystem access will use this transport method unless there is some reason why STDIO/SSE would be needed instead. Can anyone confirm if this is the case and if they agree or disagree with this assessment?
fpoling•1y ago
Any service running on local should reject HTTP requests with Origin header as those are generated from browser JS API. In addition requests with UserAgent should also be typically be rejected.
rafram•1y ago
> In addition requests with UserAgent should also be typically be rejected.

No, all HTTP clients set User-Agent.

happyopossum•1y ago
This isn’t an MCP issue though - if you were running a webserver, or any application that listens on localhost that happens to have vulnerabilities, an extension could hit those too.

Literally nothing about MCP makes this easier or worse

skybrian•1y ago
I guess the security hole is that “allow connecting to localhost” might sound like an innocuous permission, but it becomes increasingly risky as you run more servers on local ports that have no other protection.

The permission itself doesn’t tell you anything about what powers it might grant. You need to know how all your local processes work to determine that, and most people have no idea.

It’s too generic for users to make reasonable decisions about. And that means that servers on localhost really should have authentication. Connecting client A to server B should be explicit.

zharknado•1y ago
Great observation! The legibility or the permission grant matters a lot.
ttoinou•1y ago
Sooo we just need a new standard MCPS (MCP Secure connections), right ?
ramoz•1y ago
The cyber industry is having a ball exposing standard security practice issues under the guise of “new zero day AI vulnerabilities” - esp with MCP.

Nothing here is new. If you run local apps with open connections and no CORS then anything on your device and potentially network can talk to that app.

vovkasm•1y ago
There is nothing specific to MCP here. But that doesn’t mean there’s no problem. The real problem is that OS does not contain a convenient for users and reliable access control mechanism for local TCP connections (at least at the per-application level of granularity). Would such a mechanism existed, the user could allow connections to its MCP only to the necessary applications. There is already many apps providing local servers, all of them is potential point of attack for bad actors in system: ollama, syncthing, adb, gradle, various torrent clients with web interface, media players, etc...

GenCAD

https://gencad.github.io/
298•dagenix•11h ago•70 comments

It is time to give up the dualism introduced by the debate on consciousness

https://www.noemamag.com/there-is-no-hard-problem-of-consciousness/
58•ahalbert4•6h ago•154 comments

Crystals found inside wreckage from the first nuclear bomb test

https://www.scientificamerican.com/article/strange-crystals-found-inside-wreckage-from-the-first-...
61•jumploops•2d ago•15 comments

I turned a $80 RK3562 Android tablet into a Debian Linux workstation

https://github.com/tech4bot/rk3562deb
354•tech4bot•19h ago•168 comments

Ask an Astronaut: 333 hours of Q&A footage with astronauts

https://askanastronaut.issinrealtime.org/
140•gaws•2d ago•12 comments

Prolog Coding Horror

https://www.metalevel.at/prolog/horror
137•RohanAdwankar•11h ago•53 comments

Jank now has its own custom IR

https://jank-lang.org/blog/2026-05-08-optimization/
131•DASD•2d ago•12 comments

Show HN: Semble – Code search for agents that uses 98% fewer tokens than grep

https://github.com/MinishLab/semble
314•Bibabomas•17h ago•107 comments

kharp – k version 3 Language Interpreter in C#

https://github.com/ERufian/ksharp
17•tosh•1d ago•2 comments

WriteUp: 16 Bytes of x86 that turn Matrix rain into sound

https://hellmood.111mb.de//wake_up_16b_writeup.html
123•HellMood•9h ago•28 comments

Profunctor Equipment in Haskell

https://bartoszmilewski.com/2026/05/16/profunctor-equipment-in-haskell/
15•g0xA52A2A•1d ago•2 comments

A Good Lemma Is Worth a Thousand Theorems (2007)

https://sites.math.rutgers.edu/~zeilberg/Opinion82.html
55•susam•2d ago•11 comments

Two EA-18 fighter jets collide at Mountain Home airshow, pilots ejected safely

https://idahonews.com/news/local/two-f-18-fighter-jets-have-crashed-during-an-airshow-at-mountain...
190•ChrisArchitect•11h ago•183 comments

Tesla Solar Roof is on life support as it pivot to panels

https://electrek.co/2026/05/14/tesla-solar-roof-promise-vs-reality-pivot-panels/
248•celsoazevedo•1d ago•251 comments

Magical Realism: “Northern Exposure” 25 Years Later (2015)

https://www.rogerebert.com/streaming/magical-realism-nothern-exposure-25-years-later
109•walterbell•2d ago•49 comments

Show HN: Mezz, a curl-able WiFi sandbox for IoT pentesting

https://github.com/ABGEO/mezz
19•ABGEO•2d ago•4 comments

Build a Radio Wave Detector with Balls of Aluminum Foil

https://www.wired.com/story/build-a-radio-wave-detector-with-balls-of-aluminum-foil/
9•Brajeshwar•2d ago•2 comments

Prolog Basics Explained with Pokémon

https://unplannedobsolescence.com/blog/prolog-basics-pokemon/
253•birdculture•2d ago•41 comments

CUDA Books

https://github.com/alternbits/awesome-cuda-books
190•dariubs•20h ago•42 comments

Hindenburg’s Smoking Room

https://www.airships.net/hindenburg-smoking-room/
198•crescit_eundo•3d ago•159 comments

I don't think AI will make your processes go faster

https://frederickvanbrabant.com/blog/2026-05-15-i-dont-think-ai-will-make-your-processes-go-faster/
585•TheEdonian•20h ago•402 comments

Cannibalistic attacks between gray seals leave telltale “corkscrew” injuries

https://www.science.org/content/article/scientists-id-corkscrew-killer-behind-gruesome-seal-deaths
65•gmays•3d ago•22 comments

High-Entropy Alloy

https://en.wikipedia.org/wiki/High-entropy_alloy
134•leonidasrup•3d ago•23 comments

Trials on veterans suggest ibogaine could provide a new treatment for PTSD

https://www.bbc.com/future/article/20260514-how-hallucinogenic-ibogaine-helps-veterans-overcome-ptsd
94•bushwart•21h ago•99 comments

Why is Google Maps back to showing old satellite images of Altadena?

https://www.reddit.com/r/pasadena/s/94BHlkE84r
5•tgrowazay•48m ago•1 comments

A nicer voltmeter clock

https://lcamtuf.substack.com/p/a-nicer-voltmeter-clock
342•surprisetalk•1d ago•45 comments

VoIP brings back old-fashioned pay phones to rural Vermont (2025)

https://spectrum.ieee.org/payphone-voip
153•bookofjoe•13h ago•48 comments

Colossus: The Forbin Project

https://en.wikipedia.org/wiki/Colossus:_The_Forbin_Project
232•doener•3d ago•95 comments

Étienne Ghys: The Shape of Letters: From Leonardo da Vinci to Donald Knuth

https://www.youtube.com/watch?v=1OIxzewWilc
30•tzury•4h ago•4 comments

Mozilla to UK regulators: VPNs are essential privacy and security tools

https://blog.mozilla.org/netpolicy/2026/05/15/mozilla-to-uk-regulators-vpns-are-essential-privacy...
735•WithinReason•1d ago•318 comments