#!/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