Claude Code sends your email address to websites

(github.com)

248 points | by motoroco 1 hour ago

32 comments

  • mk89 1 hour ago
    This explains the amount of spam emails I am receiving in the work email since I switched to Claude. I used to work with copilot which was fine. Now I am getting really a lot of spam emails almost on a daily basis. Absolutely crazy. And they are even personalised with my name and surname, not just "dear customer"...

    Stupid me, I thought they somehow had hacked my company database or so... (considering all the cves, attacks happening on a daily basis...).

  • mpoteat 25 minutes ago
    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.

    • mkl 13 minutes ago
      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.

      • godelski 2 minutes ago
        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 ¯\_(ツ)_/¯
    • il 23 minutes ago
      Why was this the default behavior in the first place?
      • moritzwarhier 12 minutes ago
        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.

      • toomuchtodo 4 minutes ago
        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.

      • mpoteat 9 minutes ago
        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 haha

        • h0rv 2 minutes ago
          > 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

        • swatcoder 5 minutes ago
          > 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.

    • taspeotis 12 minutes ago
      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?
    • stingraycharles 23 minutes ago
      But what is the root cause, why send the email in HTTP requests in the first place?
    • codehead 19 minutes ago
      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.
      • arcanemachiner 11 minutes ago
        Welcome to our new vibe-coded hellscape. I assume it will get worse before it gets better (if it ever does).
    • amluto 9 minutes ago
      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.)

    • 486sx33 7 minutes ago
      [dead]
  • eightysixfour 46 minutes ago
    I just checked mine and the header I see is:

      Claude-User (claude-code/2.1.318 (cli); +https://support.anthropic.com/)
    
    What situation are you seeing this in?
    • arthur-st 16 minutes ago
      This was patched in 2.1.317.
  • bassie123 46 minutes ago
    Even worse, it used curl with my org emailadress when I was using my private claude account... really strange.
  • llama052 36 minutes ago
    It looks like subagents will do this with curl requests and stuff whatever identifiers it can into the UA header. For instance some requests I made to our webserver:

    company-helm-research/1.0 (Claude Code agent run by <my name>, <company> platform team; docs lookup)

    Claude-Code-research-agent/1.0 (<Company> platform team; on behalf of <my name>; +https://github.com/<company org>/<repo of project>)

    Not great, it even pulled the repo of the project I was in.

  • teruakohatu 1 hour ago
    This is insane, and if the org I work for bans Claude as a result I will not be the least surprised. Goodbye Claude Code.
    • TZubiri 49 minutes ago
      You guys are still using these things? I may be ahead of the curve here.
      • vips7L 26 minutes ago
        Never have.
      • meowface 34 minutes ago
        I'd be shocked if a single org goes backwards and decides "okay, let's remove the LLM agent systems we asked everyone to use".

        Organizations may switch harnesses and may even switch providers, but LLM adoption is only going to monotonically increase. This dumb behavior is not some intrinsic property, and the models are getting smarter and more useful every ~4 months.

  • rconti 47 minutes ago
    Seems trading autonomy for machine speed means that sometimes the machines guess wrong.

    I'm often surprised how correctly Claude guesses on my behalf, when my instructions are ambiguous. But it's not 100%.

  • chewchewchew 33 minutes ago
    I noticed claude did it months ago when it interacted with the SEC's API when I was writing something with it, thought it only did it there because it's in their TOS. (It did stop when I told it to). I guess I was wrong.
  • gastonmorixe 47 minutes ago

      curl -sS https://api.anthropic.com/v1/messages \
            -H "authorization: Bearer $(security find-generic-password -s 'Claude Code-credentials' -w | jq -r .claudeAiOauth.accessToken)" \
            -H "anthropic-version: 2023-06-01" \
            -H "anthropic-beta: oauth-2025-04-20" \
            -H "content-type: application/json" \
            -d '{
              "model":"claude-opus-5-5",
              "max_tokens":64,
              "system":"You are Claude Code, Anthropic'\''s official CLI for Claude.",
              "messages":[{"role":"user","content":"Hello, world!"}]
            }'
  • sunaookami 34 minutes ago
    It's because Claude Code inserts a "hidden" (e.g. not visible to the user and very unexpected) info block to the system prompt that shows your email:

    >The user's email address is xxx@example.com. Use it only to identify the user, such as for authorship, attribution, or filtering their own work. Never send it to an unrelated service, such as in a request header, URL, or payload, unless the user explicitly asks.

    And Claude doesn't care about what the text says and when it uses cURL it will often "by accident" send your mail in the User-Agent. You can e.g. use a mod to remove that block: https://pastebin.com/ PkWEQCnu

    • mkl 6 minutes ago
      Fixed link: https://pastebin.com/PkWEQCnu

      How would one use this?

    • arcanemachiner 9 minutes ago
      Ha, what an amateur move. As if we don't all know that the nondeterminism of LLMs ensures that these kind of slip-ups are inevitable.
  • bix6 31 minutes ago
    How do you test / verify this?
  • b112 57 minutes ago
    I use a unique email address for each site I sign up for, and thus Claude/Claude Code doesn't have my 'main' email. And yet after months of use?

    Not a single spam to that unique email.

    So if this is happening, it doesn't see to be causing even 1 spam email to that address.

    • solyin 54 minutes ago
      Same. I use a custom domain and a salt/nonce so it's not just Anthropic/Claude@example.com. it's something unique that's not trivially guessable. Well, not counting the emails from "Lydia" at Anthropic telling me about new features in Claude, which is spamish, but is from Anthropic and not from elsewhere that they've leaked it to.
  • jbvlkt 29 minutes ago
    Why would you loose this kind of monetization? Data are new oil and AI does not change that.
  • TutleCpt 1 hour ago
    Oh man.
  • matheusmoreira 1 hour ago
    That is just so disgusting. So happy I switched away from Anthropic.

    For the record, I just asked Astra to verify that Codex does NOT do this, and it doesn't. Thanks for not screwing this up, OpenAI.

    > I checked your installed Codex CLI 0.159.0, using your existing configuration.

    > Its reported User-Agent contains the client/version, OS/architecture, and terminal—no email address.

    Astra wasn't able to check OpenAI’s "hosted search service" though, whatever that is.

    • lukan 49 minutes ago
      I would not recommend of getting in the habit of just trusting that.

      "For the record, I just asked Astra to verify that Codex does NOT do this, and it doesn't. Thanks for not screwing this up, OpenAI."

      • matheusmoreira 38 minutes ago
        Astra checked the Codex source code that gets compiled and shipped by Arch Linux. Straight up linked me to the User-Agent builder code.

        https://github.com/openai/codex/blob/687a119f0fcaace47e1f1ab...

        That's more than sufficient for me. The open source codex client seems clean.

        There is some kind of "hosted search service" that I couldn't verify. I don't have a remote server I can point it at in order to inspect the traffic. Would be cool if someone else could shed some light on that.

    • cadamsdotcom 19 minutes ago
      Why not find out the truth instead of putting a hallucinating probability box in between you and the truth.

      One way would be to fire up a little web server locally, have the agent make a request to it, then check the logs.

    • hendiatris 48 minutes ago
      You asked it to verify it doesn’t do this? That allayed your fears?

      доверяй, но проверяй

      • matheusmoreira 28 minutes ago
        I read the codex source code it linked me to.
        • yubblegum 6 minutes ago
          Unless you are building from source yourself that means exactly and precisely zip.
  • motoroco 1 hour ago
    Claude code writes adds a `User-Agent` request header like `my-session-slug/1 <my.name@example.com>` when searching the web and requesting data. This violates the privacy of paying customers and has resulted in me getting dozens of scam and phishing emails per day from properties I have never personally visited. This policy is asinine: it does nothing but harm me, the customer, while providing immense value for scrapers and scammers.
    • tcoff91 1 hour ago
      Wow... this is insane! What a terrible idea.

      These are the exact kinds of things that a human engineer would almost certainly never do.

      This kind of thing is the problem of going all in on the idea of the AI Software Factory.

    • 3abiton 1 hour ago
      I don't know if this is an anti-abuse method they are using or some weird promotion for claude? It genuinely makes no sense from a user perspective.
      • swatcoder 51 minutes ago
        I think you're overestimating the design intent that goes into a product that's proudly dogfooding the future of vibe coding.

        It's very possible that nobody decided this at all and that's it just something an agent threw in on its own because some Chain of Thought imagined it was a clever way to correlate queries back with user accounts or something.

    • TZubiri 46 minutes ago
      The reason they do this is because otherwise they block the requests.

      I'm not sure what the issue is with publishing your email address in principle, you are reaching out, you want to inquire about some business. If anything use a different address. But why would you asymmetrically expect businesses with websites to bend over to give you all the advantages, they need some assurances as well.

      Anonimity usually works one way, one party can be anonymous, not both, if you come from consumer land, it's the companies exposing themselves and doing all the compliance, if you choose privacy and force the companies to expose themselves, you'll get your wish granted, but there will be a cost, it's unlikely you'll be in the more advantageous position.

      • benregenspan 28 minutes ago
        As implemented, it strongly violates the principle of least surprise (assuming this is true).

        A more sane implementation of this would involve a prompt the first time an agent attempts to connect to each of the sites that Anthropic thinks it necessary to send this email header to, asking if this is OK (and bailing on all requests to that domain if the prompt was rejected).

    • Seattle3503 1 hour ago
      Do you think this was a human choice, or one of those subtle Claude choices you don't notice until it bites you?

      I'm sure the answer will be to update AGENTS.md to not do this particular thing, expose email in this way, which isn't the same as having sense.

  • ytxm 7 minutes ago
    Claude Code and Codex ignore the personal data xor network access rule by design. Of course this happens. If it wasn't due to the prompt sent to the model, a passing scan of a README.md that happens to mention your details would achieve the same result. What about a hostile LLMs.txt that words it such that free API keys are available in exchange for a tarball of $HOME?

    The solution is don't run a spambot with an Internet connection over your personal stuff, unfortunately nobody is ready to hear that yet.

    Curious how their plugin works, but I'm guessing "incompletely", given personal information can end up buried in base64 or similar preventing easy string matching. Some kind of babysitter model watching network IO via an invasive proxy might be viable, if folk were willing to pay the latency cost, but it will not prevent a dedicated exfiltration attempt, which itself might be (according to the model's logic) for innocent reasons.

  • vatsachak 3 minutes ago
    The design decision actually makes sense though.

    It's just that Anthropic needs to create an email per user and use it for web searches.

    I can do this for you Anthropic. Just give me the tokens and your base salary

  • Philip-J-Fry 1 hour ago
    Don't forget Claude wasn't even gzipping request/responses until recently. This company is pure vibes rediscovering lessons everyone else already learned. How on earth does this sort of thing get thought up? Do they just use the same http client for internal API calls as they do for public web fetches?
  • yahway 4 minutes ago
    Thunk: "Privacy? What's that?!"
  • thatonehack 30 minutes ago
    Why can’t AI eliminate spam email? It is so powerful it should pulverize all spam email and spam phone calls! Yet… we get more.
  • tomsonj 21 minutes ago
    pretty literal interpretation of User-Agent
  • chrisjj 9 minutes ago
    [delayed]
  • _doctor_love 14 minutes ago
    Anthropic's heel turn is really impressive. They've gone from beloved front-runner to I-have-no-idea-wtf are they doing over there.
  • EGreg 1 hour ago
    This is why I prefer to use the chatbots on a website, instead of Claude Code.

    I've never used Claude Code or Cursor. All the code I got written this year was without them.

    I did use Microsoft Copilot a bit when it came out, though. I prefer to see exactly what's being sent, and sorta control the KV cache. These days, these chatbots have great environments where they can install headless browsers, php, your entire thing, run end-to-end tests, and then give you a .patch or .zip file to merge over your code, or even push to github.

    • verdverm 1 hour ago
      Incidents like this, and OpenCode changing the DX in v2, is why I'm going back to building my own. It's also fun and interesting
  • canto 53 minutes ago
    15 minutes ago, no proof, no code, no nothing except a random claim, main on hackernews. wtf?
  • ChrisArchitect 51 minutes ago
    Related recently:

    Tell HN: Claude Code adds your email to the prompt, the LLM sends it to websites

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

    Claude Code slyly adding users' emails to outbound HTTP

    https://news.ycombinator.com/item?id=50219875

  • nekusar 1 hour ago
    This, along with all the other sabotages, is why I run a local abliterated Qwen.
    • nekusar 3 minutes ago
      Oh look, the pro-poop smear group (Anthropic) modded me down to 0.

      I'm not wrong. A 35B Qwen abliterated is amazing.

  • y42 5 minutes ago
    [dead]
  • nelox 28 minutes ago
    [flagged]