diff --git a/docs/superpowers/notes/2026-09-28-etappe-4-entscheidungen-entwurf.md b/docs/superpowers/notes/2026-09-28-etappe-4-entscheidungen-entwurf.md index 88f4da4..83992f9 100644 --- a/docs/superpowers/notes/2026-09-28-etappe-4-entscheidungen-entwurf.md +++ b/docs/superpowers/notes/2026-09-28-etappe-4-entscheidungen-entwurf.md @@ -144,6 +144,7 @@ Aus dem Audit (nicht behoben): - **L9:** Der Seiten-Umschreiber parst jeden Kandidaten bei jedem Probelauf und Confirm, ohne Cap für Entwürfe (Administrator-Niveau, Wirkung endet mit dem Request). - **L8-Rest:** Bei https mit einem cURL ohne SSL kann Requests auf fsockopen ausweichen (selten, bewusst belassen). - **I1–I10:** I1 Preset-Detach ohne Marker-Prüfung der Affixe; I2 abgelöster Variablenwert ohne Bereinigung für den Feldtyp; I3 `from_node` mit `unfiltered_html` kopiert `loop_*` ungeprüft in Presets; I4 Lese-Tools prüfen Rechte nur in `permission()`; I5 Shortcodes und Bedingungen in Term-/Benutzer-/Menü-Schleifen laufen gegen den Beitrag mit der Term-/Benutzer-ID; I6 Font-Probelauf verrät private DNS-Auflösung; I7 Font-Confirm ist nicht an die Probelauf-SHA-256 gebunden; I8 Font-Download bis ca. 120 s je Aufruf, Temp-Reste bei Abbruch; I9 Lost Update auf `et_uploaded_fonts`; I10 `numbers`-Variablen akzeptieren `url(https://…)`. +- **Gesamtreview 4e:** M-4 `DesignLock`: im Fallback `wp_cache_flush_runtime` statt `wp_cache_flush` (kein Flush des persistenten Caches); M-5 Guide-Hinweis, dass Inhalt unter einer Administrator-Benutzer-Schleife Konten-Daten zeigen kann; `ValueCleaner::listsPrivatePosts` entflechten; `DiviDynamicSourcesAbility::page()` lädt zweimal; `DesignLock::acquire` aufteilen (Sperre nehmen, Cache verwerfen). - **Z1:** Schleifen und `loop_*`-Verweise aus Presets erkennt die Baumprüfung nicht (fail closed; auf der Website ohne Wirkung, weil Divi die Schleife aus dem rohen Dokument liest). Übernommen aus 4d und früher: diff --git a/docs/superpowers/notes/2026-10-19-etappe-4e-security-audit.md b/docs/superpowers/notes/2026-10-19-etappe-4e-security-audit.md index 0a1d07d..c50e456 100644 --- a/docs/superpowers/notes/2026-10-19-etappe-4e-security-audit.md +++ b/docs/superpowers/notes/2026-10-19-etappe-4e-security-audit.md @@ -272,11 +272,11 @@ ## Status nach der Fix-Welle (2026-10-20) -Basis: Audit-HEAD `5220876`, Stand danach `99c7aab` (`composer test`: 3496 Tests grün, `composer lint` sauber; Smokes `divi-loop`, `divi-colors-variables`, `divi-theme-fonts`, `divi-presets` grün). +Basis: Audit-HEAD `5220876`, Stand danach `8ff3b16` (`composer test`: 3499 Tests grün, `composer lint` sauber; Smokes `divi-loop`, `divi-colors-variables`, `divi-theme-fonts`, `divi-presets` grün). | Befund | Status | |---|---| -| M1 | behoben in `522fc8f` (Kettenregel für `_meta_key_`-Optionen), `3a89b15` (Warnung nur bei Inhalten, die vorher passten) | +| M1 | behoben in `522fc8f` (Kettenregel für `_meta_key_`-Optionen), `3a89b15` (Warnung nur bei Inhalten, die vorher passten), `8be2f5e` (Update: Composer und Zweitdurchlauf nach der ganzen Kette, vom Gesamtreview als umgehbar gefunden), `71ffbdb` (Warnung nennt die Kette) | | L1 | Produktentscheidung Option B, behoben in `4a8a889`, `71c2e03` (Prüfung auf dem bereinigten Wert), `6e84138` (`queryType: null` wie Divi) | | L2 | behoben in `522fc8f` | | L3 | **offen**: globale Instanzen und Kopien (`unfiltered_html`) tragen `loop_*`-Inhalt über Schleifen-Arten ohne Prüfung. Eigener kleiner Plan nötig; bis dahin als Grenze zu behandeln. | @@ -290,4 +290,4 @@ Basis: Audit-HEAD `5220876`, Stand danach `99c7aab` (`composer test`: 3496 Tests Rest-Risiken aus „Deferred items re-checked": DNS-Rebinding behoben in `20e0216` (`CURLOPT_RESOLVE`, auch für Weiterleitungsziele); `DesignLock`-Übernahmerennen behoben (L6); Lost Update zwischen Farben und Theme-Optionen behoben (L5); alle übrigen Punkte wie oben als „Akzeptabel" bewertet. Ruling Z2 (Zwei-Aufruf-Weg nur Warnung) hält jetzt, weil M1 und L2 geschlossen sind. -Re-Reviews: Opus-Re-Review (Wellen 1+2) fand L1-Umgehung und unvollständiges L5; Sonnet-Verifikation fand die `queryType: null`-Regression und das Cache-Problem bei Farben/Variablen/Presets. Beide Funde sind behoben. Die letzten beiden Commits (`6e84138`, `99c7aab`) wurden nicht noch einmal reviewt; L5 ist stattdessen per Probe gegen echtes Divi belegt. +Re-Reviews: Opus-Re-Review (Wellen 1+2) fand L1-Umgehung und unvollständiges L5; Sonnet-Verifikation fand die `queryType: null`-Regression und das Cache-Problem bei Farben/Variablen/Presets. Beide Funde sind behoben. Die Commits `6e84138` und `99c7aab` hat das Gesamtreview gelesen, ohne Befund; L5 ist zusätzlich per Probe gegen echtes Divi belegt. Das Gesamtreview fand außerdem die Umgehung von M1 im Update (behoben in `8be2f5e`).