OSV-rekommendationer
Beroendeskanning visar enskilda CVE:er. Fliken Rekommendationer under Säkerhet › Fynd › Beroenden (/<org>/_admin/security/findings/dependencies?view=recommendations) gör om den listan till en fixlista: varje öppet fynd med en publicerad fix blir ett kort – repo + package + current → fix + vilka CVE:er den enda uppgraderingen löser.
Hur rekommendationerna beräknas
Grupperingsnyckeln är (repo_full_name, ecosystem, package_name, current_version, fixed_version). Fynd som delar alla fem slås ihop till ett kort.
Sorteringen sker i tre steg:
- Nåbarhet: ett kort får den mest nåbara nåbarhetsbedömningen bland de fynd det åtgärdar: nåbara först, sedan okända (inklusive inte analyserade), sedan ej nåbara.
- Allvarlighetsgrad (inom en bedömning): kritisk → hög → medel → låg.
- EPSS-poäng (inom allvarlighetsgraden): den högsta EPSS-poängen bland de samlade sårbarheterna vinner.
Ett säkerhetsmeddelande med låg allvarlighetsgrad som din kod når sorteras alltså ovanför ett kritiskt som inte är nåbart, och inom samma bedömning och allvarlighetsgrad sorteras ett säkerhetsmeddelande som utnyttjas aktivt ovanför ett teoretiskt. Ett kort som inte är nåbart listas ändå; det hamnar bara längre ned. Översiktens främsta rekommendationer och veckosammanfattningen använder samma ordning.
Vad kortet visar
acme/api critical
npm:lodash 4.17.20 → 4.17.21
3 vulns fixed · EPSS 23.4% · CVE-2021-23337, CVE-2020-8203 +1Ett kort vars bedömning är nåbar eller ej nåbar visar också Nåbar eller Ej nåbar bredvid sin allvarlighetsgrad.
- Manifestsökvägar: om samma paket är låst i både
package-lock.jsonochpnpm-lock.yamllistas båda. - EPSS: den högsta sannolikheten för utnyttjande bland de samlade CVE:erna (0–100 %). Det dagliga uppdateringsjobbet hämtar EPSS-data från FIRST.org.
- Sårbarhets-id:n: de tre första visas direkt; resten i en sammanfattning
+N.
Få uppgraderings-pull requesten
Varje kort har knappen Öppna fix-PR för paket i de ekosystem som får säkerhetsfixar (se Ekosystem som stöds). Den öppnar en pull request som uppgraderar paketet i det repot, som organisationens beroendebot, och den väntar på granskning eller mergas när kontrollerna går igenom, beroende på vad organisationen har valt; se Merge. När fixen har begärts visar kortet Åtgärd föreslagen: #N med pull requestens status.
Andra sätt att få uppgraderingen:
- Låt Uppdateringar av beroenden öppna pull requests. Med Uppdateringar av beroenden aktiverat öppnar Renovate en pull request för säkerhetsuppdatering vid nästa nattliga körning efter att ett säkerhetsmeddelande (OSV) har publicerats för ett beroende, oavsett ditt
scheduleoch väntetiden för release-ålder. När en öppen Renovate-pull request redan uppgraderar ett paket länkar fyndet på fliken Fynd till den (Renovate-PR #n). - Starta en körning nu. Fliken Rekommendationer har knappen Starta en körning för uppdatering av beroenden, som startar en Renovate-körning utanför schemat för hela organisationen, högst en gång i timmen. Om Uppdateringar av beroenden inte är aktiverat länkar fliken till sidan där du aktiverar det.
- Uppgradera själv. Varje kort anger paketet, den installerade versionen och den föreslagna åtgärdade versionen, så att du kan göra ändringen i din egen branch och låta PR-skanningen bekräfta att fynden är borta.
Den gamla endpointen Öppna uppgraderings-PR förblir avvecklad och svarar 410 Gone; knappen Öppna fix-PR ersätter den.
Kräver migrering: fixen finns i ett annat paket
Vissa säkerhetsmeddelanden har ingen fix för det paket du använder, men är åtgärdade i en efterföljare som säkerhetsmeddelandet självt anger: en ny modulsökväg eller major-version, eller ett paket med nytt namn. Exempel från verkliga säkerhetsmeddelanden:
| Du använder | Åtgärdat endast i |
|---|---|
Go github.com/docker/docker | github.com/moby/moby/v2 |
Go github.com/pion/dtls/v2 | github.com/pion/dtls/v3 |
Go gopkg.in/square/go-jose.v2 | gopkg.in/go-jose/go-jose.v2 |
npm request | @cypress/request |
Ett sådant fynd visar Kräver migrering till <package> (åtgärdat i <version>) i stället för “ingen fix än”, på flikarna Fynd och Per paket, i API:t (needs_migration, se Findings API) och i veckosammanfattningen. Det visas inte under Rekommendationer och får ingen knapp Öppna fix-PR: att byta till en annan modul eller ett annat paket ändrar importer och ofta API:t, så det är en kodändring som du får göra, inte en versionsuppgradering.
Så väljs efterföljaren:
- Säkerhetsmeddelandet måste gälla din installerade version och inte ange någon åtgärdad version av ditt paket över den. Om ditt eget paket har en fix får fyndet den fixen som vanligt.
- Efterföljaren är ett annat paket i samma ekosystem som säkerhetsmeddelandet listar med en åtgärdad version. Versionen som visas är den lägsta som säkerhetsmeddelandet inte gäller. Ett säkerhetsmeddelandes alias (till exempel en Go-post
GO-…och dess tvillingGHSA-…) läses tillsammans. - När flera listas föredrar Go samma major-version som din (
go-jose.v2tillgo-jose/go-jose.v2, intego-jose/v4), därefter den lägsta högre major-versionen, och föreslår aldrig en lägre major-version av samma modul. Andra ekosystem föredrar ett namn som slutar med ditt (requesttill@cypress/request). - När versionerna inte kan ordnas, eller inget annat paket är åtgärdat, behåller fyndet “ingen fix än”. Ett säkerhetsmeddelande som inte är åtgärdat någonstans, till exempel
golang.org/x/crypto/openpgp(underhålls inte), visas aldrig som en migrering.
Varför det här inte är samma sak som fliken Fynd
Fliken Fynd är den kanoniska källan: en rad per (CVE × manifest). Rekommendationer är den åtgärdbara sammanfattningen:
- Ett paket utan publicerad fix visas aldrig under Rekommendationer (det går inte att åtgärda än).
- Ett paket som kan åtgärdas med en enda uppgradering visas en gång under Rekommendationer och N gånger under Fynd (en per CVE).
- Ett avfärdat fynd visas aldrig på någon av dem.
Använd Fynd för att prioritera enskilda CVE:er och avfärdanden; använd Rekommendationer för att styra dagens faktiska fixarbete.
Via REST API
GET /_app/api/v1/orgs/:slug/security/recommendations (findings:read) returnerar själva rekommendationerna, i flikens ordning: en post per repo, paket och aktuell version, med fixed_version, highest_severity, vulnerability_count, vulnerability_ids, manifest_paths, max_epss, reachability, known_exploited och finding_id, det fynd på standardbranchen som en begäran om säkerhetsfix anger (null när alla fynd i gruppen finns på en pull request).
De underliggande CVE-fynden, rådatan som Rekommendationer sammanfattar, finns i det publika API:t. Använd det när du bygger en egen dashboard, exporterar till ett ärendesystem eller styr prioriteringen från en AI-agent.
- Lista beroendefynd
GET /_app/api/v1/orgs/:slug/code-security/deps/findings: en rad per (CVE × manifest), medpackage_name,current_version,fixed_version,severity,vulnerability_id,manifest_path. Gruppera på klientsidan efter(repo_full_name, ecosystem, package_name, current_version, fixed_version)för att återskapa sammanställningen i Rekommendationer. - Avfärda ett fynd
POST /_app/api/v1/orgs/:slug/code-security/deps/findings/:id/dismissbody:{ "reason": "..." }
List-endpointen kräver en personlig åtkomsttoken (PAT) med scopet findings:read; avfärdanden kräver findings:write:
curl -H "Authorization: Bearer ${FREMFORGE_PAT}" \
"https://frem.sh/_app/api/v1/orgs/acme/code-security/deps/findings?include_dismissed=false"Se referensen för det publika REST-API:t för den fullständiga OpenAPI-specifikationen.
Se även
- Åtgärdsfrist (SLA): hur SLA-etiketten på fliken Fynd beräknas.
- Säkerhetssammanfattning: mejlar de 5 främsta åtgärdbara fynden, nåbara först, varje måndag.
- Push-skydd: hemligheter som blockeras vid push, den uppströms halvan av samma triad i leveranskedjan.