Skip to content

fix(sicherheit): Klartext-Helfer lässt garantiert keine Tags stehen - #347

Merged
nichtLehdev merged 1 commit into
release/1.0.0from
fix/klartext-codeql
Sep 18, 2026
Merged

nichtLehdev merged 1 commit into
release/1.0.0from
fix/klartext-codeql

Conversation

@nichtLehdev

@nichtLehdev nichtLehdev commented Sep 18, 2026 •

Copy link
Copy Markdown
Owner

CodeQL meldete am Release-PR #336 vier Warnungen hoher Stufe, alle im Klartext-Helfer aus #311 (src/lib/markdown-to-plain-text.ts) und seiner Test-Hilfsfunktion.

Befunde

  • Unvollständiges Abräumen: Tags wurden in einem einzigen Durchgang entfernt. Aus <<b>script> macht das <script> — das Entfernen selbst setzt ein neues Tag zusammen. Jetzt wird wiederholt, bis sich nichts mehr ändert.
  • Doppeltes Entschlüsseln: Entitäten wurden nach dem Abräumen und nacheinander aufgelöst. Aus &lt;script&gt; wurde hinterher wieder <script>, und &amp;lt; wurde zu < statt zu &lt;. Jetzt in einem Durchgang, danach wird noch einmal abgeräumt.

Gewicht

Der Klartext wird heute nirgends als HTML ausgeführt (iCal, Metadaten, Suche, Vorlagen). Er soll aber von sich aus frei von Tags sein, egal wo ihn jemand später einsetzt. Spitze Klammern im Text („Kinder <10 Jahre“, „a < b“) bleiben stehen.

Geprüft

Neue Tests für die Angriffsmuster (<<b>script>, verschachteltes <scr<script>ipt>, &lt;script&gt;, &amp;lt;). jest (829 Tests), eslint, tsc grün.

CodeQL meldete am Release-PR vier Warnungen hoher Stufe im Klartext-
Helfer aus #311:

- Tags wurden in einem Durchgang entfernt. Aus <<b>script> macht das
  <script> -- das Entfernen selbst setzt ein neues Tag zusammen. Jetzt
  wird wiederholt, bis sich nichts mehr aendert.
- Entitaeten wurden nach dem Abraeumen und nacheinander aufgeloest: Aus
  &lt;script&gt; wurde hinterher wieder <script>, und &amp;lt; wurde
  doppelt entschluesselt. Jetzt in einem Durchgang und danach noch einmal
  abgeraeumt.

Der Klartext wird heute nirgends als HTML ausgefuehrt (iCal, Metadaten,
Suche), soll aber von sich aus frei von Tags sein. Spitze Klammern im
Text ("Kinder <10 Jahre", "a < b") bleiben stehen. Die Test-Hilfsfunktion
folgt denselben Regeln; neue Tests fuer die Angriffsmuster.
@nichtLehdev nichtLehdev added this to the 1.0.0 milestone Sep 18, 2026
@nichtLehdev
nichtLehdev merged commit f44cae7 into release/1.0.0 Sep 18, 2026
@nichtLehdev
nichtLehdev deleted the fix/klartext-codeql branch September 18, 2026 11:57
nichtLehdev added a commit that referenced this pull request Sep 18, 2026
fix(sicherheit): Klartext-Helfer lässt garantiert keine Tags stehen
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant