@mandujs/core
Supply chain provenance
Status for the latest visible version.
Without SLSA provenance there is no cryptographic link between this tarball and the public source — the axios compromise (March 2026) relied on exactly this gap.
Maintainers
Keywords
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| source-diff | obfuscated-file:src/client/spa-nav-helper.ts | AI (source-diff): File is a documented, commented TypeScript SPA helper with intentionally minified inline JS — not obfuscated malware. | ai | |
| source-diff | net-exec-file:src/desktop/webview-fallback.ts | AI (source-diff): Documented bun:ffi fallback for webview-bun peer; legitimate FFI binding, not malware. | ai | |
| source-diff | net-exec-file:src/desktop/__tests__/worker.test.ts | AI (source-diff): Test file with mock emitters; no real network calls or dynamic exec — false positive for this package. | ai | |
| source-diff | net-exec-file:src/desktop/types.ts | AI (source-diff): Pure TypeScript type definitions; no network or exec code present. | ai | |
| source-diff | net-exec-file:src/desktop/window.ts | AI (source-diff): Lazy optional-peer FFI loader for webview-bun; legitimate desktop integration pattern. | ai | |
| source-diff | net-exec-file:src/desktop/worker.ts | AI (source-diff): Worker entry for Bun Webview; documented pattern, no malicious exec. | ai | |
| typosquat | typosquat.levenshtein:cors | AI (typosquat): @mandujs/core is a scoped framework package; 'core' vs 'cors' is coincidental, not impersonation. | ai | |
| semgrep | semgrep:dynamic-require | AI (semgrep): Loads user-specified middleware by path; documented plugin/middleware loader pattern. | ai | |
| semgrep | semgrep:etc-passwd-access | AI (semgrep): Fires in a test file asserting that path traversal to /etc/passwd is rejected — not credential harvesting. | ai | |
| semgrep | semgrep:silent-process-exec | AI (semgrep): Spawns a log-tailing viewer process in watcher.ts; documented dev-tool behavior, not a reverse shell. | ai | |
| semgrep | semgrep:silent-process-exec-var | AI (semgrep): Same watcher.ts log-tail spawn; same rationale as silent-process-exec. | ai | |
| semgrep | semgrep:shady-links-raw-ip | AI (semgrep): 127.0.0.1 is a localhost OAuth redirect URI — standard loopback pattern, not exfiltration. | ai | |
| semgrep | semgrep:env-bulk-read | AI (semgrep): Reads process.env to pass environment to child build process; standard build-tool pattern. | ai |
Versions (showing 51 of 101)
| Version | Deps | Published |
|---|---|---|
| 0.54.2 | 5 / 1 | |
| 0.54.1 | 5 / 1 | |
| 0.54.0 | 5 / 1 | |
| 0.53.1 | 5 / 1 | |
| 0.53.0 | 5 / 1 | |
| 0.34.1 | 6 / 1 | |
| 0.33.1 | 6 / 1 | |
| 0.29.1 | 6 / 1 | |
| 0.28.0 | 6 / 1 | |
| 0.26.0 | 6 / 1 | |
| 0.23.0 | 6 / 1 | |
| 0.22.1 | 6 / 1 | |
| 0.21.0 | 6 / 1 | |
| 0.20.10 | 6 / 1 | |
| 0.20.9 | 6 / 1 | |
| 0.20.8 | 6 / 1 | |
| 0.20.7 | 6 / 1 | |
| 0.20.6 | 6 / 1 | |
| 0.20.5 | 6 / 1 | |
| 0.20.4 | 6 / 1 | |
| 0.20.3 | 6 / 1 | |
| 0.20.2 | 6 / 1 | |
| 0.20.1 | 6 / 1 | |
| 0.20.0 | 6 / 1 | |
| 0.19.2 | 6 / 1 | |
| 0.12.0 | 5 / 1 | |
| 0.11.0 | 4 / 1 | |
| 0.10.0 | 4 / 1 | |
| 0.9.46 | 4 / 1 | |
| 0.9.45 | 4 / 1 | |
| 0.9.44 | 4 / 1 | |
| 0.9.43 | 4 / 1 | |
| 0.9.42 | 4 / 1 | |
| 0.9.41 | 4 / 1 | |
| 0.9.40 | 4 / 1 | |
| 0.9.39 | 4 / 1 | |
| 0.9.38 | 4 / 1 | |
| 0.9.37 | 4 / 1 | |
| 0.9.31 | 2 / 1 | |
| 0.9.30 | 2 / 1 | |
| 0.9.29 | 2 / 1 | |
| 0.9.28 | 2 / 1 | |
| 0.9.27 | 2 / 1 | |
| 0.9.26 | 2 / 1 | |
| 0.9.25 | 2 / 1 | |
| 0.9.24 | 2 / 1 | |
| 0.9.23 | 2 / 1 | |
| 0.9.22 | 2 / 1 | |
| 0.9.21 | 2 / 1 | |
| 0.9.20 | 2 / 1 | |
| 0.9.19 | 2 / 1 |
v0.54.2
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.54.1
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.54.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.53.1
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.53.0
12 findingsPackage name '@mandujs/core' is 1 edit(s) away from popular package 'cors'.
Accessing /etc/passwd or /etc/shadow — credential harvesting on Linux 176 | }); 177 | > 178 | test("[SLOT2] path traversal slotModule (`../../etc/passwd`) is rejected with warning", async () => { 179 | const warnings: string[] = []; 180 | const origWarn = console.warn;
Accessing /etc/passwd or /etc/shadow — credential harvesting on Linux 190 | module: "app/page.tsx", 191 | componentModule: "app/page.tsx", > 192 | slotModule: "../../../etc/passwd", 193 | }, 194 | ],
Accessing /etc/passwd or /etc/shadow — credential harvesting on Linux 217 | module: "app/page.tsx", 218 | componentModule: "app/page.tsx", > 219 | slotModule: "/etc/passwd", 220 | }, 221 | ],
Accessing /etc/passwd or /etc/shadow — credential harvesting on Linux 494 | // 495 | // Before 7.2 the code trusted `route.slotModule` verbatim and a > 496 | // tampered manifest with `slotModule: "../../../etc/passwd"` would 497 | // pollute `watchDirs` with directories outside the project root. 498 | // Downstream code (`bundledImport`, `registerHandlers`) already
Silent detached process — runs invisibly in the background (reverse shells, miners) 278 | if (process.platform === "win32") { 279 | // Windows: open new cmd window with PowerShell Get-Content -Wait > 280 | this.tailProcess = spawn("cmd", [ 281 | "/c", "start", 282 | "Mandu Watch",
Silent detached process — runs invisibly in the background (reverse shells, miners) 278 | if (process.platform === "win32") { 279 | // Windows: open new cmd window with PowerShell Get-Content -Wait > 280 | this.tailProcess = spawn("cmd", [ 281 | "/c", "start", 282 | "Mandu Watch",
Silent detached process — runs invisibly in the background (reverse shells, miners) 286 | } else if (process.platform === "darwin") { 287 | // macOS: open new Terminal.app tab > 288 | this.tailProcess = spawn("osascript", [ 289 | "-e", `tell application "Terminal" to do script "tail -f '${logFile}'"`, 290 | ], { detached: true, stdio: "ignore" });
Silent detached process — runs invisibly in the background (reverse shells, miners) 286 | } else if (process.platform === "darwin") { 287 | // macOS: open new Terminal.app tab > 288 | this.tailProcess = spawn("osascript", [ 289 | "-e", `tell application "Terminal" to do script "tail -f '${logFile}'"`, 290 | ], { detached: true, stdio: "ignore" });
Silent detached process — runs invisibly in the background (reverse shells, miners) 291 | } else { 292 | // Linux: try common terminal emulators > 293 | this.tailProcess = spawn("x-terminal-emulator", [ 294 | "-e", `tail -f '${logFile}'`, 295 | ], { cwd, detached: true, stdio: "ignore" });
Silent detached process — runs invisibly in the background (reverse shells, miners) 291 | } else { 292 | // Linux: try common terminal emulators > 293 | this.tailProcess = spawn("x-terminal-emulator", [ 294 | "-e", `tail -f '${logFile}'`, 295 | ], { cwd, detached: true, stdio: "ignore" });
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.34.1
3 findingsThis version has no gitHead field linking it to a source commit, but previous versions did. This suggests the publish environment changed. Published by: oddeye.
Newly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.33.1
3 findingsThis version has no gitHead field linking it to a source commit, but previous versions did. This suggests the publish environment changed. Published by: oddeye.
Newly added source file contains lines over 3000 chars, suggesting minified or obfuscated code. New obfuscated files are a strong attack indicator.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.29.1
2 findingsThis version has no gitHead field linking it to a source commit, but previous versions did. This suggests the publish environment changed. Published by: oddeye.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.28.0
2 findingsThis version has no gitHead field linking it to a source commit, but previous versions did. This suggests the publish environment changed. Published by: oddeye.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.26.0
2 findingsThis version has no gitHead field linking it to a source commit, but previous versions did. This suggests the publish environment changed. Published by: oddeye.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.23.0
7 findingsThis version has no gitHead field linking it to a source commit, but previous versions did. This suggests the publish environment changed. Published by: oddeye.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.22.1
6 findingsThis version has no gitHead field linking it to a source commit, but previous versions did. This suggests the publish environment changed. Published by: oddeye.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Newly added file contains both network calls and dynamic code execution. This is a hallmark of dropper/loader malware.
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.21.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.20.10
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.20.9
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.20.8
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.20.7
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.20.6
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.20.5
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.20.4
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.20.3
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.20.2
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.20.1
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.20.0
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.19.2
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.12.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.11.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.10.0
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.46
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.45
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.44
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.43
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.42
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.41
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.40
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.39
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.38
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.37
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.31
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.30
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.29
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.28
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.27
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.26
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.25
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.24
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.23
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.22
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.21
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.20
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.9.19
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.