471 lines
14 KiB
Markdown
471 lines
14 KiB
Markdown
# Dependency Vulnerability Security Report
|
|
**Date:** 2025-10-31
|
|
**Repository:** /workspaces/midstream
|
|
**Scan Type:** Comprehensive npm audit across all packages
|
|
|
|
---
|
|
|
|
## Executive Summary
|
|
|
|
This report identifies critical and high-severity vulnerabilities across the Midstream repository. **7 packages were scanned**, with **14 total vulnerabilities** found affecting key dependencies.
|
|
|
|
### Severity Breakdown
|
|
- **Critical:** 0
|
|
- **High:** 3 vulnerabilities (axios in npm-wasm)
|
|
- **Moderate:** 5 vulnerabilities (esbuild/vite/vitest chain, webpack-dev-server)
|
|
- **Low:** 5 vulnerabilities (inquirer/tmp chain)
|
|
- **Info:** 0
|
|
|
|
### Package Audit Status
|
|
| Package | Has Lockfile | Audit Result | Vulnerabilities |
|
|
|---------|--------------|--------------|-----------------|
|
|
| **midstream-cli** (npm/) | ❌ NO | ⚠️ Cannot audit | N/A |
|
|
| **aimds-gateway** (AIMDS/) | ✅ YES | 🟡 Moderate | 4 moderate |
|
|
| **@midstream/lean-agentic** | ❌ NO | ⚠️ Cannot audit | N/A |
|
|
| **@midstream/wasm** (npm-wasm/) | ✅ YES | 🔴 High | 3 high, 1 moderate |
|
|
| **psycho-symbolic-wtf** | ❌ NO | ⚠️ Cannot audit | N/A |
|
|
| **lean-agentic-wasm-demo** (wasm/www) | ❌ NO | ⚠️ Cannot audit | N/A |
|
|
| **aidefense** | ❌ NO | ⚠️ Cannot audit | N/A |
|
|
| **npm-aimds** | ✅ YES | 🟢 Low | 5 low |
|
|
|
|
---
|
|
|
|
## 🔴 CRITICAL ISSUES (Immediate Action Required)
|
|
|
|
### 1. Missing Package Lockfiles
|
|
**Severity:** CRITICAL
|
|
**Impact:** Cannot perform security audits, inconsistent dependency versions across environments
|
|
|
|
**Affected Packages:**
|
|
- `/workspaces/midstream/npm/package.json` (midstream-cli)
|
|
- `/workspaces/midstream/lean-agentic-js/package.json` (@midstream/lean-agentic)
|
|
- `/workspaces/midstream/psycho-symbolic-wtf/package.json`
|
|
- `/workspaces/midstream/wasm/www/package.json`
|
|
- `/workspaces/midstream/aidefense/package.json`
|
|
|
|
**Recommended Action:**
|
|
```bash
|
|
# Generate lockfiles for all packages
|
|
cd /workspaces/midstream/npm && npm install --package-lock-only
|
|
cd /workspaces/midstream/lean-agentic-js && npm install --package-lock-only
|
|
cd /workspaces/midstream/psycho-symbolic-wtf && npm install --package-lock-only
|
|
cd /workspaces/midstream/wasm/www && npm install --package-lock-only
|
|
cd /workspaces/midstream/aidefense && npm install --package-lock-only
|
|
```
|
|
|
|
---
|
|
|
|
## 🔴 HIGH SEVERITY VULNERABILITIES
|
|
|
|
### 1. Axios Multiple Vulnerabilities (npm-wasm package)
|
|
**Package:** `axios`
|
|
**Versions Affected:** ≤0.30.1
|
|
**Current Version:** Unknown (via wasm-pack dependency chain)
|
|
**Latest Safe Version:** 1.13.1
|
|
**Severity:** HIGH
|
|
|
|
**CVEs:**
|
|
1. **GHSA-wf5p-g6vw-rhxx**: Cross-Site Request Forgery (CSRF)
|
|
- CVSS: 6.5 (MEDIUM-HIGH)
|
|
- CWE-352: Cross-Site Request Forgery
|
|
|
|
2. **GHSA-jr5f-v2jv-69x6**: SSRF and Credential Leakage via Absolute URL
|
|
- CVSS: Not scored
|
|
- CWE-918: Server-Side Request Forgery
|
|
|
|
3. **GHSA-4hjh-wcwx-xvwj**: DoS Attack through Lack of Data Size Check
|
|
- CVSS: 7.5 (HIGH)
|
|
- CWE-770: Allocation of Resources Without Limits
|
|
|
|
**Dependency Chain:**
|
|
```
|
|
wasm-pack@0.0.0 → binary-install@* → axios@≤0.30.1
|
|
```
|
|
|
|
**Impact:**
|
|
- Potential data exfiltration via SSRF
|
|
- Application denial of service
|
|
- CSRF attacks on API endpoints
|
|
- Credential leakage through malicious redirects
|
|
|
|
**Recommended Action:**
|
|
```bash
|
|
# Update wasm-pack (will require manual intervention as it's a breaking change)
|
|
cd /workspaces/midstream/npm-wasm
|
|
npm update wasm-pack@latest
|
|
# OR use npm audit fix --force (breaking change)
|
|
```
|
|
|
|
**Note:** The current `wasm-pack` version shows as 0.0.0, indicating a possible installation issue. Latest stable version is 0.13.1.
|
|
|
|
---
|
|
|
|
## 🟡 MODERATE SEVERITY VULNERABILITIES
|
|
|
|
### 1. esbuild/vite/vitest Vulnerability Chain (AIMDS package)
|
|
**Package:** `esbuild`
|
|
**Versions Affected:** ≤0.24.2
|
|
**Current Version:** Indirect via vite@1.6.1
|
|
**Latest Safe Version:** vite@4.0.5, esbuild@0.24.3+
|
|
**Severity:** MODERATE
|
|
|
|
**CVE:**
|
|
- **GHSA-67mh-4wv8-2f99**: Development server allows unauthorized request forwarding
|
|
- CVSS: 5.3 (MEDIUM)
|
|
- CWE-346: Origin Validation Error
|
|
|
|
**Dependency Chain:**
|
|
```
|
|
vitest@1.6.1 → vite-node@1.x → vite@1.6.1 → esbuild@≤0.24.2
|
|
```
|
|
|
|
**Impact:**
|
|
- Development server source code exposure
|
|
- Unauthorized access to local development resources
|
|
- Information disclosure during development
|
|
|
|
**Recommended Action:**
|
|
```bash
|
|
cd /workspaces/midstream/AIMDS
|
|
npm install vitest@latest --save-dev
|
|
# This is a major version upgrade (1.6.1 → 4.0.5)
|
|
# Review breaking changes before upgrading
|
|
```
|
|
|
|
**Alternatives:**
|
|
- Upgrade to vitest@4.0.5 (BREAKING CHANGE)
|
|
- Ensure development servers are not exposed publicly
|
|
- Use firewall rules to restrict dev server access
|
|
|
|
---
|
|
|
|
### 2. webpack-dev-server Source Code Theft (npm-wasm package)
|
|
**Package:** `webpack-dev-server`
|
|
**Versions Affected:** ≤5.2.0
|
|
**Current Version:** 5.2.2 (SAFE - but package.json specifies ^4.15.1)
|
|
**Severity:** MODERATE
|
|
|
|
**CVEs:**
|
|
1. **GHSA-9jgg-88mc-972h**: Source code theft via malicious website (non-Chromium browsers)
|
|
- CVSS: 6.5 (MEDIUM)
|
|
- CWE-346: Origin Validation Error
|
|
|
|
2. **GHSA-4v9v-hfq4-rm2v**: Source code theft via malicious website
|
|
- CVSS: 5.3 (MEDIUM)
|
|
- CWE-749: Exposed Dangerous Method
|
|
|
|
**Impact:**
|
|
- Source code exfiltration when developers visit malicious websites
|
|
- Intellectual property theft
|
|
- Exposure of secrets/credentials in source code
|
|
|
|
**Recommended Action:**
|
|
```bash
|
|
cd /workspaces/midstream/npm-wasm
|
|
# Update package.json to require safe version
|
|
npm install webpack-dev-server@^5.2.2 --save-dev
|
|
```
|
|
|
|
**Package.json Fix:**
|
|
```json
|
|
{
|
|
"devDependencies": {
|
|
"webpack-dev-server": "^5.2.2" // Update from ^4.15.1
|
|
}
|
|
}
|
|
```
|
|
|
|
**Status:** ✅ Already fixed in package-lock.json (5.2.2 installed), but package.json needs update
|
|
|
|
---
|
|
|
|
## 🟢 LOW SEVERITY VULNERABILITIES
|
|
|
|
### 1. tmp/inquirer Chain (npm-aimds package)
|
|
**Package:** `tmp`
|
|
**Versions Affected:** ≤0.2.3
|
|
**Severity:** LOW
|
|
|
|
**CVE:**
|
|
- **GHSA-52f5-9888-hmc6**: Symbolic link write vulnerability
|
|
- CVSS: 2.5 (LOW)
|
|
- CWE-59: Improper Link Resolution
|
|
|
|
**Dependency Chain:**
|
|
```
|
|
inquirer@11.1.0 → @inquirer/prompts → @inquirer/editor → external-editor → tmp@≤0.2.3
|
|
```
|
|
|
|
**Impact:**
|
|
- Low-risk arbitrary file write via symlinks
|
|
- Requires local access and specific conditions
|
|
|
|
**Recommended Action:**
|
|
```bash
|
|
cd /workspaces/midstream/npm-aimds
|
|
npm install inquirer@latest
|
|
# Upgrade from 11.1.0 to 12.10.0 (BREAKING CHANGE)
|
|
```
|
|
|
|
---
|
|
|
|
## 📊 Outdated Packages Analysis
|
|
|
|
### AIMDS Package Outdated Dependencies
|
|
| Package | Current | Wanted | Latest | Gap | Priority |
|
|
|---------|---------|--------|--------|-----|----------|
|
|
| vitest | 1.6.1 | 1.6.1 | 4.0.5 | Major | 🔴 HIGH |
|
|
| zod | 3.25.76 | 3.25.76 | 4.1.12 | Major | 🟡 MEDIUM |
|
|
| express | 4.21.2 | 4.21.2 | 5.1.0 | Major | 🟡 MEDIUM |
|
|
| @typescript-eslint/* | 6.21.0 | 6.21.0 | 8.46.2 | Major | 🟢 LOW |
|
|
| eslint | 8.57.1 | 8.57.1 | 9.38.0 | Major | 🟢 LOW |
|
|
| helmet | 7.2.0 | 7.2.0 | 8.1.0 | Major | 🟡 MEDIUM |
|
|
| dotenv | 16.6.1 | 16.6.1 | 17.2.3 | Major | 🟢 LOW |
|
|
| @types/node | 20.19.23 | 20.19.24 | 24.9.2 | Major | 🟢 LOW |
|
|
|
|
### npm-wasm Package Outdated Dependencies
|
|
| Package | Current | Wanted | Latest | Gap | Priority |
|
|
|---------|---------|--------|--------|-----|----------|
|
|
| wasm-pack | 0.0.0 | 0.12.1 | 0.13.1 | Major | 🔴 HIGH |
|
|
| webpack-cli | 5.1.4 | 5.1.4 | 6.0.1 | Major | 🟡 MEDIUM |
|
|
| copy-webpack-plugin | 11.0.0 | 11.0.0 | 13.0.1 | Major | 🟢 LOW |
|
|
|
|
---
|
|
|
|
## 🎯 Vulnerable Dependencies in package.json Files
|
|
|
|
### Critical Runtime Dependencies
|
|
| Package | Location | Specified Version | Latest Safe | Status |
|
|
|---------|----------|-------------------|-------------|--------|
|
|
| **axios** | npm/package.json | ^1.6.5 | 1.13.1 | ⚠️ OUTDATED |
|
|
| **axios** | lean-agentic-js/package.json | ^1.6.0 | 1.13.1 | ⚠️ OUTDATED |
|
|
| **ws** | npm/package.json | ^8.16.0 | 8.18.3 | ⚠️ OUTDATED |
|
|
| **ws** | lean-agentic-js/package.json | ^8.16.0 | 8.18.3 | ⚠️ OUTDATED |
|
|
| **express** | AIMDS/package.json | ^4.18.2 | 5.1.0 | ⚠️ MAJOR UPDATE |
|
|
|
|
**Note:** While axios ^1.6.5 and ^1.6.0 should be safe (vulnerabilities are in ≤0.30.1), it's recommended to update to the latest version for additional security patches and features.
|
|
|
|
---
|
|
|
|
## 🛠️ Recommended Remediation Steps
|
|
|
|
### Phase 1: Critical Actions (Immediate)
|
|
|
|
1. **Generate Missing Lockfiles**
|
|
```bash
|
|
cd /workspaces/midstream/npm && npm install --package-lock-only
|
|
cd /workspaces/midstream/lean-agentic-js && npm install --package-lock-only
|
|
cd /workspaces/midstream/psycho-symbolic-wtf && npm install --package-lock-only
|
|
cd /workspaces/midstream/wasm/www && npm install --package-lock-only
|
|
cd /workspaces/midstream/aidefense && npm install --package-lock-only
|
|
```
|
|
|
|
2. **Fix High-Severity axios Issue (npm-wasm)**
|
|
```bash
|
|
cd /workspaces/midstream/npm-wasm
|
|
# Investigate wasm-pack 0.0.0 issue
|
|
npm uninstall wasm-pack
|
|
npm install wasm-pack@^0.13.1 --save-dev
|
|
```
|
|
|
|
3. **Update webpack-dev-server package.json (npm-wasm)**
|
|
```bash
|
|
cd /workspaces/midstream/npm-wasm
|
|
npm install webpack-dev-server@^5.2.2 --save-dev
|
|
```
|
|
|
|
### Phase 2: Moderate Risk Mitigation (Within 1 Week)
|
|
|
|
1. **Update vitest Chain (AIMDS)**
|
|
```bash
|
|
cd /workspaces/midstream/AIMDS
|
|
# Review breaking changes first
|
|
npm install vitest@^4.0.5 --save-dev
|
|
npm test # Verify tests still pass
|
|
```
|
|
|
|
2. **Update axios to Latest (npm & lean-agentic-js)**
|
|
```bash
|
|
cd /workspaces/midstream/npm
|
|
npm install axios@^1.13.1
|
|
|
|
cd /workspaces/midstream/lean-agentic-js
|
|
npm install axios@^1.13.1
|
|
```
|
|
|
|
3. **Update ws to Latest**
|
|
```bash
|
|
cd /workspaces/midstream/npm
|
|
npm install ws@^8.18.3
|
|
|
|
cd /workspaces/midstream/lean-agentic-js
|
|
npm install ws@^8.18.3
|
|
```
|
|
|
|
### Phase 3: Low Priority Updates (Within 1 Month)
|
|
|
|
1. **Update inquirer Chain (npm-aimds)**
|
|
```bash
|
|
cd /workspaces/midstream/npm-aimds
|
|
npm install inquirer@^12.10.0
|
|
```
|
|
|
|
2. **Update Development Dependencies**
|
|
```bash
|
|
# AIMDS
|
|
cd /workspaces/midstream/AIMDS
|
|
npm install --save-dev @typescript-eslint/eslint-plugin@^8.46.2
|
|
npm install --save-dev @typescript-eslint/parser@^8.46.2
|
|
npm install --save-dev eslint@^9.38.0
|
|
```
|
|
|
|
3. **Consider Major Version Updates**
|
|
- Review breaking changes for: express 5.x, zod 4.x, helmet 8.x
|
|
- Update in testing environment first
|
|
- Update package.json and test thoroughly
|
|
|
|
### Phase 4: Continuous Security (Ongoing)
|
|
|
|
1. **Implement Automated Security Scanning**
|
|
```bash
|
|
# Add to CI/CD pipeline
|
|
npm audit --audit-level=moderate
|
|
```
|
|
|
|
2. **Add Dependabot or Renovate**
|
|
- Automated dependency updates
|
|
- PR-based security updates
|
|
- Configuration for this repo
|
|
|
|
3. **Regular Audit Schedule**
|
|
```bash
|
|
# Weekly security check
|
|
for dir in npm AIMDS lean-agentic-js npm-wasm npm-aimds psycho-symbolic-wtf; do
|
|
echo "=== Auditing $dir ==="
|
|
cd $dir && npm audit || true
|
|
cd ..
|
|
done
|
|
```
|
|
|
|
---
|
|
|
|
## 🔍 Additional Security Concerns
|
|
|
|
### 1. Abandoned/Unmaintained Packages
|
|
**Status:** No critical abandonware detected
|
|
**Note:** All major dependencies are actively maintained
|
|
|
|
### 2. Known CVE Database Check
|
|
| Package | Known CVEs | Status |
|
|
|---------|-----------|--------|
|
|
| axios ≤0.30.1 | CVE-2023-45857, CVE-2024-39338 | Fixed in 1.x |
|
|
| express <4.18.2 | CVE-2022-24999 | Fixed in 4.21.2 |
|
|
| ws <8.17.1 | CVE-2024-37890 | Update recommended |
|
|
|
|
### 3. Transitive Dependency Risks
|
|
- **esbuild** vulnerability affects vitest through vite
|
|
- **axios** vulnerability affects wasm-pack through binary-install
|
|
- **tmp** vulnerability affects inquirer through multiple layers
|
|
|
|
---
|
|
|
|
## 📈 Security Metrics
|
|
|
|
### Current Repository Security Score: 6.2/10
|
|
|
|
**Breakdown:**
|
|
- Missing lockfiles: -2.0 points
|
|
- High vulnerabilities: -1.0 points
|
|
- Moderate vulnerabilities: -0.5 points
|
|
- Outdated major dependencies: -0.3 points
|
|
|
|
### Target Security Score: 9.5/10
|
|
|
|
**After Remediation:**
|
|
- All lockfiles present: +2.0 points
|
|
- All high/critical issues resolved: +1.0 points
|
|
- Updated to safe versions: +0.5 points
|
|
- Automated scanning: +0.3 points
|
|
|
|
---
|
|
|
|
## 🤝 Best Practices Recommendations
|
|
|
|
1. **Package Lock Enforcement**
|
|
- Commit all package-lock.json files
|
|
- Enable `package-lock` validation in CI/CD
|
|
- Use `npm ci` instead of `npm install` in production
|
|
|
|
2. **Dependency Management Policy**
|
|
- Review dependencies quarterly
|
|
- Test major updates in staging first
|
|
- Document breaking changes
|
|
- Pin critical production dependencies
|
|
|
|
3. **Security Automation**
|
|
```yaml
|
|
# .github/dependabot.yml
|
|
version: 2
|
|
updates:
|
|
- package-ecosystem: "npm"
|
|
directory: "/"
|
|
schedule:
|
|
interval: "weekly"
|
|
open-pull-requests-limit: 10
|
|
```
|
|
|
|
4. **Development Environment Security**
|
|
- Never expose webpack-dev-server publicly
|
|
- Use VPN or SSH tunnels for remote development
|
|
- Implement CSP headers even in development
|
|
- Rotate credentials regularly
|
|
|
|
5. **Monitoring & Alerting**
|
|
- Set up GitHub Security Advisories
|
|
- Enable npm audit in pre-commit hooks
|
|
- Subscribe to security mailing lists
|
|
- Monitor CVE databases
|
|
|
|
---
|
|
|
|
## 📝 Action Items Summary
|
|
|
|
### Immediate (Today)
|
|
- [ ] Generate lockfiles for all 5 packages without them
|
|
- [ ] Fix wasm-pack@0.0.0 installation issue in npm-wasm
|
|
- [ ] Update webpack-dev-server package.json version requirement
|
|
- [ ] Commit all lockfiles to git
|
|
|
|
### This Week
|
|
- [ ] Update axios to 1.13.1 in npm and lean-agentic-js
|
|
- [ ] Update ws to 8.18.3 in npm and lean-agentic-js
|
|
- [ ] Upgrade vitest to 4.0.5 in AIMDS (test thoroughly)
|
|
- [ ] Run full audit on all packages
|
|
|
|
### This Month
|
|
- [ ] Update inquirer to 12.10.0 in npm-aimds
|
|
- [ ] Review and plan major version updates (express, zod, helmet)
|
|
- [ ] Implement automated security scanning in CI/CD
|
|
- [ ] Set up Dependabot or Renovate
|
|
|
|
### Ongoing
|
|
- [ ] Weekly npm audit runs
|
|
- [ ] Quarterly dependency reviews
|
|
- [ ] Monitor security advisories
|
|
- [ ] Document security policies
|
|
|
|
---
|
|
|
|
## 📞 Support & Resources
|
|
|
|
- **npm Security Best Practices:** https://docs.npmjs.com/security-best-practices
|
|
- **GitHub Security Advisories:** https://github.com/advisories
|
|
- **CVE Database:** https://cve.mitre.org/
|
|
- **Node.js Security WG:** https://github.com/nodejs/security-wg
|
|
|
|
---
|
|
|
|
**Report Generated:** 2025-10-31
|
|
**Next Review:** 2025-11-07 (Weekly)
|
|
**Methodology:** npm audit + manual package analysis + CVE cross-reference
|