From e482216b1bf680516e30892e01ec80a8350c3986 Mon Sep 17 00:00:00 2001 From: DragonSlayer_14 Date: Sun, 13 Sep 2026 20:28:06 +0200 Subject: [PATCH] =?UTF-8?q?Docs:=20Revert-Bedingung=20f=C3=BCr=20RUSTSEC-2?= =?UTF-8?q?026-0253-Workaround=20dokumentieren?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Damit das Deaktivieren von turso/fts (Commit 2a96e03) nicht dauerhaft vergessen wird, sobald der eigentliche Fix upstream verfügbar ist: - Cargo.toml: Kommentar direkt über der turso-Zeile mit Grund und konkreten Schritten zum Zurücksetzen. - AGENTS.md: neue Tabelle "Bekannte Sicherheits-Workarounds" (§5.2.1), damit auch bei einem Renovate-Update/Dependency-Review ohne Blick in Cargo.toml auffällt, dass hier eine befristete Ausnahme besteht. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01SnWfGGqHJGh2AhZ6uhotaD --- AGENTS.md | 11 +++++++++++ Cargo.toml | 13 +++++++++++++ 2 files changed, 24 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 0c3d83e..5c09c77 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -152,6 +152,17 @@ Alle Workflows liegen unter `.gitea/workflows/` und nutzen gecachte Abhängigkei - **`qodana.yaml`**: Konfiguration für JetBrains Qodana (statische Codeanalyse, Profil `qodana.starter`); wird über eine externe/IDE-seitige Qodana-CI-Integration ausgeführt, nicht über einen eigenen Gitea-Workflow in diesem Template. - **`renovate.yaml`** (Trigger: wöchentlich montags 04:00 UTC, `workflow_dispatch`): Führt Renovate (Container-Image, gepinnte Version) gegen die Gitea-Plattform aus und erstellt Pull Requests für veraltete Abhängigkeiten gemäß `renovate.json`. +### 5.2.1 Bekannte Sicherheits-Workarounds (temporär, mit Revert-Bedingung) + +Workarounds für Schwachstellen in transitiven Abhängigkeiten, die nicht direkt +per Versions-Bump behoben werden können (z. B. weil ein Zwischenpaket eine zu +enge Versionsanforderung pinnt). Vor jedem Renovate-Merge/Dependency-Update +prüfen, ob die Revert-Bedingung inzwischen erfüllt ist. + +| Advisory | Betroffenes Paket | Workaround | Wo dokumentiert | Revert-Bedingung | +| :--- | :--- | :--- | :--- | :--- | +| [RUSTSEC-2026-0253](https://rustsec.org/advisories/RUSTSEC-2026-0253.html) (Use-after-free in `LruCache::pop()`) | `lru` < 0.18.2, transitiv über `turso -> turso_core -> tantivy` | `fts`-Default-Feature von `turso` deaktiviert (`Cargo.toml`) — mac2ip nutzt keine Volltextsuche, dadurch entfällt `tantivy`/`lru` komplett aus dem Dependency-Baum | Kommentar direkt über der `turso`-Zeile in `Cargo.toml` | Sobald `cargo update -p lru --precise 0.18.2` erfolgreich ist (d. h. eine stabile `turso`-Version eine `tantivy`-Version mit `lru >= 0.18.2` zulässt): `turso`-Zeile zurück auf `turso = "0.7"` (oder aktueller) ändern, `cargo update -p turso`, und `cargo tree -i lru` zur Kontrolle. | + ### 5.3 Renovate-Konfiguration (`renovate.json`) - Basis-Branch für PRs: `dev`. - Gruppiert Updates nach `Gitea Actions`, `Cargo Dependencies` und `Docker-Images`. diff --git a/Cargo.toml b/Cargo.toml index 13cd826..b014ed4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,6 +13,19 @@ config-ctdra = { version = "1.0.6", registry = "gitea" } logger-ctdra = { version = "1.0.5", registry = "gitea" } sudo-ctdra = { version = "1.0.1", registry = "gitea" } tokio = { version = "1", features = ["macros", "rt-multi-thread", "process", "time"] } +# WORKAROUND für RUSTSEC-2026-0253 (Use-after-free in lru < 0.18.2): das +# Default-Feature "fts" zieht tantivy 0.26.2 -> lru "^0.16.3" (verwundbar) ein, +# obwohl mac2ip keine Volltextsuche nutzt. "fts" bleibt deaktiviert, bis eine +# stabile turso-Version tantivy>=eine lru>=0.18.2 zulassende Version pinnt. +# +# Revert, sobald behoben (z. B. Renovate-PR/manuelle Prüfung): +# 1. `cargo update -p lru --precise 0.18.2` probieren - schlägt fehl, solange +# das o. g. Problem besteht (siehe Fehlermeldung mit dem Pfad turso -> +# turso_core -> tantivy -> lru "^0.16.3"). +# 2. Sobald das gelingt (oder eine neue stabile turso-Version das Problem +# upstream behebt): diese Zeile zurück zu `turso = "0.7"` (oder aktueller) +# ändern und `cargo update -p turso` laufen lassen. +# 3. `cargo tree -i lru` zur Kontrolle - keine Version < 0.18.2 mehr vorhanden. turso = { version = "0.7", default-features = false, features = ["mimalloc"] } clap = { version = "4", features = ["derive", "env"] } serde = { version = "1", features = ["derive"] }