Docs: Revert-Bedingung für RUSTSEC-2026-0253-Workaround dokumentieren
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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SnWfGGqHJGh2AhZ6uhotaD
This commit is contained in:
@@ -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.
|
- **`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`.
|
- **`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`)
|
### 5.3 Renovate-Konfiguration (`renovate.json`)
|
||||||
- Basis-Branch für PRs: `dev`.
|
- Basis-Branch für PRs: `dev`.
|
||||||
- Gruppiert Updates nach `Gitea Actions`, `Cargo Dependencies` und `Docker-Images`.
|
- Gruppiert Updates nach `Gitea Actions`, `Cargo Dependencies` und `Docker-Images`.
|
||||||
|
|||||||
+13
@@ -13,6 +13,19 @@ config-ctdra = { version = "1.0.6", registry = "gitea" }
|
|||||||
logger-ctdra = { version = "1.0.5", registry = "gitea" }
|
logger-ctdra = { version = "1.0.5", registry = "gitea" }
|
||||||
sudo-ctdra = { version = "1.0.1", registry = "gitea" }
|
sudo-ctdra = { version = "1.0.1", registry = "gitea" }
|
||||||
tokio = { version = "1", features = ["macros", "rt-multi-thread", "process", "time"] }
|
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"] }
|
turso = { version = "0.7", default-features = false, features = ["mimalloc"] }
|
||||||
clap = { version = "4", features = ["derive", "env"] }
|
clap = { version = "4", features = ["derive", "env"] }
|
||||||
serde = { version = "1", features = ["derive"] }
|
serde = { version = "1", features = ["derive"] }
|
||||||
|
|||||||
Reference in New Issue
Block a user