Back

I found 39 Algolia admin keys exposed across open source documentation sites

104 points7 hoursbenzimmermann.dev
tcbrah3 hours ago

the wildest part is algolia just not responding. you email them saying "hey 39 of your customers have admin keys in their frontend" and they ghost you? thats way worse than the keys themselves imo. like the whole point of docsearch is they manage the crawling FOR you, but then the "run your own crawler" docs basically hand you a footgun with zero guardrails. they could just... not issue admin-scoped keys through that flow

netsharc6 hours ago

Man, talk about unnecessary graphs... ok graph 2 is maybe tolerable, although it's showing the popularity of the projects, not a metric of how many errors/vulnerabilities found in those projects.

I'm not a newspaper editor, but I think if this was an article for one, they'd also say the graphs are unnecessary. It smells of "I need some visual stuff to make this text interesting"...

throwaway54656 hours ago

It's Friday night / Saturday morning. Who wants to be reading text?

Especially on night mode themes.

Besides, can we read anymore? In the age of 'GPT summarise it me' attention spans and glib commentary not about the content of the article being all many people have to add, perhaps liberal application of visualisations adds digestive value.

binarymax5 hours ago

Dude there’s only three graphs in there. Do they really bother you that much? The third may be a bit unnecessary but I think the visuals add to the post.

netsharc5 hours ago

So you agree partially with what I said.

The poster is 16, he can take it as feedback towards effective writing. Or the intellectual HN crowd can just downvote it and dissuade me from contributing and helping a kid (oh look at me, how fucking noble am I, right?).

Ah, that feeling of "Am I the only one who gets it around here?". I wanted to explain to you why graph 2 is dumb, and graph 1 is very little information, but heck, I felt dissuaded.

shermantanktop4 hours ago

If you’re “helping a kid” then I guess I can help you. Help is criticism delivered with a constructive tone. Criticism can be helpful if you look past the tone.

If you want to help, you should sound helpful.

integralid5 hours ago

I liked the graphs. When skimming posts i often stop on graphical elements and decide if I want to understand the context or continue skimming. In this context, all three graphs were useful for me.

Posts with just text are sense and just not nice to read. That's why even text-only blog posts have a tendency to include loosely-related image at the top, to catch reader's eye.

stickynotememo6 hours ago

So why hasn't the HomeAssistant docs page been nuked yet?

TechSquidTV5 hours ago

I have been developing an OpenClaw-like agent that automates exactly this type of attack.

_pdp_5 hours ago

Why? This is just regex search and there are plenty of tools that do this perfectly fine.

emotiveengine2 hours ago

Have to agree with _pdp_ on this one. I just don't see the need for an LLM agent to do a recursive grep for API keys in public repos.

Not saying people shouldn't build these tools, but the use case is lost on me.

It feels like the industry is in this weird phase of trying to replace 30-year-old, perfectly optimized shell utilities with multi-shot agent workflows that literally cost money to run. A basic Python script with a regex matcher and the GitHub API will find these keys faster, cheaper, and more reliably.

system24 hours ago

None of those proven tools would make a man feel like a wannabe Mr. Robot.

fix4fun7 hours ago

Interesting how many people already are playing with these API keys ? ;)

toomuchtodo7 hours ago

Great write up. Reminder that if you commit these to a Github Gist and the provider partners with GitHub for secrets scanning, they’ll rapidly be invalidated.

pwdisswordfishy7 hours ago

That's just a tautology.

"If the secrets issuer partners with X-corp for secret scanning so that secrets get invalidated when you X them, then when you X them the secrets will be invalidated".

The above is a true statement for all X.

nightpool7 hours ago

? Yes? Toomuchtodo is reminding the author (and other commenters), that github gists are one way to make sure secrets are secured / remediated before making a public post like this. Maybe not the most responsible whitehat action, but I can see it being useful in some cases where outreach is impractical / has failed.

Unfortunately, it doesn't look like Algolia has implemented this

TurdF3rguson5 hours ago

I'm not following this at all. It seems like OP is saying if you share a secret in your (private?) gist and give Algolia permission to read the gist, they will invalidate it. But why would the secret be in a gist and not a repo? Also if you're aware enough to add that partner it seems you're aware to not do dumb things like that in the first place.

+1
richbell5 hours ago
wat100006 hours ago

English is not formal logic.

In formal logic, that statement is true whether X is GitHub, or Lockheed-Martin, Safeway, or the local hardware store.

In English, the statement serves to inform (or remind) you that GitHub has a secret scanning program that many providers actually do partner with.

pwdisswordfishy6 hours ago

Yes, and in the real world where Grice's Maxim of Relevance is in force, then when the secrets issuer that is the subject of the discussion isn't one of those partners, then an informative "reminder" that GitHub "has a secret scanning program" with a bunch of other partners is not actually informative. It's as superfluous and unhelpful as calling to let someone know you're not interested in the item they've posted for sale on Craiglist (<https://www.youtube.com/watch?v=xWG3jKzKcm8>).

wat100005 hours ago

It's more useful than telling someone that their statement is a tautology in formal logic.

richbell5 hours ago

How is reminding people that they can safely revoke exposed API keys not informative? Why are you being so combative?

aneyadeng1 hour ago

[flagged]

newzino2 hours ago

[dead]

Eron331 hour ago

[dead]

ClaudioAnthrop5 hours ago

[dead]

cc-d7 hours ago

[dead]