Fix: verifizierte Findings 2026-05-28 (1 high) #6

Merged
vr6syncro merged 1 commit from fix/findings-2026-05-28 into main 2026-05-29 20:45:54 +02:00
Owner

Behebt die am realen Code verifizierten und sicher fixbaren Findings aus der Analyse 2026-05-28. Maxime: lieber nichts fixen als falsch fixen — von den 3 High-Findings ist hier 1 gefixt, 2 bleiben bewusst offen (siehe unten).

Gefixt

[HIGH] Sidecar-Plugin-Install zeigt auf falschen Pfad — env.sample clobbert wrapper-exportiertes TEDDYCLOUD_DATA_DIR

Datei: vendor/tafforge-install/lxc/install.sh (Stage 7/8)

Der Wrapper (build.func) exportiert via pct exec env ... TEDDYCLOUD_DATA_DIR="${TC_LXC_PATH}" den gewaehlten Mount-Pfad in die LXC. install.sh sourct danach tafforge.env unter set -a; tafforge.env.sample:17 enthaelt aber ein UNkommentiertes TEDDYCLOUD_DATA_DIR=/opt/teddycloud/data, das den Wrapper-Wert ueberschreibt. In Sidecar-Topologie (Mount z.B. auf /mnt/teddycloud-data) zeigte PLUGIN_ROOT_RESOLVED dadurch faelschlich auf /opt/teddycloud/data/www/plugins — das Plugin wurde still nicht installiert (nur Warnung). All-in-one maskierte den Bug, weil dort der Pfad zufaellig matchte.

Fix (Empfehlung a, minimal-invasiv): Wrapper-bereitgestellte Integrationspfade (TEDDYCLOUD_DATA_DIR, PLUGIN_ROOT) werden vor dem Sourcen der env-Datei in lokalen Variablen gecaptured und nach dem Sourcen re-exportiert, sofern sie nicht-leer sind. Damit gewinnt der Wrapper-Wert wieder. env.sample bleibt unveraendert; All-in-one-Verhalten bleibt identisch; bei abgelehntem Sidecar-Mount (leerer Wrapper-Wert) faellt es weiterhin auf den env-Datei-Default zurueck (kein /www/plugins-Regression).

Closes #4

Bewusst NICHT gefixt (braucht manuelle Entscheidung)

[HIGH] curl|bash ohne Integritaetspruefung (#2)

Erfordert einen Release-/Signing-Prozess (sha256-Manifest oder GPG-Signatur) plus Pinning der REPO_RAW_BASE auf einen unveraenderlichen Tag/Commit. Das Repo hat aktuell keine Tags (git ls-remote --tags leer), und es existiert noch keine Release-Pipeline, die Manifeste/Signaturen erzeugt. Ein blindes Pinnen auf einen geratenen Tag wuerde den gesamten curl|bash-Bootstrap brechen. Architektur-/Prozessentscheidung — Issue bleibt offen.

[HIGH] TafForge-App vom beweglichen main-Branch geklont (#3)

TAFFORGE_REF_DEFAULT='main' auf einen Release-Tag/Commit-SHA zu pinnen setzt voraus, dass ein gueltiger, "geblesster" Ref des separaten TafForge-App-Repos bekannt ist. Welcher Commit/Tag das ist, ist eine Release-Entscheidung; ein nicht existierender Tag liesse git clone --branch <tag> bei jedem Fresh-Install fehlschlagen. Nicht sicher minimal fixbar — Issue bleibt offen.


Analyse-Details: analysis-2026-05-28/findings/teddytafforge-proxmox.md

Co-Authored-By: Claude Opus 4.8

Behebt die am realen Code verifizierten und sicher fixbaren Findings aus der Analyse 2026-05-28. Maxime: lieber nichts fixen als falsch fixen — von den 3 High-Findings ist hier 1 gefixt, 2 bleiben bewusst offen (siehe unten). ## Gefixt ### [HIGH] Sidecar-Plugin-Install zeigt auf falschen Pfad — env.sample clobbert wrapper-exportiertes TEDDYCLOUD_DATA_DIR **Datei:** `vendor/tafforge-install/lxc/install.sh` (Stage 7/8) Der Wrapper (`build.func`) exportiert via `pct exec env ... TEDDYCLOUD_DATA_DIR="${TC_LXC_PATH}"` den gewaehlten Mount-Pfad in die LXC. `install.sh` sourct danach `tafforge.env` unter `set -a`; `tafforge.env.sample:17` enthaelt aber ein UNkommentiertes `TEDDYCLOUD_DATA_DIR=/opt/teddycloud/data`, das den Wrapper-Wert ueberschreibt. In Sidecar-Topologie (Mount z.B. auf `/mnt/teddycloud-data`) zeigte `PLUGIN_ROOT_RESOLVED` dadurch faelschlich auf `/opt/teddycloud/data/www/plugins` — das Plugin wurde still nicht installiert (nur Warnung). All-in-one maskierte den Bug, weil dort der Pfad zufaellig matchte. **Fix (Empfehlung a, minimal-invasiv):** Wrapper-bereitgestellte Integrationspfade (`TEDDYCLOUD_DATA_DIR`, `PLUGIN_ROOT`) werden vor dem Sourcen der env-Datei in lokalen Variablen gecaptured und nach dem Sourcen re-exportiert, sofern sie nicht-leer sind. Damit gewinnt der Wrapper-Wert wieder. env.sample bleibt unveraendert; All-in-one-Verhalten bleibt identisch; bei abgelehntem Sidecar-Mount (leerer Wrapper-Wert) faellt es weiterhin auf den env-Datei-Default zurueck (kein `/www/plugins`-Regression). Closes #4 ## Bewusst NICHT gefixt (braucht manuelle Entscheidung) ### [HIGH] curl|bash ohne Integritaetspruefung (#2) Erfordert einen Release-/Signing-Prozess (sha256-Manifest oder GPG-Signatur) plus Pinning der `REPO_RAW_BASE` auf einen unveraenderlichen Tag/Commit. Das Repo hat aktuell **keine Tags** (`git ls-remote --tags` leer), und es existiert noch keine Release-Pipeline, die Manifeste/Signaturen erzeugt. Ein blindes Pinnen auf einen geratenen Tag wuerde den gesamten `curl|bash`-Bootstrap brechen. Architektur-/Prozessentscheidung — Issue bleibt offen. ### [HIGH] TafForge-App vom beweglichen main-Branch geklont (#3) `TAFFORGE_REF_DEFAULT='main'` auf einen Release-Tag/Commit-SHA zu pinnen setzt voraus, dass ein gueltiger, "geblesster" Ref des separaten TafForge-App-Repos bekannt ist. Welcher Commit/Tag das ist, ist eine Release-Entscheidung; ein nicht existierender Tag liesse `git clone --branch <tag>` bei jedem Fresh-Install fehlschlagen. Nicht sicher minimal fixbar — Issue bleibt offen. --- Analyse-Details: `analysis-2026-05-28/findings/teddytafforge-proxmox.md` Co-Authored-By: Claude Opus 4.8
fix: verifizierte Findings aus Analyse 2026-05-28
All checks were successful
shellcheck / lint (pull_request) Successful in 18s
syntax-validate / dryrun (pull_request) Successful in 19s
2422b07cd0
- Sidecar-Plugin-Install: wrapper-exportiertes TEDDYCLOUD_DATA_DIR/PLUGIN_ROOT vor dem Sourcen von tafforge.env capturen und danach re-exportieren, damit env.sample (uncommented TEDDYCLOUD_DATA_DIR=/opt/teddycloud/data) den vom Wrapper gesetzten Mount-Pfad nicht mehr clobbert. Behebt stilles Nicht-Installieren des Plugins in Sidecar-Topologie.

Refs: #4

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
vr6syncro/teddytafforge-proxmox!6
No description provided.