Emergency Supply Chain Advisories
Emergency advisories are SecOpsAI's local-first denylist path for package versions that are confirmed compromised by reliable sources but are no longer available for normal artifact diffing.
When To Use This
Use advisories when a package version is confirmed malicious and one of these is true:
- The npm/PyPI artifact was removed, yanked, or returns 404.
- Diff generation fails but the package/version appears in a trusted campaign report.
- You need a fast block before the next full scanner release.
- You need SOC findings with sources, IOCs, and mitigation even when local manifests do not currently reference the package.
Operator Workflow
# List active advisories.
secopsai supply-chain advisory list
# Check one package version.
secopsai supply-chain advisory check --ecosystem pypi --package guardrails-ai --version 0.10.1
# Explain why a version is malicious, even without a stored diff report.
secopsai supply-chain explain-verdict --ecosystem npm --package @squawk/mcp --version 0.9.5
# Reconcile historical scanner errors after adding an advisory.
secopsai supply-chain reconcile-history --include-advisories
Ingesting A New Advisory
Advisories live in data/advisories/*.json and can also be ingested from a local JSON file or HTTPS URL.
secopsai supply-chain advisory ingest /path/to/advisory.json
secopsai supply-chain advisory ingest https://example.com/secopsai/advisory.json
Advisory Schema
{
"advisory_id": "SECOPSAI-ADV-YYYY-MM-CAMPAIGN",
"campaign_id": "campaign-name",
"title": "Campaign title",
"summary": "Short analyst summary",
"severity": "critical",
"confidence": "high",
"status": "active",
"published_at": "2026-05-11T00:00:00Z",
"updated_at": "2026-05-12T00:00:00Z",
"ingested_at": "2026-05-12T00:00:00Z",
"source_names": ["Trusted source"],
"source_urls": ["https://example.com/report"],
"affected": [
{
"ecosystem": "npm",
"package": "@scope/package",
"versions": ["1.2.3"],
"version_ranges": [{"introduced": "2.0.0", "fixed": "2.0.5"}],
"safe_versions": ["Use a maintainer-confirmed clean version"]
}
],
"iocs": {
"domains": ["example.com"],
"urls": ["https://example.com/payload.js"],
"hashes": [],
"file_paths": ["/tmp/payload.pyz"],
"filenames": ["payload.pyz"],
"commands": ["python3 /tmp/payload.pyz"]
},
"detection_rationale": ["Why this package/version is malicious"],
"remediation": ["Block the version and rotate exposed credentials"]
}
SOC Behavior
Advisory matches produce source-backed SUPPLY-CHAIN-ADVISORY findings. If a normal diff report exists, the advisory enriches the scanner verdict. If the artifact is unavailable, SecOpsAI records the verdict as malicious and clearly marks the evidence path as artifact unavailable; advisory matched.
Advisory-backed findings are not closed as expected_behavior just because a package is absent from local manifests. They remain actionable ecosystem intelligence until an analyst explicitly triages them.