Malicious
Repos written to hurt whoever runs them: typosquats, credential stealers, backdoored forks, fake exploit code that carries a payload.
- Published
- As soon as the evidence is recorded
- What to do
- Don't clone it, don't install it
crimeforgood finds leaked keys, booby-trapped repos and hacked sites the way an attacker would, and reports them instead of using them. The lists and the tools are open source.
Pre-launch. The scanner and the lists are being built in the open.
Attackers sweep for what's left open and probe what's meant to hold. So do we. The difference is what happens next.
We scan public GitHub repositories and publish what we find: repos built to harm you, and repos that will leave you exposed. Anyone can download the lists and run the tools.
Building nowThreat feeds block hacked sites as if they were malicious, and nobody tells the owner. A dentist whose site is serving injected phishing links needs to hear about it, not just land on a blocklist.
PlannedPlenty of skilled researchers skip bug bounties because they don't want their names known. Companies hire crimeforgood for agreed security work and deal only with us; the researchers do it as our contractors, and the client never learns who they were.
In developmentThe tools that stress-test AI models cost enterprise money, and the attacks baked into them aren't that sharp. We're building an open harness of real adversarial prompts that runs against any model through its API. You pay for the tokens, not the licence.
In developmentA repo that attacks you and a repo with a bug in it are different problems. They get different lists, different evidence and different publishing rules.
Repos written to hurt whoever runs them: typosquats, credential stealers, backdoored forks, fake exploit code that carries a payload.
Honest projects with a flaw that puts their users at risk: leaked secrets, known-vulnerable dependencies, unsafe defaults. Not bad, but worth knowing about.
A listing is a claim about someone's code, so each one says which rule fired, on which commit, in which file. If you can't reproduce it, it shouldn't be there.
These are example records with made-up repos. Field names may change before the first release.
list malicious
repo github.com/example-user/reqeusts-toolkit
finding Install script sends environment
variables to a remote host
rule install-hook-exfiltration
commit 3f9a1c2
file setup.py, line 14
first seen 2026-01-01
status published
list vulnerable
repo github.com/example-org/invoice-service
finding Live cloud access key committed
to the repository
rule committed-secret
commit b71e0d4
file config/deploy.env, line 3
first seen 2026-01-01
status maintainer notified, not yet public
Open source rules run against public code on GitHub. We read repositories. We don't probe anyone's live systems.
A finding only counts with the rule, commit, file and line attached, so anyone can check it.
For vulnerable repos, the maintainer hears first and gets time to fix it. Malicious repos skip this step.
The entry goes on the open list, free to download and build on.
Anyone can dispute an entry. Fixed repos come off the vulnerable list, and mistakes are removed in public.
Nothing here ships yet. This is what's being built first, and all of it will be open source.
Ask whether a repository is on either list, and why, before you clone it.
crimeforgood check github.com/owner/repo
Planned
Run it in CI and fail the build when something you depend on points at a listed repo.
PlannedBoth lists as plain JSON under an open licence, for your own scanners and research.
PlannedRun a library of real adversarial prompts against any model and see what gets through, for the price of the API calls.
crimeforgood redteam <provider/model>
Planned