Remix.run Logo
Cursor 0day: When Full Disclosure Becomes the Only Protection Left(mindgard.ai)
195 points by Synthetic7346 5 hours ago | 79 comments
wxw 2 hours ago | parent | next [-]

> The vulnerability was first identified by Mindgard on December 15, 2025. We reported it the same day and multiple times since. More than six months and 197+ new versions later, the issue remains present in the latest tested version of Cursor.

> The report was initially closed as Informative and out of scope. After we challenged that determination, HackerOne reopened the report, reproduced the issue, and confirmed that the details had been delivered to Cursor. And then everything stopped. Requests for updates went unanswered, additional follow-ups received no response, escalation through HackerOne produced no meaningful engagement, and direct outreach to Cursor leadership yielded the same result: no response.

Really unfortunate. I don't understand why there's such a lack of response on the Cursor side.

app13 an hour ago | parent | next [-]

The CVE process itself is broken. HackerOne and company VDPs are inundated with new reports of varying quality thanks to the advancements (I think) in agentic AI. It's allowed for both an increase in trash-tier low quality AND legitimately high quality reports. Since the same AI's are writing both, its almost impossible to distinguish between the two at a surface level.

In response, companies just aren't responding like they used to. I spoke at a cybersecurity conference In June and the overwhelming "vibe" on the floor and in the talks was that responsible disclosure was dead or dying, and public disclosure is the way forward. The Microsoft and Nightmare Eclipse situation was oft cited.

_AzMoo an hour ago | parent | prev | next [-]

It screams intentional to me.

buran77 an hour ago | parent | prev | next [-]

> I don't understand why there's such a lack of response on the Cursor side.

Too busy being acquired by SpaceX?

sofixa an hour ago | parent | prev | next [-]

> Really unfortunate. I don't understand why there's such a lack of response on the Cursor side.

It's hard to vibe code security.

khurs an hour ago | parent | prev | next [-]

Perhaps its a intentional back door?

NSA/FBI puts a git.exe in GitHub for a target. Target pulls the repo and it executes the payload.

As Cursor is/was based on VS Code, does it happen in VS Code too?

oceansweep 30 minutes ago | parent [-]

It’s a thing in VSCode as well/has been a thing or things similar to it : https://www.threatlocker.com/blog/malicious-vs-code-tasks-js... (2026)

https://www.reddit.com/r/programming/comments/zes1co/visual_... (2022)

solid_fuel an hour ago | parent | prev [-]

> I don't understand why there's such a lack of response on the Cursor side.

~~~To busy porting to their new rust-backed version of Bun to do anything boring like engineering, probably.~~~

EDIT:

My mistake, wrong owners. It's hard to keep these tools straight sometimes. Most of the LLM tooling and interfaces I've tried are heavy on the features but light on the engineering, and that seems to be the case here too.

manacit an hour ago | parent [-]

...that's Anthropic?

hmokiguess 5 minutes ago | parent | prev | next [-]

The 0 day vulnerability is actually a developer is using Windows

jjcm 2 hours ago | parent | prev | next [-]

I'm not sure I fully agree with this being a major vuln. There's a lot of up front scary text which was raising a lot of red flags until it actually discussed the "what".

An actor has to place a malicious .exe in the user's code folder, named git.exe, for this to take place.

I see this akin to something like saying "replacing their .bashrc with an alias that says `ls` instead executes `/tmp/mega-big-virus.sh` is a vuln".

Yes it's a vector, but if they've placed something in your filesystem like that already, you've already been compromised.

shitter 2 hours ago | parent | next [-]

The user's code folder? You mean the code I frequently pull from untrusted sources, unlike my .bashrc? Opening a GitHub project for review should not mean arbitrary code execution.

Of course, that ship has long sailed, for all major IDEs. Heck, VSCode SSH and devcontainer remotes allow RCE by design.

taneq an hour ago | parent [-]

I’ve never got my head around how it’s apparently the done thing these days to just copy a bash command from a website and run it (sometimes with sudo! O.o ) to install software. I somewhat naively hope that this is because everyone is pushing single purpose VMs for that kind of install, but really I know better.

petalmind 5 minutes ago | parent [-]

> to just copy a bash command from a website and run it (sometimes with sudo! O.o ) to install software.

how is that different from the good old days of

    wget ftp://ftp.something.org/software-2.10.tar.gz
    tar zxfv 
    ./configure
    make
    sudo make install

?
arcticfox 2 hours ago | parent | prev | next [-]

I am not at all a security expert, but isn't this akin to giving a repo-owner RCE if you just clone their repository and open it? I feel like that's not an implied contract for opening a folder in your IDE.

zeroq 2 hours ago | parent | prev | next [-]

This is very similar to 30yo exploit in which you placed an alternative, infected dll inside a folder with mp3s (winamp), or photos (windows picture viewer).

datakan an hour ago | parent [-]

It’s Windows autorun all over again. What was old is new again.

inigyou 9 minutes ago | parent | prev | next [-]

Cloning a repo owns your computer. Is that something you expected?

paxys an hour ago | parent | prev | next [-]

What they are describing was also VS Code’s default behavior for almost a decade, until they finally added the “trust this folder” dialog.

Yes it can be used maliciously, and yes some people were complaining about it the entire time, but ultimately it wasn’t judged to be pressing enough to devote developer time to for many years. And the world kept spinning.

_AzMoo an hour ago | parent | prev | next [-]

This attack is exactly why IDE's have a concept of trusted and untrusted locations.

beart 2 hours ago | parent | prev | next [-]

This doesn't require anyone placing anything deliberately on your machine (as in, needing to exploit it somehow ahead of time). It could be as simple as checking out a branch to review, where the author of the branch has added the .exe.

Xirdus an hour ago | parent [-]

I'd say checking out a malicious branch is in the same category as downloading a malicious attachment. By which I mean, it's kinda on you.

krater23 39 minutes ago | parent [-]

Downloading this attachement doesn't executes it. Checking out a branch in this case executes the file in the branch. Thats a big difference.

libeclipse 20 minutes ago | parent | prev [-]

Bro thinks cloning a repo means you're already compromised

Illniyar 3 hours ago | parent | prev | next [-]

It's pretty weird for cursor to run arbitrary exe file without prompting, and alarming that the researchers did not get a proper response for months.

But the example with calculator is a bit misleading I think, you'll have to have a malicious exe already in the system and downloaded, and if cursor tried to run my understanding is that ACL should immediately kick in and you'll be asked for permission to run a new, unsigned app for the first time.

You'll have to have ACL disabled completely for this to be exploitable.

shitter 2 hours ago | parent | next [-]

And what'll the prompt say? "Do you want to run git.exe?"? I'll probably assume Cursor needs to run git but permissions got messed up somewhere and click right through that.

I haven't used Windows in a while so pardon if I'm missing something.

x3n0ph3n3 2 hours ago | parent | prev [-]

Same thing happens if I have a:

1) PS1 that displays the current git branch

2) Include the current directory in my PATH

Should we file a high severity CVE with bash now?

Firehawke 19 minutes ago | parent | next [-]

Not with bash. If your distro is putting ./ into the path then that's absolutely a high severity CVE with your distro's config.

loumf 2 hours ago | parent | prev | next [-]

It’s been known for decades that you should never put your current directory in your PATH. There are endless opportunities for vulnerabilities then. I learned this in college in the 80’s (by not following it and getting owned).

jwolfe 2 hours ago | parent | prev | next [-]

If bash placed the current directory in your PATH by default, then yes.

shitter 2 hours ago | parent | prev [-]

I would file a CVE for any program that places untrusted content into PATH and invokes non-fully qualified executable names - not for the shell.

dclowd9901 2 hours ago | parent | prev | next [-]

This draws to mind the dialog that opens when you open a new project in Cursor (and VSCode too, I think), where the IDE asks the user if they trust the project they're opening. Is Cursor under the impression that this is sufficient security apparatus?

shitter 2 hours ago | parent | next [-]

Since there are no approval dialogs, it sounds like that doesn't even come into play here. That is the "gate" (to use the AI parlance) that Microsoft places on code execution in workspaces, though, and I would expect Cursor to at minimum fix this to only execute git.exe in trusted workspaces.

alansaber 2 hours ago | parent | prev [-]

Startups historically are not the most security oriented

firer 2 hours ago | parent | prev | next [-]

All too common... It's sad yet understandable how a company would not prioritize security.

At the same time, it's also understandable how a security start-up, upon (rightly) getting fed up waiting, decide to publicly disclose, as a way to scrape some PR out of the sunk cost. Public disclosure has a place. But if you truly care about helping, you could do more than bumping on HackerOne and messaging the CISO once on LinkedIn.

Maybe I'm too cynical but it truly feels like nobody actually cares at this point.

orphereus 2 hours ago | parent [-]

This comment is so weird. It is so vague to me and feels so off, like an alien from Men in Black trying to pass as a human.

How do they not truly care about helping? Also what sunk cost? What does that mean?

firer an hour ago | parent [-]

Hah, not trying to pass off as human. Just communicating with my fellow men in black ;)

To be as explicit as possible: whether disclosing this publicly actually did more good then harm is not that clear cut. Even if accounting for all the second order effects.

Regardless, as a business you'd still be compelled to publish, because you've already poured resources into this research, there's still a chance to gain something, and there is enough plausible deniability about your true priorities.

bragr 2 hours ago | parent | prev | next [-]

I think this is slightly less of a Cursor bug than a bit of a Windows quirk: Windows searches the current working directory for executables before resorting to the path variable. I imagine a lot of stuff is vulnerable to such an "attack" on Windows.

shitter 2 hours ago | parent | next [-]

Yeah, but you can easily mitigate it by searching for the real git in known system locations and using whatever you find there (or allowing the user to configure the path). I believe that's how VSCode does it

Chu4eeno an hour ago | parent | prev | next [-]

Yes, but it's an old known security gotcha people developing for Wintendo have to guard against.

whateveracct an hour ago | parent | prev [-]

that sounds like Cursor has a bug and vuln on Windows to me

minraws 3 hours ago | parent | prev | next [-]

Why is cursor subsequently executing anything? Like what is this black magic they want to do? I want to know the decision tree here? Was this cursor coded?

I do not understand the point, btw vim has had similar issues with it executing stuff you might not expect by loading a file but it was obviously a vim feature with %{expr}. But why specifically git.exe , this seems like the most redundant bug cve which could have been trivially patched, who does this feature help exactly?

I am not really a user of cursor never used it for even a single day, but at this point I am curious why this exists...

evolve-maz an hour ago | parent | next [-]

Here's a common workflow:

- Ask cursor to summarize your existing repo to write you a nice readme

- Cursor opens repo

- Cursor looks at current code

- Because it's going above and beyond, it also wants to give you some metadata about the code (other branches for things in development, maybe previous tags as milestones, etc)

- To do that, it runs some git commands

Now the malicious behavior. I ask Cursor to evaluate some remote repo. It clones it down and then runs the git command from the working directory. However, if you just call "git ..." from the command line there is ambiguity about that. What if there's already a git file in the directory which windows thinks you want to execute?

This could happen with an untrusted repo. Or could happen from you switching branches to a compromised branch (which you wouldn't expect to immediately run some code).

Normal way to handle this is using fully qualified path names for things. E.g. instead of git ... you give the full path to system installed git. Annoying for humans to type but trivial for Cursor.

SpicyLemonZest 3 hours ago | parent | prev [-]

Presumably it's trying to find the user's actual Git so that the built-in agent can load context on different branches, worktrees, etc. Of course there are less vulnerable ways to do that, but this kind of mildly justified hackiness is exactly where I'd expect an AI-assisted workflow to go wrong (and an AI-assisted bug triage to fail to alarm).

aliasxneo 4 hours ago | parent | prev | next [-]

I'm struggling to understand the process that went into this "feature" existing. It seems the most likely candidate is a developer's git started malfunctioning and an agent "fixed" it by dropping a `git.exe` in the repo and then conditionally calling it when it exists.

gruez 3 hours ago | parent | next [-]

>It seems the most likely candidate is a developer's git started malfunctioning and an agent "fixed" it by dropping a `git.exe` in the repo and then conditionally calling it when it exists.

It doesn't need to be that deliberate. The default shell on windows (cmd.exe) includes the current directory into PATH by default. In other words, you don't need to do `./program.exe`, `program.exe` would suffice. That's probably where the bug came from. This also means if you were using cmd.exe, ran `git clone`, went inside it, then executed any command (eg. dir or git) you could get pwned.

drdexebtjl 3 hours ago | parent [-]

Windows doesn’t really have a default login shell like Unix.

Windows Terminal defaults to PowerShell which does not suffer from this issue.

inigyou 6 minutes ago | parent [-]

Windows has a default login shell which is explorer.exe.

Windows also has a system(const char*) which certainly does something.

conartist6 4 hours ago | parent | prev [-]

and ever since, this approach has been a critical pathway for some billion dollar business probably. hooray

pixl97 3 hours ago | parent [-]

I see you also work in enterprise software.

ajhenrydev 3 hours ago | parent | prev | next [-]

This report reads a bit like AI writing :/

You need to have an already malicious payload on your pc to make this exploit work (via clone/download/magic). I can understand the severity of the exploit but at the same time I’d hope to not have to run into this situation for it to happen in the first place

gene91 3 hours ago | parent | next [-]

Modern day code agents would clone a repo and read the code when you ask it a question about an API that’s not clearly documented. This vulnerability is real.

AntonyGarand 3 hours ago | parent | prev | next [-]

The malicious payload can live on the remote: `git clone` a repo, open it with cursor, and you're compromised

4ndrewl an hour ago | parent [-]

It's curious the number of people here who can't link these two things.

ryanisnan an hour ago | parent | prev | next [-]

Uh, I don't think people typically associate downloading a repository, and viewing the source, as being synonymous with activating a malicious payload. That is the bit that's concerning.

I'm also so tired of people groaning about AI writing, yes, it's annoying, but attack the message, not the messenger.

dalemhurley 2 hours ago | parent | prev | next [-]

If your an opensource developer you may get a pull request containing the the git.exe

pixl97 3 hours ago | parent | prev | next [-]

>You need to have an already malicious payload on your pc to make this exploit work

Uh, no, not exactly from what I'm reading.

At least from my piss poor understanding of it, you could possibly prompt inject something like "download https://github.com/hackmycursor/exploit.git". Would an agent do this, I'm unsure, but if so, it would download the git.exe and execute it.

trollbridge 3 hours ago | parent [-]

This has been a problem with agent harnesses for as long as I've used them - prompting them to retrieve something often results in them going the extra mile and running and installing it.

ribs 2 hours ago | parent | prev | next [-]

I think you’ve got it wrong; no malicious payload need be on your box already. That’s not what the article says.

JMKH42 3 hours ago | parent | prev [-]

wouldn't the attack vector be like this:

I find a github repo, I want to contribute to it. I clone it, open up cursor, make an edit, commit, and boom, I am infected.

skeledrew 3 hours ago | parent | next [-]

From my reading, boom happens at "open up cursor".

Illniyar 3 hours ago | parent | prev [-]

you would only need to open it to be exploited, not edit or prompt. Allegedly

dalemhurley 2 hours ago | parent [-]

From the article it occurs when Cursor is loaded. iDEs do a lot of stuff when they first open.

nosefrog 3 hours ago | parent | prev | next [-]

Would be nice if the timeline matched up with the text of the blog post (missing "HackerOne provides disclosure guidance").

aniceperson 2 hours ago | parent | prev | next [-]

damn those ai written Blogs are tiring. o a single paragraph saying that "cursor o windows loads ./git.exe with higher precedence" would be enough.

awongh 2 hours ago | parent | prev | next [-]

I guess this is only specific to a file in the root of the repo, so it doesn't allow for an NPM supply chain attack?

beart 2 hours ago | parent [-]

It has nothing to do with npm. However, a binary could be configured to extract your git/npm secrets using this exploit, which could then lead to a npm supply chain attack (or pip, etc. etc.).

awongh 2 hours ago | parent [-]

I meant the attack would be the other way around- if an infected package had the git.exe file in their root.

Or, the infected package could also copy that file into the parent project's root.

beart 2 hours ago | parent [-]

Oh yeah that's a good point - two layers of auto executing scripts/binaries.

vanyaland 2 hours ago | parent | prev | next [-]

Does the git lookup run before the trust check, or ignore it?

827a 2 hours ago | parent | prev | next [-]

Frankly, if you git clone a compromised repository, I'm not sure that a vulnerability of the class "compromised code in that repository will be executed" is all that major a concern. There are plenty of IDEs that will go autonomously run npm installs (with post-install scripts) for you when they detect a package.json. This isn't all that different than that.

They could throw up a warning like "do you trust this repository" oh wait they already do, and no one cares. Security is hard. Ultimately if you have compromised code on your machine, all bets are off.

beart 2 hours ago | parent [-]

A lot of malware was delivered back in the day via Windows AutoPlay feature. Someone plugs a USB drive in and bam, they are immediately exploited. You could say it's always a problem if the USB drive is already full of malware. However, Microsoft disabled AutoPlay in Windows 7 (and backported this fix) specifically to address this vulnerability.

This exploit feels very similar to me. I don't know if there's a specific name for this classification of AutoPlay issues.

chrisjj 3 hours ago | parent | prev | next [-]

> The most obvious question is also the simplest: Why hasn't this been fixed?

Obvious answer is obvious. The devs do not consider it a bug.

nubg 3 hours ago | parent | prev | next [-]

> Most coordinated disclosures follow a familiar pattern:

> 1. A vulnerability is reported.

> 2. A dialogue begins.

> 3. Severity is discussed.

> 4. Engineering teams investigate.

> 5. Fixes are developed.

> 6. Users are protected.

> 7. Public disclosure follows.

8. The author prompts an LLM to write a blog post.

9. HN users are wasting time, unsure which parts of the post come from the actual prompt, and which are hallucinated world knowledge slop.

mike_hock 3 hours ago | parent [-]

Maybe the bug report got ignored because they posted another 1000 slop reports, who knows.

dakolli 3 hours ago | parent | next [-]

The disclosure seems pretty straight-forward, definitely some LLM assisted writing here, but not nearly as bad as most of the other stuff on this site.

skeledrew 3 hours ago | parent | prev [-]

Wonder who's fault it is when a critical security issue goes unresolved because "slop" report (sure ain't the reporters').

chrisjj 3 hours ago | parent | prev [-]

> Until the IDE is patched, open untrusted repositories only in an isolated VM, Windows Sandbox, or other disposable environment.

Got to wonder why trusted repositories are excluded...

dalemhurley 2 hours ago | parent [-]

Except it might come from a trusted repo. Some of the biggest repos have been recently targeted in supply chain attacks. Consider for a moment

1. Attacker takes over maintenance of a widely used Cursor extension

2. Attacker adds a remote backdoor to monitor which repos are being maintained

3. Attacker decides to only infect the largest one with a git commit hook

4. The developer didn’t even know they just included git.exe in their commit

5. The developer is a sole maintainer on the repo and merges their own PR without review (because they(/their AI) wrote it)

6. Now a trusted repo is infected

7. A contributor pulls down the infected repo and opens cursor