vlt / docs

  • PricingBenchmarks (opens in new window)Community (opens in new window)Feedback
  • Overview
  • Attribute Selectors
  • Combinators
  • ID Selectors
  • Security Insights
  • Malware & threats
  • :malware
  • :squat / :squat(<type>)
  • :suspicious
  • :confused
  • Vulnerabilities
  • :vulnerable / :vuln
  • :cve(<id>)
  • :cwe(<id>)
  • :severity(<level>)
  • Licensing
  • :license(<type>)
  • Code behavior signals
  • :eval
  • :network
  • :fs
  • :env
  • :shell
  • :scripts
  • :debug
  • :dynamic
  • Obfuscation & hiding
  • :obfuscated
  • :minified
  • :entropic
  • :native
  • :shrinkwrap
  • Package health
  • :deprecated
  • :unmaintained
  • :unpopular
  • :trivial
  • :abandoned
  • :unknown
  • :unstable
  • Other
  • :tracker
  • :undesirable
  • :score(<rate>, <kind>)
  • Common audit queries
  • See also
  1. Client
  2. /
  3. Selectors
  4. /
  5. Security Insights

Security Insights

Security insight selectors rely on data provided by Socket. Using any of these selectors triggers a network call to fetch package report data.

note

Security selectors require fetching data from Socket's API. This adds latency to queries — the data is fetched before the query runs. Keep this in mind for interactive use.

Malware & threats

:malware

Matches packages that contain malware. This is a binary selector — a package either has malware or it doesn't:

Terminal
$ vlt query ':malware'
tip

:malware matches only high-confidence malware alerts (malware and gptMalware). For broader vulnerability detection with configurable severity levels, use :vuln.

:squat / :squat(<type>)

Matches packages with names similar to popular packages (typosquatting).

Terminal
$ vlt query ':squat'

:squat without arguments matches any severity. Filter with:

TypeDescription
critical or 0High-confidence typosquat
medium or 2Possible typosquat
noneNot a typosquat

:suspicious

Matches packages with artificially inflated GitHub stars (bots, crowdsourcing, etc.):

Terminal
$ vlt query ':suspicious'

:confused

Matches packages affected by manifest confusion — the published package.json differs from what's in the tarball:

Terminal
$ vlt query ':confused'

Vulnerabilities

:vulnerable / :vuln

Matches packages with vulnerability or security anomaly alerts with severity >= medium (excludes low-severity alerts by default):

Terminal
$ vlt query ':vulnerable'

The :vuln alias works identically:

Terminal
$ vlt query ':vuln'

:vuln(<level>)

Filter by severity level:

LevelAlert types matched
critical or 0criticalCVE
high or 1cve
medium or 2potentialVulnerability, gptSecurity
low or 3mildCVE, gptAnomaly

Comparators are supported:

Terminal
$ vlt query ':vuln(critical)'
$ vlt query ':vuln(">1")'
$ vlt query ':vuln(">=medium")'

:cve(<id>)

Matches packages with a specific CVE alert:

Terminal
$ vlt query ':cve(CVE-2023-1234)'

Match packages with any CVE:

Terminal
$ vlt query ':cve'

:cwe(<id>)

Matches packages with a specific CWE alert:

Terminal
$ vlt query ':cwe(CWE-79)'

:severity(<level>)

Matches packages by CVE severity level:

LevelDescription
critical or 0Critical severity CVEs
high or 1High severity CVEs
medium or 2Medium severity CVEs
low or 3Low severity CVEs

Comparators are supported:

Terminal
$ vlt query ':severity(critical)'
$ vlt query ':severity(">1")'
$ vlt query ':severity(">=medium")'

Licensing

:license(<type>)

Matches packages based on license issues:

TypeDescription
unlicensedNo license
miscFine-grained license problems
restrictedNon-permissive license
ambiguousAmbiguous licensing
copyleftCopyleft license (GPL, etc.)
unknownLicense data found but type undetermined
noneNo license data at all
exceptionSPDX license exception
Terminal
# Find packages with copyleft licenses
$ vlt query ':license(copyleft)'

# Find unlicensed packages

$ vlt query ':license(unlicensed)'

# Find packages with any license

$ vlt query ':license'

Code behavior signals

:eval

Packages using dynamic code execution (eval(), new Function(), etc.):

Terminal
$ vlt query ':eval'

:network

Packages that access the network:

Terminal
$ vlt query ':network'

:fs

Packages that access the file system:

Terminal
$ vlt query ':fs'

:env

Packages that access environment variables:

Terminal
$ vlt query ':env'

:shell

Packages that access the system shell:

Terminal
$ vlt query ':shell'

:scripts

Packages with install scripts (postinstall, preinstall, etc.), or marked by install as needing a build (e.g. a root binding.gyp):

Terminal
$ vlt query ':scripts'

:debug

Packages using debug, reflection, or dynamic code execution features:

Terminal
$ vlt query ':debug'

:dynamic

Packages using dynamic imports:

Terminal
$ vlt query ':dynamic'

Obfuscation & hiding

:obfuscated

Packages with intentionally obfuscated code:

Terminal
$ vlt query ':obfuscated'

:minified

Packages containing minified code:

Terminal
$ vlt query ':minified'

:entropic

Packages with high-entropy strings (possibly encrypted data, leaked secrets, or obfuscated code):

Terminal
$ vlt query ':entropic'

:native

Packages containing native code (compiled binaries, shared libraries):

Terminal
$ vlt query ':native'

:shrinkwrap

Packages containing a shrinkwrap file that may bypass normal install procedures:

Terminal
$ vlt query ':shrinkwrap'

Package health

:deprecated

Packages marked as deprecated:

Terminal
$ vlt query ':deprecated'

:unmaintained

Packages not updated in more than 5 years:

Terminal
$ vlt query ':unmaintained'

:unpopular

Packages that are not widely used:

Terminal
$ vlt query ':unpopular'

:trivial

Packages with less than 10 lines of code:

Terminal
$ vlt query ':trivial'

:abandoned

Packages published by an npm account that no longer exists:

Terminal
$ vlt query ':abandoned'

:unknown

Packages with a new npm collaborator publishing for the first time:

Terminal
$ vlt query ':unknown'

:unstable

Packages with unstable ownership (new collaborator publishing):

Terminal
$ vlt query ':unstable'

Other

:tracker

Packages containing telemetry:

Terminal
$ vlt query ':tracker'

:undesirable

Packages that are jokes, parodies, or include undocumented behavior:

Terminal
$ vlt query ':undesirable'

:score(<rate>, <kind>)

Match packages by security score:

ParameterDescription
rateScore value 0–100 (or 0–1), with optional comparator
kindScore category (optional, default: overall)

Available kinds: overall, license, maintenance, quality, supplyChain, vulnerability.

Terminal
# Packages with exactly 0.8 overall score
$ vlt query ':score(80)'

# Packages with score > 0.8

$ vlt query ':score(">0.8")'

# Low maintenance score

$ vlt query ':score("<=0.5", "maintenance")'

Common audit queries

Run a comprehensive security audit:

Terminal
# Critical issues
$ vlt query ':malware, :cve, :obfuscated'

# Vulnerability scan with severity

$ vlt query ':vuln(critical), :vuln(high)'

# Supply chain risks

$ vlt query ':abandoned, :unmaintained, :unknown'

# License compliance

$ vlt query ':license(copyleft), :license(unlicensed)'

# Code behavior audit

$ vlt query ':eval, :shell, :network, :fs'

See also

  • :scanned — check if packages have security metadata
  • vlt security overview — security features in vlt

PreviousID SelectorsNextOverview

On this page

  • Malware & threats
  • :malware
  • :squat / :squat(<type>)
  • :suspicious
  • :confused
  • Vulnerabilities
  • :vulnerable / :vuln
  • :cve(<id>)
  • :cwe(<id>)
  • :severity(<level>)
  • Licensing
  • :license(<type>)
  • Code behavior signals
  • :eval
  • :network
  • :fs
  • :env
  • :shell
  • :scripts
  • :debug
  • :dynamic
  • Obfuscation & hiding
  • :obfuscated
  • :minified
  • :entropic
  • :native
  • :shrinkwrap
  • Package health
  • :deprecated
  • :unmaintained
  • :unpopular
  • :trivial
  • :abandoned
  • :unknown
  • :unstable
  • Other
  • :tracker
  • :undesirable
  • :score(<rate>, <kind>)
  • Common audit queries
  • See also
Edit this page

Deploy your package on vlt.io

Publish scoped and private packages, manage organizations and access, and give every developer and CI environment a consistent source for public and private JavaScript dependencies.

Publish now