{"id":31230794,"url":"https://github.com/muthu-d-anonysm/npm2guard","last_synced_at":"2026-05-15T22:34:17.111Z","repository":{"id":315790164,"uuid":"1060837922","full_name":"muthu-d-anonysm/npm2guard","owner":"muthu-d-anonysm","description":"Open-source tool to scan GitHub organizations for vulnerable NPM packages compromised in the September 2025 supply chain attack. Automatically analyzes nested dependency files in all repositories to help startups, freelancers, and dev teams manage supply chain risks without dedicated security experts.","archived":false,"fork":false,"pushed_at":"2025-09-20T17:52:36.000Z","size":17,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-20T19:26:40.554Z","etag":null,"topics":["bugbounty","bugbounty-tool","cyberattack","cybersecurity","devsecops","npm","npm-module","npm-package","npmjs","security","security-audit","security-tools","supply-chain"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/muthu-d-anonysm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-20T17:37:46.000Z","updated_at":"2025-09-20T18:10:54.000Z","dependencies_parsed_at":"2025-09-20T19:26:45.302Z","dependency_job_id":"26b0bd1d-4e25-43e0-bae9-5d9de20b61f3","html_url":"https://github.com/muthu-d-anonysm/npm2guard","commit_stats":null,"previous_names":["muthu-d-anonysm/npm2guard"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/muthu-d-anonysm/npm2guard","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muthu-d-anonysm%2Fnpm2guard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muthu-d-anonysm%2Fnpm2guard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muthu-d-anonysm%2Fnpm2guard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muthu-d-anonysm%2Fnpm2guard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/muthu-d-anonysm","download_url":"https://codeload.github.com/muthu-d-anonysm/npm2guard/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/muthu-d-anonysm%2Fnpm2guard/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33082044,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-15T20:25:35.270Z","status":"ssl_error","status_checked_at":"2026-05-15T20:25:34.732Z","response_time":103,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bugbounty","bugbounty-tool","cyberattack","cybersecurity","devsecops","npm","npm-module","npm-package","npmjs","security","security-audit","security-tools","supply-chain"],"created_at":"2025-09-22T10:10:12.333Z","updated_at":"2026-05-15T22:34:17.106Z","avatar_url":"https://github.com/muthu-d-anonysm.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# npm2guard\n\n![By Muthu D](https://img.shields.io/badge/author-Muthu%20D-blue)\n\nnpm2guard is a tool to scan GitHub organizations' repositories for vulnerable NPM packages affected by recent supply chain attacks. It detects compromised dependencies in `package.json`, `package-lock.json`, and `yarn.lock` files recursively.\n\n---\n\n## Features\n\n- Scans all repositories within a GitHub organization.\n- Detects compromised npm package versions automatically.\n- Interactive GitHub token prompt with local token storage.\n- Supports scanning multiple organizations from file input.\n\n---\n\n## Installation\n\nRequires Python 3.6 or higher.\n\n- git clone https://github.com/muthu-d-anonysm/npm2guard.git\n- cd npm2guard\n- pip install -r requirements.txt\n\n---\n\n## Usage\n\n1. Scan a single organization:\n  \n- python scanner.py --org target\n\nYou will be prompted to enter your GitHub personal access token (recommended to use Classic tokens starting with `ghp_`).\n\n\n2. Scan multiple organizations:\n   \n- python scanner.py --org-file targets.txt\n\n`targets.txt` contains one organization name per line.\n\n---\n\n## License\n\nMIT License — see [LICENSE](https://github.com/muthu-d-anonysm/npm2guard/LICENSE) file.\n\n---\n\n## Author\n\nMuthu D.  \n[LinkedIn](https://www.linkedin.com/in/anonysm)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuthu-d-anonysm%2Fnpm2guard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmuthu-d-anonysm%2Fnpm2guard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmuthu-d-anonysm%2Fnpm2guard/lists"}