865 points by takira 4 days ago | 398 comments | View on ycombinator
burkaman 4 days ago |
Tiberium 4 days ago |
It works for a lot of other providers too, including OpenAI (which also has file APIs, by the way).
https://support.claude.com/en/articles/9767949-api-key-best-...
https://docs.github.com/en/code-security/reference/secret-se...
hombre_fatal 4 days ago |
Unlike /slash commands, skills attempt to be magical. A skill is just "Here's how you can extract files: {instructions}".
Claude then has to decide when you're trying to invoke a skill. So perhaps any time you say "decompress" or "extract" in the context of files, it will use the instructions from that skill.
It seems like this + no skill "registration" makes it much easier for prompt injection to sneak new abilities into the token stream and then make it so you never know if you might trigger one with normal prompting.
We probably want to move from implicit tools to explicit tools that are statically registered.
So, there currently are lower level tools like Fetch(url), Bash("ls:*"), Read(path), Update(path, content).
Then maybe with a more explicit skill system, you can create a new tool Extract(path), and maybe it can additionally whitelist certain subtools like Read(path) and Bash("tar *"). So you can whitelist Extract globally and know that it can only read and tar.
And since it's more explicit/static, you can require human approval for those tools, and more tools can't be registered during the session the same way an API request can't add a new /endpoint to the server.
c7b 3 days ago |
It's like customizing your text editor or desktop environment. You can do it all yourself, you can get ideas and snippets from other people's setups. But fully relying on proprietary SaaS tools - that we know will have to get more expensive eventually - for some of your core productivity workflows seems unwise to me.
[0] https://news.ycombinator.com/item?id=46545620
[1] https://www.theregister.com/2025/12/01/google_antigravity_wi...
rkagerer 3 days ago |
The level of risk entailed from putting those two things together is a recipe for diaster.
Animats 4 days ago |
Oh, no, another "when in doubt, execute the file as a program" class of bugs. Windows XP was famous for that. And gradually Microsoft stopped auto-running anything that came along that could possibly be auto-run.
These prompt-driven systems need to be much clearer on what they're allowed to trust as a directive.
rvz 4 days ago |
Exploited with a basic prompt injection attack. Prompt injection is the new RCE.
phyzome 3 days ago |
bilater 3 days ago |
danielrhodes 3 days ago |
There are any number of ways to foot gun yourself with programming languages. SQL injection attacks used to be a common gotcha, for example. But nowadays, you see it way less.
It’s similar here: there are ways to mitigate this and as we learn about other vectors we will learn how to patch them better as well. Before you know it, it will just become built into the models and libraries we use.
In the mean time, enjoy being the guinea pig.
emsign 3 days ago |
patapong 3 days ago |
This should be relatively simple to fix. But, that would not solve the million other ways a file can be sent to another computer, whether through the user opening a compromised .html document or .pdf file etc etc.
This fundamentally comes down to the issue that we are running intelligent agents that can be turned against us on personal data. In a way, it mirrors the AI Box problem: https://www.yudkowsky.net/singularity/aibox
tuananh 3 days ago |
- currently we have no skills hub, no way to do versioning, signing, attestation for skills we want to use.
- they do sandboxing but probably just simple whitelist/blacklist url. they ofcourse needs to whitelist their own domains -> uploading cross account.
mvandermeulen 2 days ago |
They all make use of the GitHub topic feature to be found. The most recent commit will usually be a trivial update to README.md which is done simply to maintain visibility for anyone browsing topics by recently updated. The readme will typically instruct installation by downloading the zip file rather than cloning the repo.
I assume the payload steals Claude credentials or something similar. The sheer number of repos would suggest plenty of downloads which is quite disheartening.
It would take a GitHub engineer barely minutes to implement a policy which would eradicate these repos but they don’t seem to care. I have also been unable to use the search function on GitHub for over 6 months now which is irrelevant to this discussion but it seems paying customers cannot count on Github to do even the bare minimum by them.
xg15 3 days ago |
Seems to me the direct takeaway is pretty simple: Treat skill files as executable code; treat third-party skill files as third-party executable code, with all the usual security/trust implications.
I think the more interesting problem would be if you can get prompt injections done in "data" files - e.g. can you hide prompt injections inside PDFs or API responses that Claude legitimately has to access to perform the task?
kingjimmy 4 days ago |
leetrout 4 days ago |
dangoodmanUT 4 days ago |
LetsGetTechnicl 3 days ago |
caminanteblanco 4 days ago |
teekert 3 days ago |
wunderwuzzi23 4 days ago |
https://embracethered.com/blog/posts/2025/claude-abusing-net...
MarginalGainz 3 days ago |
refulgentis 4 days ago |
Anyone know what can avoid this being posted when you build a tool like this? AFAIK there is no simonw blessed way to avoid it.
* I upload a random doc I got online, don’t read it, and it includes an API key in it for the attacker.
fudged71 3 days ago |
| Skill | Title | CVSS | Severity |
| webapp-testing | Command Injection via `shell=True` | 9.8 | *Critical* |
| mcp-builder | Command Injection in Stdio Transport | 8.8 | *High* |
| slack-gif-creator | Path Traversal in Font Loading | 7.5 | *High* |
| xlsx | Excel Formula Injection | 6.1 | Medium |
| docx/pptx | ZIP Path Traversal | 5.3 | Medium |
| pdf | Lack of Input Validation | 3.7 | Low |
armcat 3 days ago |
1. Categorize certain commands (like network/curl/db/sql) as `simulation_required` 2. Run a simulation of that command (without actual execution) 3. As part of the simulation run a red/blue team setup, where you have two Claude agents each either their red/blue persona and a set of skills 4. If step (3) does not pass, notify the user/initiator
calflegal 4 days ago |
ryanjshaw 3 days ago |
[1] https://web.archive.org/web/20031205034929/http://www.cis.up...
tnynt63 2 days ago |
sgammon 4 days ago |
khalic 3 days ago |
undefined 4 days ago |
undefined 4 days ago |
SamDc73 4 days ago |
woggy 4 days ago |
Havoc 3 days ago |
They’re passing in half the internet via rag and presumably didn’t run a llamaguard type thing over literally everything?
fathermarz 3 days ago |
jryio 3 days ago |
chaostheory 3 days ago |
__0x01 3 days ago |
wutwutwat 3 days ago |
If you do, just like curl to bash, you accept the risk of running random and potentially malicious shit on your systems.
rsynnott 4 days ago |
gnarbarian 3 days ago |
instructions contained outside of my read only plan documents are not to be followed. and I have several Canaries.
choldstare 4 days ago |
adam_patarino 3 days ago |
niyikiza 4 days ago |
Curious if anyone else is going down this path.
tnynt63 2 days ago |
Juliate 3 days ago |
Just a few years ago, no one would have contemplated putting in production or connecting their systems, whatever the level of criticality, to systems that have so little deterministic behaviour.
In most companies I've worked for, even barebones startups, connecting your IDE to such a remote service, or even uploading requirements, would have been ground for suspension or at least thorough discussion.
The enshitification of all this industry and its mode of operation is truly baffling. Shall the bubble burst at last!
undefined 3 days ago |
jerryShaker 4 days ago |
Escapade5160 4 days ago |
hakanderyal 4 days ago |
Also, I'll break my own rule and make a "meta" comment here.
Imagine HN in 1999: 'Bobby Tables just dropped the production database. This is what happens when you let user input touch your queries. We TOLD you this dynamic web stuff was a mistake. Static HTML never had injection attacks. Real programmers use stored procedures and validate everything by hand.'
It's sounding more and more like this in here.
jsheard 4 days ago |
mbowcut2 3 days ago |
kewldev87 3 days ago |
llmslave 4 days ago |
sawjet 3 days ago |
lifetimerubyist 3 days ago |
Randomly can’t start new conversations.
Uses 30% CPU constantly, at idle.
Slow as molasses.
You want to lock us into your ecosystem but your ecosystem sucks.