Live data from Hacker News

How we exploited CodeRabbit: From simple PR to RCE and write access on 1M repos

research.kudelskisecurity.com

141–150 of 244 posts

Re: How we exploited CodeRabbit: From simple PR to RCE and write access on 1M repos

#141

Earlier quoted context omitted.

https://www.coderabbit.ai/blog/our-response-to-the-january-2...

The LLM tics are strong in this writeup: "No manual overrides, no exceptions." "Our VDP isn't just a bug bounty—it's a security partnership"

Wow, you hit a nerve with that one. There have been some quick edits on the page.

Another:

> Security isn't just a checkbox for us; it's fundamental to our mission.

Re: How we exploited CodeRabbit: From simple PR to RCE and write access on 1M repos

#142
post #88
post #69

Earlier quoted context omitted.

Correct me if I'm wrong, but the problem here is not with GitHub Apps, instead CodeRabbit violated the principle of least privilege: ideally the private key of their app should never end up in the environment of a job for a client but rather a short lived token should be minted from it (for just a single repo (for which the job is running)) so it never gets anywhere near those areas where one of their clients has any…

There's also no reason why they needed to have write access to post code review comments. But for some reason they ask for it and you can't deny that part when hooking up their thing.

That stood out to me as well. It comes across as greedy - "some of you must suffer, but that is a price I am willing to pay".

Re: How we exploited CodeRabbit: From simple PR to RCE and write access on 1M repos

#143

I cancelled my coderabbit paid subscription, because it always worries me when a post has to go viral on HN for a company to even acknowledge an issue occurred. Their blogs are clean of any mention of this vulnerability and they don't have any new posts today either. I understand mistakes happen, but lack of transparency when these happen makes them look bad.

Both articles were published today. It seems to me that the researchers and coderabbit agreed to publish on the same day. This is a common practice when the company decides to disclose at all (disclosure is not required unless customer data was leaked and there's evidence of that, they are choosing to disclose unnecessarily here).

When the security researchers praise the response, it's a good sign tbh.

Re: How we exploited CodeRabbit: From simple PR to RCE and write access on 1M repos

#144

One of the problems is that code analyzers, bundlers, compilers (like Rust compiler) allow running arbitrary code without any warning. Imagine following case: an attacker pretending to represent a company sends you a repository as a test task before the interview. You run something like "npm install" or run Rust compiler, and your computer is controlled by an attacker now. Or imagine how one coworker's machine gets h…

I love this implication that there's some valuable body of code out there that gets reviewed, compiled and never executed.

Re: How we exploited CodeRabbit: From simple PR to RCE and write access on 1M repos

#145

I cancelled my coderabbit paid subscription, because it always worries me when a post has to go viral on HN for a company to even acknowledge an issue occurred. Their blogs are clean of any mention of this vulnerability and they don't have any new posts today either. I understand mistakes happen, but lack of transparency when these happen makes them look bad.

https://www.coderabbit.ai/blog/our-response-to-the-january-2...

Not a single mention of env vars. Just shifting the blame to rubocop.

Re: How we exploited CodeRabbit: From simple PR to RCE and write access on 1M repos

#146
if op is reading the comments here: the screenshot where CodeRabbit has discovered the security vulnerability in the PR contains the actual ip address the env vars were sent to. No big deal, just you carefully used 1.2.3.4 in the rest of the article only to leak it in the screenshot. fyi.

Re: How we exploited CodeRabbit: From simple PR to RCE and write access on 1M repos

#147
post #135

When I read up to "One can use the Rubocop configuration file to specify the path to an extension Ruby file" my immediate thought was "oh no, they didn't allow a user-extendable tool to run in their prod environment..." - and yes, they did. Not that it'd be properly secure without this glaring hole - I don't think many linters are properly audited and fuzzed against hostile inputs - but this is like opening the front…

Even better when you read the CEO's response:

> The researchers identified that Rubocop, one of our tools, was running outside our secure sandbox environment

I don't think that was the main problem lol

Re: How we exploited CodeRabbit: From simple PR to RCE and write access on 1M repos

#148
post #130

From the CEO's response: > On January 24, 2025, security researchers from Kudelski Security disclosed a vulnerability to us through our Vulnerability Disclosure Program (VDP). The researchers identified that Rubocop, one of our tools, was running outside our secure sandbox environment—a configuration that deviated from our standard security protocols. Honestly, that last part sounds like a lie. Why would one task run…

> Why would one task run in a drastically different architectural situation

Someone made a mistake. These things happen.

> and it happen to be the one exploited?

Why would the vulnerable service be the service that is exploited? It seems to me that's a far more likely scenario than the non-vulnerable service being exploited... no?

Re: How we exploited CodeRabbit: From simple PR to RCE and write access on 1M repos

#149

Earlier quoted context omitted.

The LLM tics are strong in this writeup: "No manual overrides, no exceptions." "Our VDP isn't just a bug bounty—it's a security partnership"

Wow, you hit a nerve with that one. There have been some quick edits on the page. Another: > Security isn't just a checkbox for us; it's fundamental to our mission.

They delved deep and spent a whole 2 minutes with ChatGPT 4o getting those explanations and apologies in play.

Re: How we exploited CodeRabbit: From simple PR to RCE and write access on 1M repos

#150
post #130

From the CEO's response: > On January 24, 2025, security researchers from Kudelski Security disclosed a vulnerability to us through our Vulnerability Disclosure Program (VDP). The researchers identified that Rubocop, one of our tools, was running outside our secure sandbox environment—a configuration that deviated from our standard security protocols. Honestly, that last part sounds like a lie. Why would one task run…

because researchers from Kudelski Security most likely tried different static analysis tools and they didn't work the way Rubocop did.

They don't write the details of how they got to this particular tool - you could also see from the article they tried a different approach first.

Post reply on HN