
Research
Supply Chain Attack on Axios Pulls Malicious Dependency from npm
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.
@kilopal/gasha
Advanced tools
Gasha - Defense-first Package Manager with cryptographic signing, sandboxing, and AI-powered auditing

Gasha is a next-generation secure package manager that protects both package publishers and consumers from supply chain attacks through cryptographic verification, sandboxed installations, and AI-powered security auditing.
The npm ecosystem faces growing security threats:
Gasha solves these problems with defense-in-depth security.
When you install a package with Gasha, it performs these security checks:
When you publish a package with Gasha, it provides:
npm install -g gasha
gasha doctor
This checks if you have all required dependencies:
Note: Missing dependencies show helpful installation links for easy setup.
Install a package securely:
gasha install express
What happens:
node_modulesAudit any package for security issues:
gasha audit lodash --ai
Output:
Generate cryptographic keys:
gasha keygen --out ./keys --algo ed25519
Sign your package:
gasha sign ./dist/my-package.tgz --key ./keys/private.pem
Verify signatures:
gasha verify ./dist/my-package.tgz --key ./keys/public.pem
Note: Supports both RSA and Ed25519 key verification with automatic detection.
View transparency log:
gasha log view
--read-only filesystem--network=none (no network access)--cap-drop=ALL (no special privileges)Detects suspicious patterns:
eval() usage (code injection risk)child_process calls (arbitrary execution)execSync usage (synchronous execution)postinstall scripts (lifecycle hooks)process.env access (environment variables)| Command | Description | Example |
|---|---|---|
gasha install <pkg> | Install package securely | gasha install express |
gasha verify <pkg> | Verify package signature | gasha verify ./pkg.tgz |
gasha audit <pkg> | Security audit package | gasha audit lodash --ai |
gasha sign <path> | Sign a package | gasha sign ./dist --key ./keys/private.pem |
gasha keygen | Generate keypair | gasha keygen --out ./keys --algo ed25519 |
gasha log view | View transparency log | gasha log view |
gasha doctor | Check system readiness | gasha doctor |
gasha explain <pkg> | Analyze package info & security tips | gasha explain express |
Key Generation:
gasha keygen --out ./keys --algo ed25519|rsa
Signing:
gasha sign ./package.tgz --key ./private.pem --log ./gasha-log.json --policy strict
Verification:
gasha verify ./package.tgz --key ./public.pem --verbose
Auditing:
gasha audit express --ai --output json
const { verify, sign, audit, keygen } = require('gasha');
// Generate keypair
await keygen('./keys', 'ed25519');
// Sign a package
const success = await sign('./dist/package.tgz', './keys/private.pem');
// Verify a package
const isValid = await verify('./package.tgz', './keys/public.pem');
// Audit a package
const report = await audit('express', { ai: true });
console.log(`Risk score: ${report.score}/100`);
console.log(`Findings: ${report.findings.length}`);
Secure Package Publishing:
# 1. Generate signing keys
gasha keygen --out ./keys --algo ed25519
# 2. Build your package
npm run build
# 3. Sign the tarball
gasha sign ./dist/my-package-1.0.0.tgz --key ./keys/private.pem
# 4. Publish to npm (with signature)
npm publish ./dist/my-package-1.0.0.tgz
Secure Dependency Management:
# Audit all dependencies
gasha audit express --ai
gasha audit lodash --ai
gasha audit react --ai
# Install only verified packages
gasha install express
gasha install lodash
Supply Chain Monitoring:
# Check package integrity
gasha verify ./suspicious-package.tgz --key ./trusted-keys/public.pem
# Audit for malicious patterns
gasha audit ./package --ai --output json > security-report.json
# View signing history
gasha log view
Secure CI/CD Pipeline:
name: Secure Package Publishing
on:
release:
types: [published]
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install Gasha
run: npm install -g gasha
- name: Generate Keys
run: gasha keygen --out ./keys --algo ed25519
- name: Build Package
run: npm run build
- name: Sign Package
run: gasha sign ./dist/package.tgz --key ./keys/private.pem
- name: Publish to npm
run: npm publish ./dist/package.tgz
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
We welcome contributions! Here's how to get started:
git clone https://github.com/kilopal/gasha.gitnpm installpip install cryptographylib/ directorynpm test# Clone and setup
git clone https://github.com/kilopal/gasha.git
cd gasha
npm install
pip install cryptography
# Run tests
npm test
# Test CLI
node bin/gasha.js test-run
MIT © 2025 Mockilo Labs
Gasha - Making the npm ecosystem safer, one package at a time. 🛡️
FAQs
Gasha - Defense-first Package Manager with cryptographic signing, sandboxing, and AI-powered auditing
We found that @kilopal/gasha demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.

Security News
TeamPCP is partnering with ransomware group Vect to turn open source supply chain attacks on tools like Trivy and LiteLLM into large-scale ransomware operations.