CVE-2026-60008: Gitea Jupyter notebook UI redress through CSS class injection
Gitea's Jupyter notebook renderer inserts the notebook's languageinfo.name metadata into a CSS class attribute while disabling sanitization and rendering directly in the main document without an iframe sandbox. A malicious repository notebook can supply multiple CSS classes that create a viewport-covering overlay and intercept clicks when another user views it. The reported impact is UI redress; script execution was not demonstrated.
Affected Software
Event History
Frequently Asked Questions
What must an attacker do to exploit this issue?
An attacker must provide a malicious Jupyter notebook in a repository, with crafted language_info.name metadata that injects multiple CSS classes. The victim must then view that notebook through Gitea's notebook renderer.
What is the demonstrated impact on a user viewing a malicious notebook?
The injected CSS classes can create a viewport-covering overlay that intercepts the viewer's clicks, enabling UI redress. Script execution was not demonstrated.
Which notebook content should be treated as suspicious during triage?
Review Jupyter notebooks from untrusted repositories for unusual or crafted language_info.name metadata, particularly values containing multiple CSS class names. Such metadata is used in the rendered document's CSS class attribute.