Hacker News new | past | comments | ask | show | jobs | submit
Hi folks. We were initially aware of this a few days ago when this problem started popping off on Reddit, and we introduced a built-in mod called `cc-plugin-privacy` to deterministically block this behavior.

If you're on 2.1.317 or later, you'll have this check included. You can turn it off via /plugins.

This has been on hackernews before, months ago[1]. How is it just being found now?

1: https://news.ycombinator.com/item?id=50286306

2: https://news.ycombinator.com/item?id=49258881

Of the same ilk Claude code will make PRs on your behalf, using a vague consent prompt that when it happened to me was subtle and easily.

Best practice will forever be to enforce your guard rails in addition to Anthropics guardrails.

loading story #50387838
loading story #50387514
According to vibe coders, the future is never reading what the code actually does. You just trust coding agents with everything and "give into the vibes" even when it "says" its correct.

Offshoring understanding is the trend that many companies will pay in the form of comprehension debt.

loading story #50390634
loading story #50387170
loading story #50391480
loading story #50386799
This reminds of the open issue on the Claude MacOS app where the OS-wide voice dictation keyboard shortcut function doesn't work.

Somebody on Reddit figured out they just forgot to add a single line permission request into the app. It's been broken now for months.

I just find this wildly hilarious given the 'world ending all powerful AGI is here' rhetoric they're running with at the same time.

Maybe before worrying about permanent 15% GDP growth or human annihilation, what if we started by putting an agent on user issues and solving them pro-actively?

I know the kool aid is tasty, but we might be getting a bit ahead of ourselves here guys. You can fantasize about human annihilation after you figure out how to make a desktop app that doesn't have obvious bugs, I promise :)

loading story #50390660
loading story #50388936
loading story #50389347
Why was this the default behavior in the first place?
I'd guess it's simply because it tried to use the context to achieve the goal.

Guarding PII is an extra, I guess, and if you want to use a giant cloud-hosted NN to control software on your own device, there are very few default restrictions. And no matter what restrictions there are, when they go beyond prompting, they would have their own ShowHN.

Why is the login information even allowed to touch the context?
loading story #50386532
loading story #50386323
loading story #50386515
loading story #50387833
Always use a hidden email service, you cannot trust the LLM or inference provider to secure the email address in this context. If they don’t have the email address, they can’t leak it.

I never give a provider my actual email address, I recommend others do the same. Otherwise, it’s just a matter of time until it is leaked or otherwise part of a data breach.

If you let the LLM see git commands, they have whatever email you use to sign commits.
I use a masked email for Git too. Always have. Last 5 years or so it's just been the GitHub provided mask e.g. <numeric-ID>+<username>@users.noreply.github.com
Masked email or separate email is the way.
I am a security person, I don’t let the LLM see anything except that which I wouldn’t mind printed on the front page of the New York Times. I treat my LLM context as I would a potentially malicious threat actor. Nothing valuable, sensitive, or personal goes into the context.

“lethal trifecta”

https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...

(a component of my cybersecurity work is red teaming inference, agents, and mcp interfaces)

{"deleted":true,"id":50386793,"parent":50386046,"time":1793926490,"type":"comment"}
Bingo. Auto mode doesn't mean send private information outbound. There are other deterministic hard points - why not this?
Some sites like Wikipedia have a policy where scripted clients identify themselves, and there's a standard in HTTP to have a contact email in the User-Agent for such cases. Claude apparently tends to decide that this policy is worth following, and we now disallow this programmatically.

This is why alignment is important and highly non-trivial

> This is why alignment is important and highly non-trivial haha

FYI, it's generally bad form to "haha" your way through privacy violations.

Leaking private information is a very big deal for a lot of people.

loading story #50386723
loading story #50387190
> This is why alignment is important and highly non-trivial haha

I disagree, we can likely never fully (or should?) trust models to do these things deterministically, that's why we have harnesses around the agent with built-in constraints.

It is actually in the name: https://en.wikipedia.org/wiki/Harness, https://en.wikipedia.org/wiki/Safety_harness

Glad you can find the humor in the situation.
I cannot believe Anthropic’s official response to having presumably sprayed a significant portion of customers’ emails and private information straight out into the web willy nilly is basically “[it’s] highly non-trivial haha”.
>haha

This is an official Anthropic response???

Because they didn't think about it or any of the other million things that might go wrong - that would take careful planning.
Because Claude decided so. You think humans write or even review what they ship to run on your computer?
{"deleted":true,"id":50386148,"parent":50386046,"time":1793921849,"type":"comment"}
you'd need to ask one of the billion claude sessions they have doing whatever in their cloud rn
Who is "we"? Your website says you work for volley.

Anthropic should have been aware of this since the user's login email address was inappropriately added to the system prompt. It's been informed of it by third parties since at least July: https://github.com/anthropics/claude-code/issues/81138

It makes no sense for an email address only used for authentication to be given to Claude Code, so the fix should be to remove it from the system prompt, not to add a plugin.

I assume mpoteat is a Claude Code dev since they've responded to similar issues before (https://news.ycombinator.com/item?id=49815363).

Which is great! It's good for the community when people give quick updates here, and to make sure that it continues, it's important that we respond respectfully. (I don't think your post was disrespectful, but commenters have crossed that line in other situations in the past.)

Yep, she’s the Claude function hooks lead, as far as I’m aware! https://github.com/anthropics/claude-code/issues/91870
I appreciate their input, and yours, and I intend this feedback respectfully… But come on… Is a little outrage completely inappropriate?
loading story #50386609
loading story #50386510
Yes, I was looking for some confirmation as it wasn't initially clear whether the plugin was an Anthropic one or a third party's (I found very little about it online, and didn't want to take Gemini's word for it). Usually people say "[company] developer here" or have it in their profile.
Email addresses are PII. The GDPR also has higher protections for AI processing, like here.

If you’re in the EU, send a complaint to your data protection authority.

I imagine quite a few would be very interested in following up and investigating here, and getting Anthropic to drop the email from the system prompt.

I'm going to send the complaint. They've been sharing my PII without my consent and knowledge.

Nice that this time we get the company to admit it in public, and that they've been aware of that earlier but only acted now.

No objection to your assertion; but it seems much harder to fix than just that. Doing `git log -n 1` will pull up an email 99% of the time. It may not be the same email, but it's just as PII anyway.

I suspect the privacy plugin method is a more sane fix -- ideally, plain old code should be inspecting any web request my agent makes and let me decide if that outbound request should contain certain sensitive strings. I'd also want to put a few bytes of my SSH private key and of any other sensitive keys in the 'do not leak' watchlist as well.

loading story #50387115
There may be an assumption that these issues are human reviewed.
Their LinkedIn (linked on their website) says they work at an undisclosed company. Not sure many people who are at Anthropic wouldn't want others to know ¯\_(ツ)_/¯
Is this the thing that started prompting me to approve curls against JIRA because the Authorization header is `my_email@domain:$API_KEY_ENV_VAR`? Why does it not respect --dangerously-skip-permissions?
Ugh. I know there are other ways to get Jira API keys, but I wish they made one that was as easy and straightforward to set up as the kind you're talking about.

(No, I don't want to make a real "App" to sell on a "Marketplace," or be involved with oAuth, or any other tenant. I just want an API key for my own tenant, that isn't specifically tied to me, so every automation I build won't break when I quit someday.)

I recently discovered service accounts do exist. Though it might be on the Atlassian level, not Jira specifically.

Should be this: https://support.atlassian.com/user-management/docs/understan... https://support.atlassian.com/user-management/docs/manage-ap...

same experience. brilliant when you leave it to work, come back an hour later and it's been sat at a prompt trying to read a jira ticket.
Since you appear to be a Claude Code dev, I hope you don’t mind a random bug report (yes I know there is the GitHub issues but I’m not confident it gets read):

the GitHub REST api proxy in Claude Code for the Web mangles HTML in PR descriptions. If you have some third party service (e.g. cubic code review) which adds HTML to the end of your PR description, then ask Claude Code for Web to edit it, the HTML gets turned into entity escapes (< into &lt;, etc). Complain about it to Claude, Claude says it can’t help itself because the proxy in the sandbox is what is doing it, not the actual LLM.

But what is the root cause, why send the email in HTTP requests in the first place?
Robots are supposed to send one.

https://httpwg.org/specs/rfc9110.html#field.from

loading story #50387360
loading story #50387167
loading story #50386509
Who is "we"? Anthropic, or some random company trying to get me to run code?
It would be mental for Anthropic to provide a plugin for their own product to ensure privacy.
What you haven't memorized all of the AI rockstar/villain usernames on HN yet?
Curious what the GDPR implications are, does Claude (even accidentally) including emails + employers + repo names count as a personal data breach? Seems likely it could be an unauthorised disclosure (which requires reporting within 72h)

Also from a design perspective, I feel like including email and other personal data into the context is a bad idea for "data minimisation" reasons

They have obligations under GDPR to report the issue to their DPA within 72 hours.

The fine for breaching GDPR can be either €20m or 4% of global revenues (whichever is the larger figure), so if I were them I'd do everything possible to sort this issue out ASAP.

You will be turning off any behaviour like this by default, right? Why are you suggesting users turn it off with a mod?
It is enabled by default.
The violations by your company are consistent. Yet we have to endure restrictions coming from your company, with little to no exceptions. Then you present this “solution” that basically says “we will opt you in, but in case you want to be opted out, here you go”. I cannot speak for others but for me, I made up my mind and walked away from Anthropic since it seems your services are not fit for my needs. Thank you for the initial offerings that made me sign up and pay the full price for your top plan but that was then and this is now, sadly.
The plugin that blocks this behavior is on by default, what they are saying is that you can turn off that plugin if you want
Welcome to our new vibe-coded hellscape. I assume it will get worse before it gets better (if it ever does).
Are you starting to see why vibe coding such widely used software isn’t a great idea?
I hate to be snarky, but…

Anthropic seems very proud of how many tokens they can use on things like developing Claude Code. Yet somehow it started sending user’s email addresses in the user agent header. And the fix is to deploy a mod? That detects the completely bonkers behavior and suppresses it?

Is the actual quality of the software inversely related to the number of tokens spent? Does any human know what Claude Code does or is supposed to do? Does even Claude plus all its Slack-conversation inputs know?

Today I watched Astra correctly detect a bug (probably untriggerable in practice) in some Important Production Code. And I watched it fail to root cause it, “fix” it by bolting on more complexity, agree (on further questioning) that it still wasn’t fixed, and design an even more complex scheme. With my Mark I human brain, I observed that the actual issue was that a helper function didn’t do what it said on the tin when called in an unexpected context… and fixed the helper directly. Problem solved. Ugly AI-generated extra complex workaround layers avoided. I suppose if I multiplied my token spend by 1e5 and did not increase brainpower at all I could make a truly spectacular mess.

The actual Claude model is a truly spectacular piece of software. Claude Code is a nifty little command dispatching engine. There are very comprehensible third party tools that do basically the same thing, in not many lines of code, where the primary advantage of Claude Code is that Anthropic permits subscription use. (Interestingly OpenAI has no such constraint, and they publish almost the full client sources.)

There’s no way they can review 30,000 PRs a day in their monorepo. I wouldn’t be surprised if this slop wasn’t intended. It’s a buggy product imo.
> There’s no way they can review 30,000 PRs a day in their monorepo.

How many PRs/equivalent per day do you think happen at Google/Microsoft/Meta/etc prior to AI?

> There’s no way they can review 30,000 PRs a day

Is that not precisely the kind of thing they claim their tools enable?

Literally unlimited tokens on tap and yet they can only manage to make privacy violating slopware

I thought Boris said coding was solved?
{"deleted":true,"id":50386517,"parent":50386031,"time":1793924487,"type":"comment"}
Sounds as if my email escaped your sandbox?
I’m sorry to be so blunt but this is a complete lie.

I was part of a discussion on Threads on 25th October where Boris Cherney was tagged multiple times.

And the issue wasn’t even new at that point in time.

Plugin seems incomplete or not fully tested. Looks like it blocks the account email only, not whatever emails are in context. Commenting as others in this discussion are reporting Claude dredging up work email on personal acct.
I would also suggest requiring adherence to `robots.txt` and adding an option (preferably a default one) to force user acknowledgement of external HTTP requests. Claude Code has a tendency to treat unauthenticated access as an obstacle to work around instead of a sign to stop.[1] An experimental Anubis patch (since removed) took advantage of this behavior to create a honeypot for user data if a Claude user agent is detected.[2] I'm sure more malicious honeypots could be created if a hostile website and/or annoyed sysadmin wanted to do so.

[1] https://blog.xkeeper.net/the-cutting-room-floor/self-hosting...

[2] https://github.com/TecharoHQ/anubis/pull/1895/changes/de2312...