Vai al contenutoistheinternetok

Il tuo repo sta bene?

Controlla se un repo GitHub ha dipendenze vulnerabili

Incolla un repo GitHub pubblico. Leggiamo ogni lockfile al suo ultimo commit, confrontiamo ogni versione fissata con tutte le falle note e ti diciamo cosa aggiornare per primo. Gratis, senza account, niente da installare.

Prova:vercel/next.jsJavaScriptpallets/flaskPythonastral-sh/ruffRustkubernetes/kubernetesGorails/railsRubybitwarden/server.NETphoenixframework/phoenixElixirimmich-app/immichDart, TypeScript

Cosa legge

30 formati di lockfile e 7 formati di manifest, in 14 ecosistemi. Conta ogni cartella, monorepo e workspace compresi. Se un progetto non ha un lockfile, leggiamo le versioni esatte che fissano i suoi manifest. Un lockfile che non sappiamo controllare, come quello di CocoaPods o di Conan, è indicato sulla pagina del repo, mai saltato in silenzio.

JavaScript, TypeScriptnpm
package-lock.jsonnpm-shrinkwrap.jsonpnpm-lock.yamlyarn.lockbun.lockdeno.lockpackage.json
PythonPyPI
uv.lockpoetry.lockPipfile.lockpdm.lockpylock.tomlrequirements.txtrequirements.lockpixi.lockconda-lock.ymlpyproject.toml
Rustcrates.io
Cargo.lockCargo.toml
GoGo modules
go.mod
Java, KotlinMaven
gradle.lockfilemaven_install.jsonpom.xmllibs.versions.toml
.NETNuGet
packages.lock.jsonpackages.configpaket.lock.csproj.fsproj.vbprojDirectory.Packages.props
RubyRubyGems
Gemfile.lockgems.locked
PHPPackagist
composer.lock
Dart, FlutterPub
pubspec.lock
SwiftSwiftPM
Package.resolved
Elixir, ErlangHex
mix.lockrebar.lock
HaskellHackage
cabal.project.freeze
RCRAN
renv.lock
JuliaJulia
Manifest.toml

Con il bordo tratteggiato: i manifest, letti solo dove nessun lockfile li copre.

Quanto legge davvero

Dal 97 al 100%

delle versioni fissate che elenca il grafo delle dipendenze di GitHub stesso, in npm, PyPI, Cargo, Go, Pub e Swift. Misurato su 77 grandi repo.

Per ora meno in Packagist (95%), RubyGems (92%), NuGet (84%) e Maven (62%).

Come funziona

  1. Legge i lockfile all'ultimo commit

    Ogni lockfile di ogni cartella, letto su GitHub al commit esatto: ogni pacchetto alla versione che fissa, e se lo usano solo strumenti di sviluppo. Il tuo codice sorgente non viene mai letto.

  2. Confronta ogni versione con tutte le falle note

    Ogni versione viene cercata in OSV, che riunisce i database pubblici di avvisi di sicurezza (quello di GitHub, quello di PyPI, RustSec, quello di Go e altri), e nell'elenco della CISA delle falle che gli attaccanti già sfruttano.

  3. Ti dice cosa aggiornare per primo

    Quello che tocca i tuoi utenti viene prima, il più grave in cima: il pacchetto da aggiornare, spesso la dipendenza diretta che porta la falla, e la versione che la corregge. Test, esempi, documentazione e strumenti di sviluppo sono elencati a parte e non contano mai.

  4. Dice cosa può fare una falla, non che lo fa

    Non controlla se il tuo codice chiama la parte vulnerabile di un pacchetto. Una falla sulla pagina è una versione da aggiornare, non la prova che il progetto sia attaccabile.

  5. Sempre aggiornato

    Un nuovo commit viene letto alla visita successiva. Un nuovo avviso raggiunge ogni repo che tocca pochi minuti dopo che OSV lo pubblica.

Un badge per il tuo README

La pagina di ogni repo ti dà un badge che mostra la sua risposta e cambia insieme a lei. Metti il tuo repo al posto di owner/repo:

[![owner/repo sta bene?](https://istheinternetok.com/r/owner/repo/badge.svg)](https://istheinternetok.com/r/owner/repo/)

Per agenti e script

La stessa risposta in JSON, senza chiave, su /v1/repos/owner/repo. Oppure come strumento MCP, check_repo, su https://istheinternetok.com/mcp. Tutto quello che un agente deve sapere è in /skill.md.

curl -s https://istheinternetok.com/v1/repos/vercel/next.js

Domande

Può controllare un repo privato?

No. Legge solo i repo GitHub pubblici, come li vede chiunque. Non chiede mai niente di privato.

Conservate il mio codice?

No. Non legge mai il codice sorgente, solo i lockfile e i manifest. Conserva l'elenco dei pacchetti e delle versioni che fissano, e la risposta, per ricontrollare il repo quando esce una nuova falla.

Quanto costa?

Niente. Né account né chiave: la pagina, il badge, l'API e lo strumento MCP sono gratuiti.

Che differenza c'è con npm audit o Dependabot?

Fa lo stesso tipo di ricerca partendo da un link, senza installare niente, e in tutti gli ecosistemi insieme, non solo npm. Gli avvisi di Dependabot li vedono solo gli amministratori del repo; questa pagina chiunque può leggerla e condividerla. Mette anche da parte ciò che usano solo i test e gli strumenti di sviluppo.

Una falla sulla pagina vuol dire che il mio progetto è stato violato?

No. Vuol dire che una versione fissata dal progetto ha una falla nota, e dice cosa quella falla può permettere. Non controlla se il tuo codice arriva alla parte vulnerabile: prima aggiorna, poi guarda meglio se serve.