From 87f5fe20f909d0ae10d4dec5cfea9a46d8205502 Mon Sep 17 00:00:00 2001 From: sysops Date: Fri, 28 Aug 2026 22:58:27 +0200 Subject: [PATCH 1/6] OPS-06: automatisiertes-schwachstellen-scanning-supply-chain (govulncheck+npm-audit CI-Gates, verwundbare Fixtures + Verifikationsskript fuer Pruefung 1) --- .gitea/workflows/govulncheck.yml | 34 ++++++++++++++++++++++ .gitea/workflows/npm-audit.yml | 32 +++++++++++++++++++++ scripts/verify-supply-chain-gate.sh | 41 +++++++++++++++++++++++++++ testdata/vulnfixture-go/go.mod | 12 ++++++++ testdata/vulnfixture-go/main.go | 19 +++++++++++++ testdata/vulnfixture-npm/package.json | 8 ++++++ 6 files changed, 146 insertions(+) create mode 100644 .gitea/workflows/govulncheck.yml create mode 100644 .gitea/workflows/npm-audit.yml create mode 100755 scripts/verify-supply-chain-gate.sh create mode 100644 testdata/vulnfixture-go/go.mod create mode 100644 testdata/vulnfixture-go/main.go create mode 100644 testdata/vulnfixture-npm/package.json diff --git a/.gitea/workflows/govulncheck.yml b/.gitea/workflows/govulncheck.yml new file mode 100644 index 0000000..bfd1f5c --- /dev/null +++ b/.gitea/workflows/govulncheck.yml @@ -0,0 +1,34 @@ +name: Supply-Chain-Scan (Go) + +on: + push: + paths: + - "**/*.go" + - "go.mod" + - "go.sum" + pull_request: {} + +jobs: + govulncheck: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: "1.22" + - name: govulncheck installieren + run: go install golang.org/x/vuln/cmd/govulncheck@latest + - name: Go-Module auf bekannte Schwachstellen pruefen + shell: bash + run: | + # pipefail ist Pflicht: sonst liefert "govulncheck | tee" den Exit-Code + # von tee (immer 0) statt den von govulncheck zurueck — der Gate-Zweck + # (Akzeptanzkriterium 3: Fund blockiert den Merge) waere sonst wirkungslos. + set -o pipefail + govulncheck ./... | tee govulncheck-report.txt + - name: Scan-Bericht als Artefakt ablegen + if: always() + uses: actions/upload-artifact@v4 + with: + name: govulncheck-report + path: govulncheck-report.txt diff --git a/.gitea/workflows/npm-audit.yml b/.gitea/workflows/npm-audit.yml new file mode 100644 index 0000000..e6d4665 --- /dev/null +++ b/.gitea/workflows/npm-audit.yml @@ -0,0 +1,32 @@ +name: Supply-Chain-Scan (npm) + +on: + push: + paths: + - "web/**/package.json" + - "web/**/package-lock.json" + pull_request: {} + +jobs: + npm-audit: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: "22" + - name: Alle Next.js-Frontends auf bekannte Schwachstellen pruefen + shell: bash + run: | + set -o pipefail + status=0 + for pkg in $(find web -maxdepth 2 -name package.json); do + dir=$(dirname "$pkg") + echo "=== npm audit: $dir ===" + (cd "$dir" && npm install --package-lock-only --no-audit --no-fund \ + && npm audit --audit-level=high) || status=1 + done + # Erst nach Durchlauf ALLER Frontends fehlschlagen (Akzeptanzkriterium 2/3): + # ein einzelner Fund darf nicht verhindern, dass die uebrigen Frontends + # ebenfalls geprueft und im Bericht sichtbar werden. + exit $status diff --git a/scripts/verify-supply-chain-gate.sh b/scripts/verify-supply-chain-gate.sh new file mode 100755 index 0000000..ed2d155 --- /dev/null +++ b/scripts/verify-supply-chain-gate.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +# OPS-06 Pruefung 1: beweist, dass govulncheck und npm audit eine absichtlich +# verwundbare Testabhaengigkeit tatsaechlich erkennen und mit Exit-Code != 0 +# enden (= wuerden den Merge blockieren). Laeuft auf dem Testhost (Go/npm +# noetig), nicht auf der Entwicklungsmaschine. +set -uo pipefail + +fail=0 + +echo "=== Go-Fixture: golang.org/x/text v0.3.7 (GO-2022-0635 / CVE-2022-32149) ===" +if ! command -v govulncheck >/dev/null 2>&1; then + go install golang.org/x/vuln/cmd/govulncheck@latest +fi +( cd testdata/vulnfixture-go && go mod tidy && govulncheck ./... ) +go_exit=$? +if [ "$go_exit" -eq 0 ]; then + echo "FEHLER: govulncheck hat die bekannte Schwachstelle NICHT erkannt (exit 0 erwartet != 0)" + fail=1 +else + echo "OK: govulncheck hat die Schwachstelle erkannt, exit code $go_exit (!= 0, Gate wuerde blockieren)" +fi + +echo +echo "=== npm-Fixture: lodash 4.17.4 (mehrere bekannte kritische CVEs) ===" +( cd testdata/vulnfixture-npm && npm install --package-lock-only --no-audit --no-fund \ + && npm audit --audit-level=high ) +npm_exit=$? +if [ "$npm_exit" -eq 0 ]; then + echo "FEHLER: npm audit hat die bekannte Schwachstelle NICHT erkannt (exit 0 erwartet != 0)" + fail=1 +else + echo "OK: npm audit hat die Schwachstelle erkannt, exit code $npm_exit (!= 0, Gate wuerde blockieren)" +fi + +echo +if [ "$fail" -eq 0 ]; then + echo "PRUEFUNG 1 BESTANDEN: beide Gates erkennen eine absichtlich verwundbare Testabhaengigkeit und blockieren." +else + echo "PRUEFUNG 1 FEHLGESCHLAGEN: siehe FEHLER oben." +fi +exit $fail diff --git a/testdata/vulnfixture-go/go.mod b/testdata/vulnfixture-go/go.mod new file mode 100644 index 0000000..77d6fb6 --- /dev/null +++ b/testdata/vulnfixture-go/go.mod @@ -0,0 +1,12 @@ +// Absichtlich verwundbares Fixture-Modul fuer OPS-06 Pruefung 1: beweist, dass +// der govulncheck-CI-Schritt eine bekannte Schwachstelle tatsaechlich erkennt +// und den Lauf mit Exit-Code != 0 beendet. Eigenes go.mod, damit die +// veraltete, verwundbare Abhaengigkeit NICHT im Hauptmodul landet. +module gitea.perlbach24.de/scripte/nexarch/testdata/vulnfixture-go + +go 1.22 + +// golang.org/x/text v0.3.7: GO-2022-0635 / CVE-2022-32149 — Denial of Service +// durch uebermaessigen Ressourcenverbrauch beim Parsen von BCP-47-Sprach-Tags. +// Bewusst auf dieser verwundbaren Version gepinnt, siehe scripts/verify-supply-chain-gate.sh. +require golang.org/x/text v0.3.7 diff --git a/testdata/vulnfixture-go/main.go b/testdata/vulnfixture-go/main.go new file mode 100644 index 0000000..1335ed7 --- /dev/null +++ b/testdata/vulnfixture-go/main.go @@ -0,0 +1,19 @@ +// Fixture fuer OPS-06 Pruefung 1 — ruft tatsaechlich in die verwundbare +// Funktion hinein, damit govulncheck den Aufrufpfad (nicht nur die +// Modul-Abhaengigkeit) als erreichbar erkennt. +package main + +import ( + "fmt" + + "golang.org/x/text/language" +) + +func main() { + tag, err := language.Parse("de-DE") + if err != nil { + fmt.Println(err) + return + } + fmt.Println(tag) +} diff --git a/testdata/vulnfixture-npm/package.json b/testdata/vulnfixture-npm/package.json new file mode 100644 index 0000000..d7e5cf1 --- /dev/null +++ b/testdata/vulnfixture-npm/package.json @@ -0,0 +1,8 @@ +{ + "name": "nexarch-vulnfixture-npm", + "private": true, + "description": "Absichtlich verwundbares Fixture-Paket fuer OPS-06 Pruefung 1 — beweist, dass npm audit eine bekannte Schwachstelle erkennt und den Lauf blockiert. Nicht Teil eines echten NEXARCH-Frontends.", + "dependencies": { + "lodash": "4.17.4" + } +} From ab7a03386c56c749d56cc402d150b8a8205f4fcb Mon Sep 17 00:00:00 2001 From: sysops Date: Fri, 28 Aug 2026 23:01:19 +0200 Subject: [PATCH 2/6] =?UTF-8?q?OPS-06:=20fix=20=E2=80=94=20fixture=20ruft?= =?UTF-8?q?=20tatsaechlich=20verwundbaren=20symbolpfad=20auf=20(ParseAccep?= =?UTF-8?q?tLanguage=20statt=20Parse,=20GO-2022-1059=20statt=20falscher=20?= =?UTF-8?q?advisory-id)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- testdata/vulnfixture-go/go.mod | 8 +++++--- testdata/vulnfixture-go/main.go | 7 +++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/testdata/vulnfixture-go/go.mod b/testdata/vulnfixture-go/go.mod index 77d6fb6..65893f2 100644 --- a/testdata/vulnfixture-go/go.mod +++ b/testdata/vulnfixture-go/go.mod @@ -6,7 +6,9 @@ module gitea.perlbach24.de/scripte/nexarch/testdata/vulnfixture-go go 1.22 -// golang.org/x/text v0.3.7: GO-2022-0635 / CVE-2022-32149 — Denial of Service -// durch uebermaessigen Ressourcenverbrauch beim Parsen von BCP-47-Sprach-Tags. -// Bewusst auf dieser verwundbaren Version gepinnt, siehe scripts/verify-supply-chain-gate.sh. +// golang.org/x/text v0.3.7: GO-2022-1059 — Denial of Service durch +// uebermaessigen Ressourcenverbrauch beim Parsen von Accept-Language-Headern +// (language.ParseAcceptLanguage). Bewusst auf dieser verwundbaren Version +// gepinnt, siehe scripts/verify-supply-chain-gate.sh — main.go ruft gezielt +// den verwundbaren Symbolpfad auf, nicht nur irgendeine Funktion des Pakets. require golang.org/x/text v0.3.7 diff --git a/testdata/vulnfixture-go/main.go b/testdata/vulnfixture-go/main.go index 1335ed7..2a4268f 100644 --- a/testdata/vulnfixture-go/main.go +++ b/testdata/vulnfixture-go/main.go @@ -10,10 +10,13 @@ import ( ) func main() { - tag, err := language.Parse("de-DE") + // ParseAcceptLanguage ist der tatsaechlich verwundbare Aufrufpfad + // (GO-2022-1059), im Unterschied zu Parse() — govulncheck bewertet + // Erreichbarkeit auf Symbol-, nicht nur Paket-Ebene. + tags, _, err := language.ParseAcceptLanguage("de-DE,de;q=0.9,en;q=0.8") if err != nil { fmt.Println(err) return } - fmt.Println(tag) + fmt.Println(tags) } From 77ecf42365eea6d14f21121c2f876ac8a1cce7c6 Mon Sep 17 00:00:00 2001 From: sysops Date: Fri, 28 Aug 2026 23:03:05 +0200 Subject: [PATCH 3/6] =?UTF-8?q?OPS-06:=20fix=20=E2=80=94=20verify-supply-c?= =?UTF-8?q?hain-gate.sh=20unterscheidet=20jetzt=20echten=20Fund=20von=20We?= =?UTF-8?q?rkzeugfehler=20(pruefte=20vorher=20nur=20exit-code,=20'command?= =?UTF-8?q?=20not=20found'=20galt=20faelschlich=20als=20bestanden)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DEVLOG.md | 12 +++++++ scripts/verify-supply-chain-gate.sh | 52 ++++++++++++++++++++--------- 2 files changed, 49 insertions(+), 15 deletions(-) diff --git a/DEVLOG.md b/DEVLOG.md index 7178fe5..2556863 100644 --- a/DEVLOG.md +++ b/DEVLOG.md @@ -44,3 +44,15 @@ Keine Commits in dieser Session. Keine Änderungen ermittelbar. --- +## 2026-08-28 23:00 – 23:01 (0m) +**Beschreibung:** Claude Code Session +**Projekt:** nexarch + +### Commits +- ab7a033 OPS-06: fix — fixture ruft tatsaechlich verwundbaren symbolpfad auf (ParseAcceptLanguage statt Parse, GO-2022-1059 statt falscher advisory-id) + +### Geänderte Dateien +- testdata/vulnfixture-go/go.mod | 8 +++++--- +- testdata/vulnfixture-go/main.go | 7 +++++-- + +--- diff --git a/scripts/verify-supply-chain-gate.sh b/scripts/verify-supply-chain-gate.sh index ed2d155..8db1baf 100755 --- a/scripts/verify-supply-chain-gate.sh +++ b/scripts/verify-supply-chain-gate.sh @@ -1,40 +1,62 @@ #!/usr/bin/env bash # OPS-06 Pruefung 1: beweist, dass govulncheck und npm audit eine absichtlich -# verwundbare Testabhaengigkeit tatsaechlich erkennen und mit Exit-Code != 0 -# enden (= wuerden den Merge blockieren). Laeuft auf dem Testhost (Go/npm -# noetig), nicht auf der Entwicklungsmaschine. +# verwundbare Testabhaengigkeit tatsaechlich ERKENNEN (nicht nur irgendeinen +# Fehler werfen) und mit Exit-Code != 0 enden (= wuerden den Merge blockieren). +# Laeuft auf dem Testhost (Go/npm noetig), nicht auf der Entwicklungsmaschine. +# +# Wichtig: ein Exit-Code != 0 allein ist KEIN Beweis — ein fehlendes Tool +# ("command not found", exit 127) sieht fuer ein reines Exit-Code-Gate genauso +# aus wie ein echter Fund. Deshalb prueft dieses Skript zusaetzlich, dass die +# erwartete Advisory-Kennung tatsaechlich in der Ausgabe steht. set -uo pipefail fail=0 -echo "=== Go-Fixture: golang.org/x/text v0.3.7 (GO-2022-0635 / CVE-2022-32149) ===" +echo "=== Go-Fixture: golang.org/x/text v0.3.7, GO-2022-1059 (Symbolpfad language.ParseAcceptLanguage) ===" if ! command -v govulncheck >/dev/null 2>&1; then - go install golang.org/x/vuln/cmd/govulncheck@latest + echo "govulncheck fehlt, installiere..." + if ! go install golang.org/x/vuln/cmd/govulncheck@latest; then + echo "FEHLER: govulncheck konnte nicht installiert werden — Pruefung nicht durchfuehrbar, kein Ersatz-'OK'." + fail=1 + fi fi -( cd testdata/vulnfixture-go && go mod tidy && govulncheck ./... ) -go_exit=$? -if [ "$go_exit" -eq 0 ]; then - echo "FEHLER: govulncheck hat die bekannte Schwachstelle NICHT erkannt (exit 0 erwartet != 0)" - fail=1 + +if command -v govulncheck >/dev/null 2>&1; then + go_output=$(cd testdata/vulnfixture-go && go mod tidy && govulncheck ./... 2>&1) + go_exit=$? + echo "$go_output" + if [ "$go_exit" -eq 0 ]; then + echo "FEHLER: govulncheck hat die bekannte Schwachstelle NICHT erkannt (exit 0 erwartet != 0)" + fail=1 + elif ! grep -q "GO-2022-1059" <<<"$go_output"; then + echo "FEHLER: exit code $go_exit ist != 0, aber die erwartete Advisory GO-2022-1059 steht NICHT in der Ausgabe — das ist vermutlich ein Werkzeugfehler (z. B. fehlendes govulncheck, Netzwerkproblem), kein echter Fund. Kein 'OK'." + fail=1 + else + echo "OK: govulncheck hat GO-2022-1059 tatsaechlich als Fund gemeldet, exit code $go_exit (!= 0, Gate wuerde blockieren)" + fi else - echo "OK: govulncheck hat die Schwachstelle erkannt, exit code $go_exit (!= 0, Gate wuerde blockieren)" + echo "govulncheck weiterhin nicht verfuegbar — Go-Teil der Pruefung uebersprungen, zaehlt als Fehlschlag." fi echo echo "=== npm-Fixture: lodash 4.17.4 (mehrere bekannte kritische CVEs) ===" -( cd testdata/vulnfixture-npm && npm install --package-lock-only --no-audit --no-fund \ - && npm audit --audit-level=high ) +npm_output=$(cd testdata/vulnfixture-npm && npm install --package-lock-only --no-audit --no-fund 2>&1 \ + && npm audit --audit-level=high 2>&1) npm_exit=$? +echo "$npm_output" if [ "$npm_exit" -eq 0 ]; then echo "FEHLER: npm audit hat die bekannte Schwachstelle NICHT erkannt (exit 0 erwartet != 0)" fail=1 +elif ! grep -qiE "severity|vulnerabilit" <<<"$npm_output"; then + echo "FEHLER: exit code $npm_exit ist != 0, aber die Ausgabe enthaelt keinen erkennbaren Schwachstellen-Hinweis — vermutlich ein Werkzeugfehler (z. B. fehlendes npm, Netzwerkproblem), kein echter Fund. Kein 'OK'." + fail=1 else - echo "OK: npm audit hat die Schwachstelle erkannt, exit code $npm_exit (!= 0, Gate wuerde blockieren)" + echo "OK: npm audit hat die Schwachstelle tatsaechlich gemeldet, exit code $npm_exit (!= 0, Gate wuerde blockieren)" fi echo if [ "$fail" -eq 0 ]; then - echo "PRUEFUNG 1 BESTANDEN: beide Gates erkennen eine absichtlich verwundbare Testabhaengigkeit und blockieren." + echo "PRUEFUNG 1 BESTANDEN: beide Gates erkennen eine absichtlich verwundbare Testabhaengigkeit inhaltlich (nicht nur per Exit-Code) und wuerden blockieren." else echo "PRUEFUNG 1 FEHLGESCHLAGEN: siehe FEHLER oben." fi From 9de84f69947e5f32526f64989eb30f4493b431f8 Mon Sep 17 00:00:00 2001 From: sysops Date: Fri, 28 Aug 2026 23:04:49 +0200 Subject: [PATCH 4/6] =?UTF-8?q?OPS-06:=20fix=20=E2=80=94=20fehlendes=20fai?= =?UTF-8?q?l=3D1=20im=20govulncheck-unavailable-zweig,=20govulncheck-versi?= =?UTF-8?q?on=20gepinnt=20statt=20@latest=20(Go-Versionskonflikt=20auf=201?= =?UTF-8?q?31=20gefunden)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/govulncheck.yml | 6 +++++- DEVLOG.md | 12 ++++++++++++ scripts/verify-supply-chain-gate.sh | 13 +++++++++++-- 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/govulncheck.yml b/.gitea/workflows/govulncheck.yml index bfd1f5c..21e0e97 100644 --- a/.gitea/workflows/govulncheck.yml +++ b/.gitea/workflows/govulncheck.yml @@ -17,7 +17,11 @@ jobs: with: go-version: "1.22" - name: govulncheck installieren - run: go install golang.org/x/vuln/cmd/govulncheck@latest + # @latest kann eine govulncheck-Version verlangen, die neuer ist als + # die hier verwendete Go-Toolchain (z.B. "requires go >= 1.25.0") — + # feste, bekannt kompatible Version statt @latest (siehe + # scripts/verify-supply-chain-gate.sh, Fund vom 2026-08-28 auf dem Testhost). + run: go install golang.org/x/vuln/cmd/govulncheck@v1.1.3 - name: Go-Module auf bekannte Schwachstellen pruefen shell: bash run: | diff --git a/DEVLOG.md b/DEVLOG.md index 2556863..005f699 100644 --- a/DEVLOG.md +++ b/DEVLOG.md @@ -56,3 +56,15 @@ Keine Änderungen ermittelbar. - testdata/vulnfixture-go/main.go | 7 +++++-- --- +## 2026-08-28 23:02 – 23:03 (0m) +**Beschreibung:** Claude Code Session +**Projekt:** code + +### Commits +- 77ecf42 OPS-06: fix — verify-supply-chain-gate.sh unterscheidet jetzt echten Fund von Werkzeugfehler (pruefte vorher nur exit-code, 'command not found' galt faelschlich als bestanden) + +### Geänderte Dateien +- DEVLOG.md | 12 ++++++++++++ +- scripts/verify-supply-chain-gate.sh | 52 +++++++++++++++++++++++++++++++++++++--------------- + +--- diff --git a/scripts/verify-supply-chain-gate.sh b/scripts/verify-supply-chain-gate.sh index 8db1baf..feb4721 100755 --- a/scripts/verify-supply-chain-gate.sh +++ b/scripts/verify-supply-chain-gate.sh @@ -15,7 +15,11 @@ fail=0 echo "=== Go-Fixture: golang.org/x/text v0.3.7, GO-2022-1059 (Symbolpfad language.ParseAcceptLanguage) ===" if ! command -v govulncheck >/dev/null 2>&1; then echo "govulncheck fehlt, installiere..." - if ! go install golang.org/x/vuln/cmd/govulncheck@latest; then + # @latest kann eine govulncheck-Version verlangen, die neuer ist als die + # lokal installierte Go-Toolchain (z. B. "requires go >= 1.25.0"). Feste, + # bekannt kompatible Version statt @latest, damit die Installation nicht + # von der jeweiligen Go-Version des Hosts abhaengt. + if ! go install golang.org/x/vuln/cmd/govulncheck@v1.1.3; then echo "FEHLER: govulncheck konnte nicht installiert werden — Pruefung nicht durchfuehrbar, kein Ersatz-'OK'." fail=1 fi @@ -35,7 +39,12 @@ if command -v govulncheck >/dev/null 2>&1; then echo "OK: govulncheck hat GO-2022-1059 tatsaechlich als Fund gemeldet, exit code $go_exit (!= 0, Gate wuerde blockieren)" fi else - echo "govulncheck weiterhin nicht verfuegbar — Go-Teil der Pruefung uebersprungen, zaehlt als Fehlschlag." + # Bug (gefunden 2026-08-28): dieser Zweig druckte vorher nur eine Meldung, + # setzte aber "fail" NICHT — das Skript endete trotzdem mit Exit-Code 0 und + # "PRUEFUNG 1 BESTANDEN", obwohl der Go-Teil real nicht lief. Exakt derselbe + # Fehlerklasse (Werkzeugfehler zaehlt als Erfolg), nur eine Ebene hoeher. + echo "FEHLER: govulncheck weiterhin nicht verfuegbar — Go-Teil der Pruefung nicht durchgefuehrt, kein Ersatz-'OK'." + fail=1 fi echo From f02de2b6c8c469413a1337d5264061683e0943a2 Mon Sep 17 00:00:00 2001 From: sysops Date: Fri, 28 Aug 2026 23:07:11 +0200 Subject: [PATCH 5/6] =?UTF-8?q?OPS-06:=20fix=20=E2=80=94=20PATH=20um=20$(g?= =?UTF-8?q?o=20env=20GOPATH)/bin=20ergaenzen=20(govulncheck=20installierte?= =?UTF-8?q?=20erfolgreich,=20war=20aber=20nicht=20im=20PATH=20auffindbar);?= =?UTF-8?q?=20go.sum=20ergaenzen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- go.sum | 28 ++++++++++++++++++++++++++++ scripts/verify-supply-chain-gate.sh | 7 +++++++ 2 files changed, 35 insertions(+) create mode 100644 go.sum diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..5c39671 --- /dev/null +++ b/go.sum @@ -0,0 +1,28 @@ +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/jackc/pgpassfile v1.0.0 h1:/6Hmqy13Ss2zCq62VdNG8tM1wchn8zjSGOBJ6icpsIM= +github.com/jackc/pgpassfile v1.0.0/go.mod h1:CEx0iS5ambNFdcRtxPj5JhEz+xB6uRky5eyVu/W2HEg= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a h1:bbPeKD0xmW/Y25WS6cokEszi5g+S0QxI/d45PkRi7Nk= +github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a/go.mod h1:5TJZWKEWniPve33vlWYSoGYefn3gLQRzjfDlhSJ9ZKM= +github.com/jackc/pgx/v5 v5.6.0 h1:SWJzexBzPL5jb0GEsrPMLIsi/3jOo7RHlzTjcAeDrPY= +github.com/jackc/pgx/v5 v5.6.0/go.mod h1:DNZ/vlrUnhWCoFGxHAG8U2ljioxukquj7utPDgtQdTw= +github.com/jackc/puddle/v2 v2.2.1 h1:RhxXJtFG022u4ibrCSMSiu5aOq1i77R3OHKNJj77OAk= +github.com/jackc/puddle/v2 v2.2.1/go.mod h1:vriiEXHvEE654aYKXXjOvZM39qJ0q+azkZFrfEOc3H4= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/scripts/verify-supply-chain-gate.sh b/scripts/verify-supply-chain-gate.sh index feb4721..6d95bcd 100755 --- a/scripts/verify-supply-chain-gate.sh +++ b/scripts/verify-supply-chain-gate.sh @@ -10,6 +10,13 @@ # erwartete Advisory-Kennung tatsaechlich in der Ausgabe steht. set -uo pipefail +# "go install" legt Binaries in $(go env GOPATH)/bin ab — auf frischen Hosts +# ist das nicht zwangslaeufig im PATH (gefunden 2026-08-28 auf dem Testhost: +# govulncheck installierte erfolgreich, "command -v govulncheck" schlug danach +# trotzdem fehl, weil /root/go/bin nicht im PATH stand). Defensiv ergaenzen, +# statt stillschweigend als "Werkzeug fehlt" fehlzuschlagen. +export PATH="$PATH:$(go env GOPATH 2>/dev/null)/bin" + fail=0 echo "=== Go-Fixture: golang.org/x/text v0.3.7, GO-2022-1059 (Symbolpfad language.ParseAcceptLanguage) ===" From bf8f9057679854b811baa4382f698fa31f16a7d9 Mon Sep 17 00:00:00 2001 From: sysops Date: Fri, 28 Aug 2026 23:07:16 +0200 Subject: [PATCH 6/6] DEVLOG: Sessionlog-Eintrag (Auto-Hook) --- DEVLOG.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/DEVLOG.md b/DEVLOG.md index 005f699..465e43e 100644 --- a/DEVLOG.md +++ b/DEVLOG.md @@ -68,3 +68,29 @@ Keine Änderungen ermittelbar. - scripts/verify-supply-chain-gate.sh | 52 +++++++++++++++++++++++++++++++++++++--------------- --- +## 2026-08-28 23:04 – 23:05 (0m) +**Beschreibung:** Claude Code Session +**Projekt:** code + +### Commits +- 9de84f6 OPS-06: fix — fehlendes fail=1 im govulncheck-unavailable-zweig, govulncheck-version gepinnt statt @latest (Go-Versionskonflikt auf 131 gefunden) + +### Geänderte Dateien +- .gitea/workflows/govulncheck.yml | 6 +++++- +- DEVLOG.md | 12 ++++++++++++ +- scripts/verify-supply-chain-gate.sh | 13 +++++++++++-- + +--- +## 2026-08-28 23:05 – 23:05 (0m) +**Beschreibung:** Claude Code Session +**Projekt:** code + +### Commits +Keine Commits in dieser Session. + +### Geänderte Dateien +- .gitea/workflows/govulncheck.yml | 6 +++++- +- DEVLOG.md | 12 ++++++++++++ +- scripts/verify-supply-chain-gate.sh | 13 +++++++++++-- + +---