Ekosystem som stöds
Det här är den enda listan. När en annan sida nämner ekosystem följer den den här sidan.
Beroendeskanning
Beroendeskanning (osv-scanner, i varje pull request och på standardbranchen) läser de här filerna:
| Ekosystem | Filer |
|---|---|
| npm | package-lock.json, yarn.lock, pnpm-lock.yaml, bun.lock (inte den binära bun.lockb) |
| PyPI | requirements.txt, poetry.lock, uv.lock, pdm.lock, Pipfile.lock |
| Go | go.mod |
| Maven | pom.xml, med varje beroende den drar in: löses upp via din organisations Maven-proxy, utan att Maven körs; se Upplösning av Maven-beroenden |
| Gradle | gradle.lockfile |
| Cargo | Cargo.lock |
| RubyGems | Gemfile.lock |
| Composer | composer.lock |
| Hex | mix.lock |
| pub | pubspec.lock |
| Conan | conan.lock. OSV publicerar inga säkerhetsmeddelanden för Conan-paket, så ingen Conan-sårbarhet rapporteras |
| CRAN | renv.lock |
| Swift Package Manager | Package.resolved, de fästa versioner SwiftPM löste upp (säkerhetsmeddelanden för ekosystemet SwiftURL). CocoaPods Podfile.lock och Carthage Cartfile.resolved läses inte; kontrollen noterar dem som inte skannade |
| NuGet | via Trivy, med skanningen av container-images för repot |
| Terraform- och OpenTofu-providers | .terraform.lock.hcl: de provider-binärer som låsfilen fäster; se Terraform- och OpenTofu-providers |
| GitHub Actions | uses:-raderna i arbetsflödesfilerna i .forgejo/workflows/, .gitea/workflows/ och .github/workflows/; se Versioner av CI-actions |
Container-images skannas av Trivy: operativsystemets paket och språkpaketen i varje image. Se Skanning av container-images.
Upplösning av Maven-beroenden
En pom.xml anger bara sina direkta beroenden. För att se vad de drar in löser beroendeskanningen upp varje pom.xml som Maven skulle göra: överordnade pom-filer, importerade BOM:er, <dependencyManagement>, properties, scopes, exkluderingar och versionsintervall. Den läser bara pom-filer. Ingen Maven, inget plugin och ingen kod från ditt repo körs.
- Var pom-filerna kommer ifrån. Varje pom läses via din organisations Maven-proxy, med plattformens proxy som reserv. En byggnation med flera moduler läser sina egna moduler från repot.
<repositories>som deklareras i en pom kontaktas inte: en artefakt som bara ett privat repo har löses inte upp, och namnges (nedan). Ingen upplösningstjänst utanför fremforge tillfrågas. - Vad som använder resultatet. Det upplösta trädet är det som beroendefynden, statusen
fremforge/dep-scan, repots SBOM och pull requests för transitiva fixar läser, så de stämmer överens. - Cachat. Ett träd återanvänds i 24 timmar så länge pom-filerna är oförändrade. Säkerhetsmeddelanden matchas på nytt vid varje skanning, så ett nytt säkerhetsmeddelande döljs aldrig av cachen.
När en pom inte kan lösas upp ser den aldrig ren ut. Dess direkta beroenden kontrolleras ändå, och:
- statusen
fremforge/dep-scansäger det även när den är grön:1 pom.xml not fully resolved: transitive dependencies not checked; - kommentaren i pull requesten listar pom-filen under Inte fullständigt kontrollerat, med orsaken och de artefakter som proxyn inte hade, även när det inte finns några fynd;
- sidorna för beroendefynd och SBOM visar Inte fullständigt kontrollerat, med en länk till beroendeproxyn när en artefakt saknas;
- SBOM:en bär det som en anteckning om täckning (CycloneDX: egenskapen
fremforge:coverage:maven-unresolvedoch enincomplete-komposition; SPDX: kommentaren vid skapandet); GET /orgs/{org}/code-security/deps/coverage(scopefindings:read) returnerar det för standardbranchen. Som standard listar den bara repon där något inte är fullständigt kontrollerat;all=truelistar varje repo med en täckningspost, ochrepo=<name>filtrerar till ett.
curl -sS -H "Authorization: Bearer $FREMFORGE_TOKEN" \
"https://frem.sh/_app/api/v1/orgs/<org>/code-security/deps/coverage"Den vanliga orsaken är en artefakt som din Maven-proxy inte har, till exempel ett internt bibliotek som publiceras någon annanstans: lägg till det repot som en uppströmskälla för proxyn. Andra orsaker är att proxyn inte svarar, en timeout eller en byggnation med fler än 60 pom-filer (resten rapporteras, men löses inte upp).
Kända begränsningar. Upplösningen läser pom-filerna; den kör inte byggnationen. Därför:
- kontrolleras en byggnation som skriver om sina beroenden med ett plugin (relokering med
maven-shade-plugin,flatten-maven-plugin, en genererad pom) som dess pom-filer deklarerar den, inte som pluginet ändrar den; - kan en profil som beror på din byggmaskins miljö (en systemegenskap, en fil, operativsystemet eller JDK:n) tillämpas på ett annat sätt än din byggnation tillämpar den.
För exakt det träd som din byggnation levererar, pusha en CycloneDX-SBOM från CI; den matchas också.
Terraform- och OpenTofu-providers
Det finns ingen databas med säkerhetsmeddelanden för Terraform-providers, men en provider är ett Go-program. För varje providerversion i en .terraform.lock.hcl skannar fremforge provider-binären efter de Go-moduler den byggdes från och rapporterar deras säkerhetsmeddelanden som beroendefynd för repot:
- Ekosystem
Terraform, paket providerns adress (till exempelregistry.terraform.io/hashicorp/null), version den låsta versionen, manifest låsfilen. Sammanfattningen namnger Go-modulen och dess version, till exempelgoogle.golang.org/grpc@v1.69.4 (built into the provider). - Bara den binär som låsfilen installerar. Ett fynd rapporteras bara när en av låsfilens hashar (
zh:ellerh1:) är den provider-zip som skannades. En låsfil som accepterar andra bytes får inga fynd för en binär den inte skulle installera. - Samma kontroll som för alla beroenden. Fynden går genom din tröskel för beroenden, dina avfärdanden och jämförelsen med basbranchen, så en pull request blockeras bara av fynd som den lägger till.
- Den första skanningen av en version sker inte direkt. En version som fremforge inte har sett tidigare köas när en låsfil som fäster den skannas första gången, och skannas i bakgrunden, oftast inom en timme. Dess fynd visas vid nästa skanning av varje repo som låser den; fram till dess har den versionen inga.
- Nåbarhet. Varje fynd anger om provider-binären länkar in en funktion som säkerhetsmeddelandet namnger: nåbar eller ej nåbar, eller okänd när det inte går att avgöra. Se Nåbarhet.
- Åtgärdad version. Den åtgärdade versionen för ett fynd är den första providerreleasen vars binär inte längre bär på säkerhetsmeddelandet, bland de tio releaser som följer efter din och den nyaste. fremforge skannar de releaserna på samma sätt, så det kan ta en eller två timmar efter den första skanningen av din version innan den visas. Den förblir tom när det inte finns någon sådan release ännu, vilket är vanligt: en providers nyaste release levererar ofta fortfarande den sårbara modulen.
- Var binären kommer ifrån. Zip-filen för
linux_amd64hämtas en gång, via fremforges egen providerspegel, från den plats som providerns register publicerar. För HashiCorps providers är det HashiCorps releasesida,releases.hashicorp.com, som fremforge inte driver: den används bara för att hämta den publika provider-zip-filen, inget om ditt repo skickas dit, och fremforge behåller kopian som den skannade.
Täcks inte: Terraform-moduler; en provider som byggdes före Go 1.18 (till exempel hashicorp/null 3.1.0), vars binär inte bär någon modullista att läsa; och Go-standardbiblioteket som providern byggdes med. Ingen säkerhetsfix öppnas för en provider: uppdatera versionen i din konfiguration och kör tofu init -upgrade eller terraform init -upgrade.
Versioner av CI-actions
Varje uses: owner/repo@<version> i en arbetsflödesfil direkt under .forgejo/workflows/, .gitea/workflows/ eller .github/workflows/ matchas mot säkerhetsmeddelandena för GitHub Actions (GHSA) i fremforges egen kopia av OSV-databasen, sedan den 18 oktober 2026. Inget anrop görs till GitHub: säkerhetsmeddelandena kommer från den kopian och versionen från din arbetsflödesfil.
- Versionen är taggen (
actions/download-artifact@v4.1.2), eller, för en action som är fäst vid en commit, versionskommentaren bredvid den (actions/download-artifact@<sha> # v4.1.2), vilket är så som verktyg för fästning skriver den. En fäst action utan en sådan kommentar har ingen version att matcha. - Ett fynd är ett beroendefynd: ekosystem
GitHub Actions, paketowner/repo, arbetsflödesfilen som manifest. Det går genom din tröskel för beroenden, dina avfärdanden och jämförelsen med basbranchen, så en pull request blockeras bara av fynd som den lägger till, i kontrollenfremforge/dep-scan. - Om fremforges kopia av säkerhetsmeddelandena för GitHub Actions saknas underkänns beroendeskanningen för ett repo vars arbetsflöden namnger versionerade actions, i stället för att godkännas utan fynd.
Täcks inte: en tagg med bara huvudversion (@v4) eller en branch, som inte anger någon version; arbetsflödesfiler i underkataloger eller utanför de tre katalogerna, sammansatta actions egna action.yml och arbetsflödesfiler som är symboliska länkar. Om en referens är fäst vid en commit kontrolleras separat; se Fästning av arbetsflöden.
Säkerhetsfixar
Säkerhetsfixar öppnar en pull request för:
- npm, inklusive Yarn, pnpm och Bun med
bun.lock(inte den binärabun.lockb: körbun install --save-text-lockfileen gång för att byta); - Go;
- PyPI;
- Maven;
- Gradle med en låsfil, som uppdateras i ett jobb på din organisations egen runner;
- NuGet;
- Cargo;
- Composer,
composer.jsonochcomposer.lock; - pub,
pubspec.yamlochpubspec.lock; - RubyGems,
Gemfile.lock, som uppdateras i ett jobb på din organisations egen runner (Bundler läserGemfile, som är Ruby-kod som fremforge inte kör); - Hex,
mix.lock, som uppdateras i ett jobb på din organisations egen runner, i den officiellaelixir-imagen (Mix läsermix.exs, som är Elixir-kod); - CRAN (R),
renv.lock, som uppdateras i ett jobb på din organisations egen runner, i imagenrocker/r-ver: bara det paketets post flyttas, och en fix som kräver att andra paket flyttas avvisas (se CRAN); - GitHub Actions, arbetsflödesfilen: actionen flyttas till den lägsta version som åtgärdar alla öppna säkerhetsmeddelanden, fäst vid den taggens commit med taggen som kommentar (
@<sha> # v4.1.3). Taggarna läses från action-spegeln på frem.sh, aldrig från github.com; - bas-images:
FROM-raden i en Dockerfile, inom samma huvudversion.
De åtgärdar direkta beroenden, och de här transitiva (se Transitiva beroenden):
- npm med
package-lock.json, fästa medoverrides; - pnpm med
pnpm-lock.yaml(låsfilsversion 9.0), fästa medoverrides; - Yarn 1 med
yarn.lock, fästa medresolutions(Yarn 2 och senare stöds inte); - PyPI med
uv.lockellerpoetry.lock, genom att flytta posten i låsfilen; - Maven, fästa med
<dependencyManagement>i denpom.xmlsom fyndet kom från (eller rotenspom.xml, för ett paket som syns i en uppladdad SBOM); - Gradle med
gradle.lockfile, fästa med en beroendebegränsning; - Go-moduler som är märkta
// indirectigo.mod; - Composer-paket som
composer.jsoninte anger, genom att uppdateracomposer.locki ett jobb på din organisations egen runner; - RubyGems, Hex och CRAN: varje fix är en uppdatering av låsfilen, så ett paket som ett annat paket drar in åtgärdas på samma sätt som ett som manifestet anger.
Åtgärdas inte, med orsaken angiven på fyndet: bun.lockb, som bara Bun kan skriva om, samt pub- och Bun-paket som manifestet inte anger. För alla andra ekosystem, inklusive Swift Package Manager, svarar en begäran om fix not yet supported. Conan har inga säkerhetsmeddelanden att åtgärda (se tabellen ovan).
Nåbarhet
Nåbarhet ger en bedömning för:
| Ekosystem | Nivå |
|---|---|
| npm | funktion, eller import när säkerhetsmeddelandet inte namnger några funktioner |
| Go | funktion, från Go-binärerna i dina images |
| PyPI | import |
| Maven | import |
| Terraform- och OpenTofu-providers | funktion, från den provider-binär som låsfilen fäster |
Alla andra ekosystem får bedömningen okänd.
Beroendeproxy
Beroendeproxyn levererar npm-, PyPI-, Maven-, NuGet-, Go-, Cargo-, Helm- och RPM-paket, container-images samt Terraform- och OpenTofu-moduler.
Täcks inte
Terraform-moduler och versioner av Helm-charts kontrolleras inte mot säkerhetsmeddelanden om sårbarheter. Versioner av CI-actions gör det; se Versioner av CI-actions. Terraform- och OpenTofu-providers gör det, utifrån sina binärer; se Terraform- och OpenTofu-providers. De container-images som en Helm-chart driftsätter gör det; se Images som dina Helm-charts driftsätter. Infrastruktur som kod-filer får bara kontroller av felkonfiguration, i en egen kontroll, fremforge/iac-scan; se IaC-skanning. Om action-referenser är fästa vid en commit kontrolleras också; se Fästning av arbetsflöden.