Every package published to DepAegis is automatically scanned for known vulnerabilities using industry-standard databases. This page explains how scanning works, how results are reported, and how to manage exceptions.
When a package is published, DepAegis extracts its dependency manifest (package-lock.json, packages.lock.json, or container image layers) and checks every component against two databases:
DepAegis matches on package name, version range, and ecosystem. Results are available within seconds of publish.
Scanning is enabled by default for all organizations. When a package is pushed to DepAegis:
Each vulnerability is classified into one of four severity levels:
| Severity | CVSS Range | Behavior |
|---|---|---|
| Critical | 9.0 – 10.0 | Package is quarantined. Install blocked. |
| High | 7.0 – 8.9 | Package is quarantined. Install blocked (configurable). |
| Medium | 4.0 – 6.9 | Warning shown in dashboard. Install allowed. |
| Low | 0.1 – 3.9 | Informational. No install impact. |
When a package version is found to have vulnerabilities at or above the configured threshold, it is placed in quarantine. Quarantined packages:
# Attempting to install a quarantined package
$ npm install @myorg/vulnerable-pkg
npm ERR! 403 Forbidden - Package is quararantined:
CVE-2025-1234 (Critical) - Remote Code ExecutionScan results are available in the DepAegis dashboard under the Security tab for each package version. The report shows:
CVE-2025-1234DepAegis can notify your team when vulnerabilities are detected. Configure notifications under Organization → Settings → Notifications.
{
"event": "vulnerability.found",
"package": "@myorg/ui-components",
"version": "1.2.3",
"cve": "CVE-2025-1234",
"severity": "Critical",
"action": "quarantined"
}Enable email alerts for Critical and High severity findings. Recipients are configurable per organization. Emails include the CVE ID, severity, affected package, and a direct link to the scan report.
The vulnerability landscape changes constantly. To re-scan a package version against the latest databases:
You can also trigger a re-scan programmatically:
curl -X POST \
-H "Authorization: Bearer $DEPAEGIS_TOKEN" \
"https://app.depaegis.com/api/v1/packages/@myorg%2Fui-components/versions/1.2.3/rescan"DepAegis uses the generated SBOM to scan not just the direct package, but its full transitive dependency tree. This means vulnerabilities in deeply nested dependencies are caught even when they are not declared directly.
The SBOM lists every component with its name, version, and hash. DepAegis resolves each component against the vulnerability databases and reports findings per-component with a clear dependency path.
package-lock.json or packages.lock.json). This allows DepAegis to build an accurate dependency tree for SBOM-based scanning.Not every CVE match is a real threat. DepAegis provides tools to assess and dismiss false positives:
# Dismiss a false positive via the API
curl -X POST \
-H "Authorization: Bearer $DEPAEGIS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"reason": "Vulnerable code path not reachable", "expiresAt": "2026-12-31"}' \
"https://app.depaegis.com/api/v1/vulnerabilities/CVE-2025-1234/dismiss"For CVEs that have been assessed and accepted, you can create ignore rules at the organization or package level:
# Ignore a CVE for a specific package
curl -X PUT \
-H "Authorization: Bearer $DEPAEGIS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"cve": "CVE-2025-5678", "scope": "package", "package": "@myorg/legacy-lib", "reason": "Legacy package, migration planned Q3 2026"}' \
"https://app.depaegis.com/api/v1/organizations/myorg/ignore-rules"Ignored CVEs do not trigger quarantine or notifications. They are still listed in scan reports with an Ignored badge and the provided reason.