
TrapDoor-kampanja saastutti 34 pakettia npm:ssä, PyPI:ssä ja Crates.io:ssa, hyökkääjä piilotti ohjeet Claude- ja Cursor-avustajiin
- Socket havaitsi 34 saastunutta pakettia ja yli 384 versiota npm:ssä, PyPI:ssä ja Crates.io:ssa yhden viikonlopun aikana.
- Pakettien mukana tulleet .cursorrules- ja CLAUDE.md-tiedostot huijasivat Claude- ja Cursor-avustajia ajamaan väärennetyn tietoturvatarkistuksen.
- Kohteina olivat muun muassa Coinbasen, Binancen, MetaMaskin, Solanan, Sui:n ja Aptosin lompakot sekä SSH-avaimet ja GitHub-tokenit.
- Vanhin näyte on PyPI:n eth-security-auditor 0.1.0, julkaistu 22.5.2026 klo 20.20 UTC. Kampanja oli julkaisuhetkellä yhä päällä.
Socket Threat Research löysi ensimmäisen julkisesti dokumentoidun tapauksen, jossa hyökkääjä käytti .cursorrules- ja CLAUDE.md-tiedostoja piilottaakseen ohjeet kehittäjien AI-koodausavustajille. Pakettien mukana kulkeneet nollaleveysmerkein peitellyt komennot eivät näy editorissa — mutta Claude ja Cursor lukevat ja toteuttavat ne.
Kehittäjälompakot ovat olleet pitkään hyökkääjien suosikkikohde, mutta TrapDoor-kampanja avaa uuden luvun. Socketin tietoturvatutkijat julkistivat sunnuntaina löydöksen, jossa hyökkääjä ujutti haittakoodia kolmeen suureen pakettirekisteriin yhtä aikaa ja käytti hyväkseen kehittäjien luottamia AI-koodausavustajia.
Saastuneita paketteja oli 34 ja niiden versioita yli 384. Niistä noin 21 ilmestyi npm:ään, 7 PyPI:hin ja 6 Crates.io:hon. Vanhin näyte oli PyPI:n eth-security-auditor 0.1.0, joka lisättiin 22.5.2026 klo 20.20 UTC.
Kampanja oli julkaisuhetkellä yhä aktiivinen.
Paketit oli nimetty muistuttamaan tuttuja työkaluja: wallet-security-checker, defi-threat-scanner, solidity-deploy-guard, cryptowallet-safety, sui-sdk-build-utils ja move-compiler-tools. Asennuksen jälkeen koodi käynnistyi npm:n postinstall-koukussa, PyPI:n importin yhteydessä ja Rustin build.rs-skriptissä käännöksen aikana. Yksi npm-paketti sisälsi peräti 1 149 rivin keruuskriptin nimeltä trap-core.js.
Salaisuudet ulos AI-avustajan kautta
Tähän saakka kaikki on tavanomaista. Tästä alkaa uusi vaihe.
Pakettien mukana toimitettiin .cursorrules- ja CLAUDE.md-tiedostoja, joihin oli upotettu nollaleveysmerkein piilotettuja ohjeita. Kehittäjä ei näe rivejä editorissaan, mutta AI-avustaja lukee ne ja toteuttaa ne kuin tavallisina projektiohjeina.
Prompt-injektio ja nollaleveysmerkki
Prompt-injektiossa hyökkääjä piilottaa ohjeen tekstiin, jota AI-malli lukee, ja saa sen toimimaan kehittäjän puolesta. Nollaleveysmerkki on Unicode-merkki, joka ei näy ruudulla. Sillä piilotetut komennot pujahtavat editorin ohi mutta päätyvät kielimallin syötteeseen.
Käytännön seuraus oli karu. Avustaja ehdotti omasta aloitteestaan "tietoturvatarkistusta", joka todellisuudessa luki paikalliset lompakkotiedostot, ympäristömuuttujat ja SSH-avaimet ja lähetti ne hyökkääjän palvelimelle. Kohteena olivat Coinbase-, Binance-, MetaMask- ja Brave-lompakot sekä Solanan, Sui:n ja Aptosin keystoret.
Listalla olivat myös AWS-tunnukset, GitHubin henkilökohtaiset pääsytokenit (PAT) ja selainten salasanatietokannat. Vuoto kulki GitHub Gistien kautta. Tiedot kerääntyivät käyttäjätilille ddjidd564, ja kampanjan tunnisteena oli P-2024-001.
– Hyökkääjä ei vain piilota koodia pakettiin. Hyökkääjä piilottaa ohjeen työkalulle, johon kehittäjä luottaa, totesi Ahmad Nassri, Socketin teknologiajohtaja.
Mitä suomalaisen kryptokehittäjän kannattaa tehdä
Cursor ja Claude Code ovat arkityökaluja monelle suomalaiselle DeFi-tiimille ja lompakkokehittäjälle. Riski koskee siis tätä joukkoa suoraan. Miten se näkyy käytännössä kehittäjälle?
Tarkistettavaa on kolme: avaa projektin .cursorrules- ja CLAUDE.md-tiedostot tekstieditorissa, joka näyttää piilomerkit. Käy läpi viimeisimmät asennukset Socketin TrapDoor-listalta. Vilkaise myös postinstall-koukut ja build.rs-skriptit oudoista verkkokutsuista.
Socketin havaintoaika oli mediaaniltaan 5 minuuttia 27 sekuntia, ja nopein tunnistus tapahtui 58 sekunnissa paketin julkaisusta. Cointelegraphin haastattelussa Nassri huomautti, että koodissa näkyi AI-avusteisen kirjoittamisen jälkiä – geneerisiä turvakehyksiä, koristesyntaksia ja prompt-injektio-viitteitä funktionaalisen haittakoodin rinnalla. Socket ei yhdistä kampanjaa tunnettuun ryhmään.
Toistaiseksi tämä on hyökkäystavan ensimmäinen havainto julkisissa rekistereissä. Jää nähtäväksi, kopioivatko muut ryhmät mallin nopeasti.









