compact-yarn-audit

Presents output from yarn audit in a compact table

Usage no npm install needed!

<script type="module">
  import compactYarnAudit from 'https://cdn.skypack.dev/compact-yarn-audit';
</script>

README

GitHub Workflow Status Known Vulnerabilities npm stable version MIT licensed

What's this?

It presents yarn audit output in a compact table, ordered by severity.

Usage

yarn audit --json | npx compact-yarn-audit

Note: yarn's audit output can be quite large (gigabytes for a sizeable monorepo that hasn't had updates for a while), so it can take some time to process all that data.

Sample output

severity  title                      module            via             "resolutions" string
critical  Command Injection          destructomatic    vertex-cli      no fix available
critical  Remote code execution whe  steering-wheel    beach-cruiser   "steering-wheel": ">=4.7.7"
critical  Prototype Pollution        steering-wheel    beach-cruiser   "steering-wheel": ">=4.1.2"
high      Regular Expression Denial  oedipus-regex     vertexql-types  no fix available
high      Command Injection          snowdash          beach-cruiser   "snowdash": ">=4.17.21"
high      Prototype Pollution        snowdash          beach-cruiser   "snowdash": ">=4.17.12"
high      Prototype Pollution        snowdash          beach-cruiser   "snowdash": ">=4.17.11"
high      Command Injection          snowdash          .               "snowdash": ">=4.17.21"
high      Prototype Pollution        snowdash          .               "snowdash": ">=4.17.12"
high      Prototype Pollution        snowdash          .               "snowdash": ">=4.17.11"
high      Prototype Pollution        steering-wheel    beach-cruiser   "steering-wheel": ">=4.5.3"
high      Arbitrary Code Execution   steering-wheel    beach-cruiser   "steering-wheel": ">=4.5.3"
high      Arbitrary Code Execution   steering-wheel    beach-cruiser   "steering-wheel": ">=4.5.2"
high      Prototype Pollution        steering-wheel    beach-cruiser   "steering-wheel": ">=4.3.0"
moderate  Information Exposure       mars-server-core  mars-server     "mars-server-core": ">=2.14.2"
moderate  Regular Expression Denial  chestnut          beach-cruiser   "chestnut": ">=7.1.1"
moderate  Denial of Service          steering-wheel    beach-cruiser   "steering-wheel": ">=4.4.5"
low       Prototype Pollution        minifog           beach-cruiser   "minifog": "<1.0.0 || >=1.2.3"
low       Prototype Pollution        snowdash          beach-cruiser   "snowdash": ">=4.17.19"
low       Prototype Pollution        snowdash          .               "snowdash": ">=4.17.19"
low       Prototype Pollution        snowdash          .               "snowdash": ">=4.17.5"

Why?

The default output of yarn's audit is verbose (just like npm's audit is). When there's more than 3 vulnerabilities it doesn't fit on a screen anymore. It also contains information I'm not interested in when I want to know what to fix and with what urgency:

  • What is the module I used to import it (via column)?
  • If that's not possible what should I put in the "resolutions" string?
  • Can it be fixed at all?
  • How severe is the vulnerability (severity, title)? Preferably with the most severe ones on top.

This module attempts to fix that by leaving out all information not essential to my use case.