Back to skill

Security audit

Postman

Security checks for vulnerabilities and agentic risk

Overview

This Postman skill is mostly purpose-aligned, but it hides setup behavior, persists API workflow details without clear consent, and recommends unpinned npm execution.

Review this skill before installing. It can be useful for API testing, but do not let it silently store API project or auth-pattern details unless you are comfortable with that persistence. Prefer pinned, project-local npm dependencies over the documented global installs or npx command, and avoid putting real tokens directly in command-line arguments or committed environment files.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:187
Finding

Unpinned npm Packages Are Downloaded and Executed

Content
View full analysis

Vulnerability Details

File Locations:

  • SKILL.md:187-190
  • setup.md:44-50
  • newman.md:4-6
  • newman.md:74-75
  • newman.md:86-90
  • newman.md:94-98

Vulnerability Type: Unpinned third-party package installation and execution
Risk Level: Medium

Vulnerable Code

SKILL.md:187-190:

bash
Or via CLI:
```bash
npx openapi-to-postmanv2 -s openapi.yaml -o collection.json
text

`setup.md:44-50`:

```bash
If they need automated testing, ensure Newman is installed:
```bash
npm install -g newman

For HTML reports:

bash
npm install -g newman-reporter-htmlextra
text

`newman.md:4-6`:

```bash
## Installation

```bash
npm install -g newman
text

`newman.md:74-75`:

```bash
# HTML report (install: npm i -g newman-reporter-htmlextra)
newman run collection.json -r htmlextra --reporter-htmlextra-export report.html

newman.md:86-90:

yaml
### GitHub Actions
```yaml
- name: Run API Tests
  run: |
    npm install -g newman
    newman run collection.json -e ${{ env.ENV }}.json --bail
text

`newman.md:94-98`:

```yaml
### GitLab CI
```yaml
api_tests:
  script:
    - npm install -g newman
    - newman run collection.json -e ci.json --reporters cli,junit --reporter-junit-export results.xml
text

### Technical Analysis

The documented commands retrieve mutable package versions from the npm registry without pinning an audited version or verifying package integrity. In particular, `npx openapi-to-postmanv2` can download and immediately execute the currently resolved package. The global installation commands similarly install the latest resolved Newman or reporter package and may execute npm lifecycle scripts during installation.

Because no lockfile, integrity hash, package provenance check, or approved version is specified, the code ultimately executed can change after this skill has been reviewed. This 
...[truncated 2196 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin every dependency to a reviewed, exact version, for example:

    bash
    npm install --save-dev --save-exact newman@5.3.2
    npm install --save-dev --save-exact newman-reporter-htmlextra@1.23.1
    npm install --save-dev --save-exact openapi-to-postmanv2@5.0.0
    

    Version examples must be replaced with currently supported versions that have been independently reviewed.

  2. Store dependencies in package.json and commit the generated lockfile. In CI, install them using:

    bash
    npm ci --ignore-scripts
    

    If a dependency demonstrably requires lifecycle scripts, review those scripts and permit them only in a controlled installation stage.

  3. Replace ad hoc npx retrieval with the locked project-local executable:

    bash
    ./node_modules/.bin/openapi2postmanv2 -s openapi.yaml -o collection.json
    
  4. Avoid global package installation. Project-local dependencies provide stronger version isolation, reproducibility, and lockfile enforcement.

  5. Verify package provenance, registry source, publisher identity, and lockfile integrity before adoption. Use dependency scanning and npm audit tooling as supplementary controls.

  6. Run package installation and API tests in a minimally privileged, isolated environment. Do not expose unrelated CI secrets to the installation step, restrict outbound network access where practical, and use short-lived API credentials.

  7. Configure automated dependency updates to require review and security checks rather than silently accepting new package versions.

Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
Findings (8)

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

Scanner excerpt · newman.md (reported line 22)May include surrounding context.

newman run collection.json -g globals.json

Multiple environments

newman run collection.json -e dev.json -e secrets.json

text

## Filtering

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The instruction to read setup.md silently directs the agent to consume additional instructions without notifying the user, which can hide behavior changes, tool execution, or prompt injection contained in that file. In a security context, undisclosed retrieval of secondary instruction files reduces transparency and makes malicious or unsafe setup content harder for users to detect or contest.

Content

No source excerpt is available for this finding.

Rp1

Medium
Category
MCP Rug Pull
Confidence
89% confidence
Finding

Using npx openapi-to-postmanv2 without pinning a specific version allows execution of whatever package version is current at runtime. This creates a supply-chain risk: a compromised latest release, typosquat, or breaking update could execute unexpected code on the user's machine when they follow the skill guidance.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation recommends passing sensitive values such as API tokens directly on the command line via --env-var, which can expose secrets through shell history, process listings, CI job logs, and debugging output. In a CI/CD and API testing context, these examples are likely to be copied verbatim, increasing the chance of accidental credential disclosure.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The activation condition is broad and implicit: the setup content should trigger whenever ~/postman/ does not exist, while also instructing the agent to hide that setup behavior from the user. This can cause the skill to run in situations the user did not explicitly request, leading to unsolicited behavior changes and silent state initialization that may affect subsequent interactions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill directs the agent to persist workflow details, API projects, authentication patterns, and environment naming conventions into ~/postman/memory.md without any disclosure or consent flow. This creates a privacy and security risk because it stores potentially sensitive operational metadata locally, including information about environments and auth usage, outside the user's explicit awareness.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

This markdown file includes a DELETE request template that removes an item, but the surrounding documentation provides no warning that the operation may be destructive or irreversible. Under the markdown-specific warning criteria, examples that could affect user data should disclose that impact.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The markdown includes a file upload request template that sends a local file to a remote endpoint, but it does not warn users that file contents may be transmitted externally. For markdown skill descriptions, behaviors affecting user data or privacy should be explicitly disclosed.

Content

No source excerpt is available for this finding.