| Title | Node.js @publint/pack 0.1.4 OS Command Injection |
|---|
| Description | @publint/pack constructs package-manager commands as shell strings and executes them with child_process.exec().
The documented destination option is interpolated directly into the shell command. Because the command is executed by a shell, command substitution in the destination path is evaluated.
Tested version:
@publint/pack 0.1.4
Public API used:
import { pack } from '@publint/pack'
Relevant code path:
// src/node/pack.js
let command = `${packageManager} pack`
// ...
command += ` --pack-destination \"${packDestination}\"`
const output = await util.promisify(cp.exec)(command, { cwd: dir }) |
|---|
| Source | ⚠️ https://github.com/publint/publint/issues/236 |
|---|
| User | wjm2 (UID 99050) |
|---|
| Submission | 06/16/2026 20:18 (1 month ago) |
|---|
| Moderation | 07/22/2026 18:08 (1 month later) |
|---|
| Status | Accepted |
|---|
| VulDB entry | 382381 [publint up to 0.1.4 package-manager Command src/node/pack.js child_process.exec os command injection] |
|---|
| Points | 20 |
|---|