Security: Jinja2 Template Injection in kontext.md-Generierung #65
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Beschreibung
In
backend/services/preparation_engine.py:203wird die Ticket-Beschreibung unescaped in ein Jinja2-Template gerendert. Ein Angreifer kann über ein manipuliertes Odoo-Ticket Jinja2-Expressions einschleusen (z.B.{{ config }},{{ ''.__class__.__mro__ }}) und damit Code auf dem Server ausführen.Hintergrund
Die kontext.md wird aus Ticket-Daten generiert. Wenn die Beschreibung Jinja2-Syntax enthält, wird diese interpretiert statt als Text behandelt. Dies ist ein separater Angriffsvektor zu Prompt Injection (#21).
Akzeptanzkriterien
jinja2.Markup.escape()){{ 7*7 }}in Beschreibung wird als Literaltext gerendert{% import os %}{{ os.system('id') }}wird sicher behandeltTechnische Hinweise
backend/services/preparation_engine.py:203jinja2.sandbox.SandboxedEnvironmentoder String-Replace statt Jinja2Aufwand: S