You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Beim Merge von PR #331 (Issue #330, „Über"-Standard) lief der CI-Job 🔒 Security Audit (npm audit --audit-level=high) auf dem PR-Head rot. Das ist unabhängig von PR #331 — der Diff dort betraf nur Übersetzungen/Konstanten/SettingsModal.tsx, keine Dependencies. Der Fund gilt also für testing unabhängig von diesem PR und blockiert den CI-Gate (--audit-level=high) bei jedem künftigen PR gegen main.
Befund (npm audit --audit-level=high, Lauf vom 2026-09-16)
18 vulnerabilities (17 moderate, 1 high)
Paket
Severity
Fix
Betroffen über
js-yaml 3.0.0–3.15.1 | 4.0.0–4.3.1
high
npm audit fix (non-breaking)
@eslint/eslintrc, eslint (Dev-Tooling)
decode-uri-component ≤0.4.2
moderate
nur npm audit fix --force (breaking: expo-router@5.1.11)
nur npm audit fix --force (breaking: expo@46.0.21, Downgrade!)
xcode → @expo/config-plugins → gesamte Expo-Toolchain
Das uuid-Finding ist bereits aus früheren Audits bekannt (siehe geschlossene Issues #190/#110/#55) — ein --force-Fix würde expo auf 46.0.21downgraden, das ist keine echte Lösung. Neu und blockierend ist js-yaml (high), das den CI-Schwellenwert --audit-level=high erstmals seit Längerem tatsächlich reißt — und das mit einem nicht-breaking Fix.
Akzeptanzkriterien
npm audit fix (ohne --force) ausführen → behebt js-yaml (high), damit 🔒 Security Audit wieder grün
package-lock.json committen, npm run test:ci + Build lokal grün
package.json bleibt unverändert (kein Versionsbereich geändert, reine Lockfile-Neuauflösung innerhalb der bestehenden Ranges). npm audit --audit-level=high läuft danach mit Exit-Code 0 — der CI-Job 🔒 Security Audit wäre damit grün.
Warum ich den Fix nicht selbst als PR gepusht habe:npm audit fix regeneriert dabei nicht nur die drei js-yaml-Einträge, sondern npm löst dabei einen größeren Teilbaum um @expo/cli neu auf (harmlos, aber der resultierende Diff ist >900 Zeilen in einer 538 KB großen package-lock.json). Ohne lokalen git/gh-Zugriff kann ich in dieser Remote-Session Dateien nur über die GitHub-Contents-API einzeln mit vollständigem Inhalt schreiben — für eine Datei dieser Größe ist das über den verfügbaren Werkzeugsatz nicht mehr praktikabel/verlässlich umzusetzen (kein Diff-/Patch-Mechanismus verfügbar).
Optional: npm run build:web zur Kontrolle, dass der Web-Export weiterhin durchläuft.
Restliche 16 moderate Findings (decode-uri-component, uuid) bleiben wie in der Issue-Beschreibung dokumentiert offen — nur via --force behebbar, das würde expo-router/expo downgraden.
Umgesetzt in #333, gemergt nach testing (09:20 Uhr). npm audit fix (ohne --force) behebt js-yaml (high) ohne Breaking Change. Verbleibende 16 moderate Findings (decode-uri-component, uuid) bewusst nicht gefixt — nur via --force/Downgrade lösbar, analog Begründung in #190. Verifiziert: npm audit --audit-level=high exit 0, alle CI-Checks grün, 453 Tests, Web-Build erfolgreich, zusätzlich funktional auf Web + echter Nexus-6-Hardware getestet.
Activity
S540d commentedon Sep 18, 2026
Fix lokal verifiziert — Push aus dieser Session nicht praktikabel
Ich habe den vorgeschlagenen Fix real ausgeführt und verifiziert (nicht nur simuliert):
Ergebnis:
js-yamlwird konsistent auf die gepatchten Versionen gehoben:node_modules/js-yaml(top-level, eslintrc-Kette):3.13.1→3.15.2node_modules/@eslint/eslintrc/node_modules/js-yaml,node_modules/@expo/xcpretty/node_modules/js-yaml,node_modules/eslint/node_modules/js-yaml:4.3.1→4.3.2package.jsonbleibt unverändert (kein Versionsbereich geändert, reine Lockfile-Neuauflösung innerhalb der bestehenden Ranges).npm audit --audit-level=highläuft danach mit Exit-Code 0 — der CI-Job🔒 Security Auditwäre damit grün.Warum ich den Fix nicht selbst als PR gepusht habe:
npm audit fixregeneriert dabei nicht nur die dreijs-yaml-Einträge, sondern npm löst dabei einen größeren Teilbaum um@expo/clineu auf (harmlos, aber der resultierende Diff ist >900 Zeilen in einer 538 KB großenpackage-lock.json). Ohne lokalengit/gh-Zugriff kann ich in dieser Remote-Session Dateien nur über die GitHub-Contents-API einzeln mit vollständigem Inhalt schreiben — für eine Datei dieser Größe ist das über den verfügbaren Werkzeugsatz nicht mehr praktikabel/verlässlich umzusetzen (kein Diff-/Patch-Mechanismus verfügbar).Für dich lokal in 2 Minuten erledigt:
Optional:
npm run build:webzur Kontrolle, dass der Web-Export weiterhin durchläuft.Restliche 16 moderate Findings (
decode-uri-component,uuid) bleiben wie in der Issue-Beschreibung dokumentiert offen — nur via--forcebehebbar, das würdeexpo-router/expodowngraden.Generated by Claude Code
S540d commentedon Sep 20, 2026
Umgesetzt in #333, gemergt nach
testing(09:20 Uhr).npm audit fix(ohne --force) behebt js-yaml (high) ohne Breaking Change. Verbleibende 16 moderate Findings (decode-uri-component, uuid) bewusst nicht gefixt — nur via--force/Downgrade lösbar, analog Begründung in #190. Verifiziert: npm audit --audit-level=high exit 0, alle CI-Checks grün, 453 Tests, Web-Build erfolgreich, zusätzlich funktional auf Web + echter Nexus-6-Hardware getestet.