#!/usr/bin/env python3 # govulncheck ./... | go-vuln-cve.py import json import re import sys from urllib.request import urlopen GO_PAT=re.compile('^Vulnerability.*(GO-[0-9]{4}-[0-9]+)') GO_TO_CVES = {} vulns_json = urlopen("https://vuln.go.dev/index/vulns.json").read() vulns = json.loads(vulns_json) for vuln in vulns: cves = [] for alias in vuln.get('aliases') or []: if alias.startswith('CVE-'): cves.append(alias) GO_TO_CVES[vuln['id']] = ", ".join(cves) for line in sys.stdin: line = line.strip() match = GO_PAT.search(line) if match: line += " " + GO_TO_CVES[match.group(1)] print(line)