Understøttede økosystemer
Dette er den ene liste. Når en anden side nævner økosystemer, følger den denne side.
Scanning af afhængigheder
Scanning af afhængigheder (osv-scanner, på hver pull request og på standard-branchen) læser disse filer:
| Økosystem | Filer |
|---|---|
| npm | package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lock (ikke den binære bun.lockb) |
| PyPI | requirements.txt, poetry.lock, uv.lock, pdm.lock, Pipfile.lock |
| Go | go.mod |
| Maven | pom.xml med alle de afhængigheder, den trækker ind: opløst gennem din organisations Maven-proxy uden at køre Maven; se Opløsning af Maven-afhængigheder |
| Gradle | gradle.lockfile |
| Cargo | Cargo.lock |
| RubyGems | Gemfile.lock |
| Composer | composer.lock |
| Hex | mix.lock |
| pub | pubspec.lock |
| Conan | conan.lock. OSV udgiver ingen advisories for Conan-pakker, så der rapporteres ingen Conan-sårbarheder |
| CRAN | renv.lock |
| Swift Package Manager | Package.resolved, de pins, som SwiftPM har opløst (advisories for økosystemet SwiftURL). CocoaPods’ Podfile.lock og Carthages Cartfile.resolved læses ikke; tjekket noterer dem som ikke scannet |
| NuGet | gennem Trivy, med scanningen af container-images for repositoriet |
| Terraform- og OpenTofu-providers | .terraform.lock.hcl: de provider-binærfiler, som låsen fastlåser; se Terraform- og OpenTofu-providers |
| GitHub Actions | uses:-linjerne i workflow-filerne i .forgejo/workflows/, .gitea/workflows/ og .github/workflows/; se Versioner af CI-actions |
Container-images scannes af Trivy: styresystemets pakker og sprogpakkerne i hvert image. Se Scanning af container-images.
Opløsning af Maven-afhængigheder
En pom.xml nævner kun sine direkte afhængigheder. For at se, hvad de trækker ind, opløser scanningen af afhængigheder hver pom.xml, som Maven ville gøre det: forældre-poms, importerede BOM’er, <dependencyManagement>, properties, scopes, udeladelser og versionsintervaller. Den læser kun poms. Hverken Maven, plugins eller kode fra dit repository køres.
- Hvor poms’erne kommer fra. Hver pom læses gennem din organisations Maven-proxy, med platformens proxy som reserve. Et multimodul-builds egne moduler læses fra repositoriet.
<repositories>, der er erklæret i en pom, kontaktes ikke: et artefakt, som kun et privat repository har, opløses ikke og navngives (se nedenfor). Der spørges ingen opløsningstjeneste uden for fremforge. - Hvad der bruger resultatet. Det opløste træ er det, som afhængighedsfund, statussen
fremforge/dep-scan, repositoriets SBOM og pull requests med transitive rettelser læser, så de stemmer overens. - Cachet. Et træ genbruges i 24 timer, så længe poms’erne er uændrede. Advisories matches på ny ved hver scanning, så en ny advisory skjules aldrig af cachen.
En pom, der ikke kan opløses, ser aldrig ren ud. Dens direkte afhængigheder tjekkes stadig, og:
- statussen
fremforge/dep-scansiger det, også når den er grøn:1 pom.xml not fully resolved: transitive dependencies not checked; - kommentaren på pull requesten viser pom’en under Not fully checked med årsagen og de artefakter, som proxyen ikke havde, også når der ingen fund er;
- siderne med afhængighedsfund og SBOM’er viser Ikke fuldt kontrolleret med et link til afhængighedsproxyen, når et artefakt mangler;
- SBOM’en bærer det som en note om dækning (CycloneDX: property’en
fremforge:coverage:maven-unresolvedog enincompletecomposition; SPDX: creation-kommentaren); GET /orgs/{org}/code-security/deps/coverage(scopefindings:read) returnerer det for standard-branchen. Som standard viser den kun repositorier med noget, der ikke er fuldt kontrolleret;all=trueviser alle repositorier med en dækningspost, ogrepo=<name>filtrerer til ét.
curl -sS -H "Authorization: Bearer $FREMFORGE_TOKEN" \
"https://frem.sh/_app/api/v1/orgs/<org>/code-security/deps/coverage"Den almindelige årsag er et artefakt, som din Maven-proxy ikke har, for eksempel et internt bibliotek, der er udgivet et andet sted: tilføj det repository som upstream for proxyen. Andre årsager er, at proxyen ikke svarer, en timeout eller et build med mere end 60 poms (resten rapporteres, men opløses ikke).
Kendte begrænsninger. Opløsningen læser poms’erne; den kører ikke buildet. Derfor:
- tjekkes et build, der omskriver sine afhængigheder med et plugin (relocation med
maven-shade-plugin,flatten-maven-plugin, en genereret pom), som dets poms erklærer det, ikke som pluginet ændrer det; - bliver en profil, der afhænger af miljøet på din build-maskine (en system property, en fil, styresystemet eller JDK’en), måske ikke anvendt, som dit build anvender den.
For at få præcis det træ, dit build leverer, kan du pushe en CycloneDX-SBOM fra CI; den matches også.
Terraform- og OpenTofu-providers
Der findes ingen advisory-database for Terraform-providers, men en provider er et Go-program. For hver provider-version i en .terraform.lock.hcl scanner fremforge provider-binærfilen for de Go-moduler, den er bygget af, og rapporterer deres advisories som afhængighedsfund for repositoriet:
- Økosystem
Terraform, pakke provider-adressen (for eksempelregistry.terraform.io/hashicorp/null), version den låste version, manifest låsefilen. Resuméet navngiver Go-modulet og dets version, for eksempelgoogle.golang.org/grpc@v1.69.4 (built into the provider). - Kun den binærfil, låsen installerer. Et fund rapporteres kun, når en af låsens hashes (
zh:ellerh1:) er den provider-zip, der blev scannet. En lås, der accepterer andre bytes, får ingen fund for en binærfil, den ikke ville installere. - Samme tjek som for enhver afhængighed. Fundene går gennem din tærskel for afhængigheder, dine afvisninger og sammenligningen med base-branchen, så en pull request kun blokeres af fund, den selv tilføjer.
- Den første scanning af en version sker ikke med det samme. En version, fremforge ikke har set før, sættes i kø, når en lås, der fastlåser den, scannes første gang, og scannes i baggrunden, som regel inden for en time. Dens fund vises ved næste scanning af hvert repository, der låser den; indtil da har versionen ingen.
- Nåbarhed. Hvert fund angiver, om provider-binærfilen linker en funktion, som advisory’en navngiver: Kan nås eller Ikke nåbar, eller Ukendt, når det ikke kan afgøres. Se Nåbarhed.
- Rettet version. Den rettede version for et fund er den første provider-udgivelse, hvis binærfil ikke længere indeholder advisory’en, blandt de næste ti udgivelser efter din og den nyeste. fremforge scanner de udgivelser på samme måde, så det kan tage en time eller to efter den første scanning af din version, før den vises. Den forbliver tom, når der endnu ikke findes en sådan udgivelse, hvilket er almindeligt: en providers nyeste udgivelse indeholder ofte stadig det sårbare modul.
- Hvor binærfilen kommer fra.
linux_amd64-zip’en hentes én gang gennem fremforges eget provider-mirror fra den placering, providerens registry offentliggør. For HashiCorps providers er det HashiCorps udgivelsessite,releases.hashicorp.com, som fremforge ikke driver: det bruges kun til at hente den offentlige provider-zip, intet om dit repository sendes dertil, og fremforge beholder den kopi, den scannede.
Ikke dækket: Terraform-moduler; en provider bygget før Go 1.18 (for eksempel hashicorp/null 3.1.0), hvis binærfil ikke har nogen modulliste at læse; og den Go-standardbiblioteksversion, provideren er bygget med. Der åbnes ingen sikkerhedsrettelse for en provider: opdatér versionen i din konfiguration, og kør tofu init -upgrade eller terraform init -upgrade.
Versioner af CI-actions
Siden 18. oktober 2026 matches hver uses: owner/repo@<version> i en workflow-fil direkte under .forgejo/workflows/, .gitea/workflows/ eller .github/workflows/ mod GitHub Actions-advisories (GHSA) i fremforges egen kopi af OSV-databasen. Der foretages intet kald til GitHub: advisories kommer fra den kopi og versionen fra din workflow-fil.
- Versionen er tagget (
actions/download-artifact@v4.1.2) eller, for en action, der er fastlåst til en commit, versionskommentaren ved siden af (actions/download-artifact@<sha> # v4.1.2), som er sådan, værktøjer til fastlåsning skriver den. En fastlåst action uden en sådan kommentar har ingen version at matche. - Et fund er et afhængighedsfund: økosystem
GitHub Actions, pakkeowner/repoog workflow-filen som manifest. Det går gennem din tærskel for afhængigheder, dine afvisninger og sammenligningen med base-branchen, så en pull request kun blokeres af fund, den selv tilføjer, i tjekketfremforge/dep-scan. - Hvis fremforges kopi af GitHub Actions-advisories mangler, fejler scanningen af afhængigheder for et repository, hvis workflows navngiver actions med version, i stedet for at bestå uden fund.
Ikke dækket: et tag med kun hovedversion (@v4) eller en branch, der ikke navngiver nogen version; workflow-filer i undermapper eller uden for de tre mapper, composite actions’ egen action.yml og workflow-filer, der er symlinks. Om en reference er fastlåst til en commit, tjekkes separat; se Fastlåsning af workflows.
Sikkerhedsrettelser
Sikkerhedsrettelser åbner en pull request for:
- npm, inklusive Yarn, pnpm og Bun med
bun.lock(ikke den binærebun.lockb: kørbun install --save-text-lockfileén gang for at skifte); - Go;
- PyPI;
- Maven;
- Gradle med en lockfile, som opdateres i et job på din organisations egen runner;
- NuGet;
- Cargo;
- Composer,
composer.jsonogcomposer.lock; - pub,
pubspec.yamlogpubspec.lock; - RubyGems,
Gemfile.lock, som opdateres i et job på din organisations egen runner (Bundler læserGemfile, som er Ruby-kode, fremforge ikke kører); - Hex,
mix.lock, som opdateres i et job på din organisations egen runner i det officielleelixir-image (Mix læsermix.exs, som er Elixir-kode); - CRAN (R),
renv.lock, som opdateres i et job på din organisations egen runner irocker/r-ver-imaget: kun den pakkes post flyttes, og en rettelse, der kræver, at andre pakker flyttes, afvises (se CRAN); - GitHub Actions, workflow-filen: actionen flyttes til den laveste version, der retter alle åbne advisories, fastlåst til taggets commit med tagget som kommentar (
@<sha> # v4.1.3). Taggene læses fra action-mirroret på frem.sh, aldrig fra github.com; - base-images:
FROM-linjen i en Dockerfile inden for samme hovedversion.
De retter direkte afhængigheder og disse transitive (se Transitive afhængigheder):
- npm med
package-lock.json, fastlåst medoverrides; - pnpm med
pnpm-lock.yaml(lockfile-version 9.0), fastlåst medoverrides; - Yarn 1 med
yarn.lock, fastlåst medresolutions(Yarn 2 og nyere understøttes ikke); - PyPI med
uv.lockellerpoetry.lockved at flytte posten i låsen; - Maven, fastlåst med
<dependencyManagement>i denpom.xml, fundet kom fra (eller rod-pom.xml‘en for en pakke, der er set i en uploadet SBOM); - Gradle med
gradle.lockfile, fastlåst med en dependency constraint; - Go-moduler markeret
// indirectigo.mod; - Composer-pakker, som
composer.jsonikke navngiver, ved at opdaterecomposer.locki et job på din organisations egen runner; - RubyGems, Hex og CRAN: hver rettelse er en opdatering af låsefilen, så en pakke, som en anden pakke trækker ind, rettes på samme måde som en, manifestet navngiver.
Rettes ikke, hver med sin årsag på fundet: bun.lockb, som kun Bun kan omskrive, og pub- og Bun-pakker, som manifestet ikke navngiver. For alle andre økosystemer, også Swift Package Manager, svarer en anmodning om rettelse not yet supported. Conan har ingen advisories at rette (se tabellen ovenfor).
Nåbarhed
Nåbarhed giver en vurdering for:
| Økosystem | Niveau |
|---|---|
| npm | funktion, eller import når advisory’en ikke navngiver nogen funktioner |
| Go | funktion, ud fra Go-binærfilerne i dine images |
| PyPI | import |
| Maven | import |
| Terraform- og OpenTofu-providers | funktion, ud fra den provider-binærfil, låsen fastlåser |
Alle andre økosystemer får vurderingen Ukendt.
Afhængighedsproxy
Afhængighedsproxyen leverer npm-, PyPI-, Maven-, NuGet-, Go-, Cargo-, Helm- og RPM-pakker, container-images samt Terraform- og OpenTofu-moduler.
Ikke dækket
Terraform-moduler og versioner af Helm-charts tjekkes ikke mod sårbarheds-advisories. Versioner af CI-actions gør; se Versioner af CI-actions. Terraform- og OpenTofu-providers gør, ud fra deres binærfiler; se Terraform- og OpenTofu-providers. De container-images, et Helm-chart udruller, gør; se Images, dine Helm-charts udruller. Infrastructure-as-code-filer får kun tjek for fejlkonfiguration, i deres eget tjek, fremforge/iac-scan; se IaC-scanning. Om action-referencer er fastlåst til en commit, tjekkes også; se Fastlåsning af workflows.