21 lines
1.5 KiB
Python
21 lines
1.5 KiB
Python
import json,sys,urllib.request
|
|
def q(body):
|
|
r=urllib.request.Request('https://api.osv.dev/v1/query',data=json.dumps(body).encode(),headers={'Content-Type':'application/json'})
|
|
return json.load(urllib.request.urlopen(r,timeout=30)).get('vulns',[])
|
|
cases=[
|
|
('cloudflared 2026.9.3 (Go module)', {'package':{'name':'github.com/cloudflare/cloudflared','ecosystem':'Go'},'version':'2026.9.3'}),
|
|
('cloudflared pseudo v0', {'package':{'name':'github.com/cloudflare/cloudflared','ecosystem':'Go'}}),
|
|
('Go stdlib 1.26.8 (cloudflared 2026.9.3 build)', {'package':{'name':'stdlib','ecosystem':'Go'},'version':'1.26.8'}),
|
|
('traefik v3 3.7.13', {'package':{'name':'github.com/traefik/traefik/v3','ecosystem':'Go'},'version':'3.7.13'}),
|
|
('traefik v3 3.7.16 (negative?)', {'package':{'name':'github.com/traefik/traefik/v3','ecosystem':'Go'},'version':'3.7.16'}),
|
|
('vaultwarden 1.36.0 (crates.io)', {'package':{'name':'vaultwarden','ecosystem':'crates.io'},'version':'1.36.0'}),
|
|
('immich 3.2.2 (npm)', {'package':{'name':'immich','ecosystem':'npm'},'version':'3.2.2'}),
|
|
('nextcloud/server 29.0.0 (Packagist)', {'package':{'name':'nextcloud/server','ecosystem':'Packagist'},'version':'29.0.0'}),
|
|
('nextcloud/server 34.0.4 (Packagist, ours)', {'package':{'name':'nextcloud/server','ecosystem':'Packagist'},'version':'34.0.4'}),
|
|
('debian ca-certificates', {'package':{'name':'ca-certificates','ecosystem':'Debian:13'}}),
|
|
]
|
|
for name,b in cases:
|
|
try:
|
|
v=q(b); print(f'{name}: {len(v)}', [x['id'] for x in v][:8])
|
|
except Exception as e: print(name,'ERROR',e)
|