Skip to content
vetkitChecksChangelogDocumentation

vetkit.llm-app.llm-output-html

Text generated by a language model is inserted into the page as HTML without sanitisation. A prompt-injected response can carry script tags or event handlers (cross-site scripting), or image links that leak the conversation to another site. Text generated by a language model is rendered as HTML without sanitisation. A prompt-injected response can carry script tags or event handlers (cross-site scripting), or image links that leak the conversation to another site.

Last updated:

Suite: AI code risks

javascript, typescript

Text generated by a language model is inserted into the page as HTML without sanitisation. A prompt-injected response can carry script tags or event handlers (cross-site scripting), or image links that leak the conversation to another site.

Category: LLM SECURITY · Engine rule severity: WARNING

How to fix it

Render model output as text, or convert Markdown with a renderer that escapes raw HTML and pass the result through a sanitiser such as DOMPurify before inserting it.

References

Source: packages/engine/rules/llm-app/javascript.yml.

python

Text generated by a language model is rendered as HTML without sanitisation. A prompt-injected response can carry script tags or event handlers (cross-site scripting), or image links that leak the conversation to another site.

Category: LLM SECURITY · Engine rule severity: WARNING

How to fix it

Render model output as text (Streamlit st.markdown without unsafe_allow_html, escaped templates), or sanitise the generated HTML with an allow-list sanitiser such as nh3 or bleach before marking it safe.

References

Source: packages/engine/rules/llm-app/python.yml.

Generated from shipped rule definitions at build time. Matching is a review signal, not proof of exploitability. “generic” denotes text matching, not complete language or framework coverage. Runtime configuration and available tools affect whether a rule runs.