Severity by source
AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
Primary rating from GitHub Advisory · only source for this CVE.
CVSS VectorGitHub Advisory
Lifecycle Timeline
4DescriptionGitHub Advisory
Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Prior to 2.6.4, Tandoor Recipes allows authenticated users to inject arbitrary <style> tags into recipe step instructions. The bleach.clean() sanitizer explicitly whitelists the <style> tag, causing the backend to persist and serve unsanitized CSS payloads via the API. Any client consuming instructions_markdown from the API and rendering it as HTML without additional sanitization will execute attacker-controlled CSS - enabling UI redressing, phishing overlays, visual defacement, and CSS-based data exfiltration. This vulnerability is fixed in 2.6.4.
AnalysisAI
Tandoor Recipes prior to version 2.6.4 allows authenticated users to inject malicious CSS via <style> tags in recipe step instructions due to improper sanitization by the bleach.clean() library, which whitelists <style> tags by default. Client applications rendering the instructions_markdown field from the API without additional sanitization will execute attacker-controlled CSS, enabling UI redressing, phishing overlays, visual defacement, and CSS-based data exfiltration attacks. The vulnerability requires authentication and user interaction to exploit, limiting its scope, but affects any downstream application consuming the API.
Technical ContextAI
Tandoor Recipes uses the bleach library for HTML sanitization of recipe instructions. The bleach.clean() function is designed to strip potentially dangerous HTML and JavaScript, but it explicitly whitelists certain tags including <style> for legitimate formatting purposes. However, when <style> tags contain arbitrary CSS selectors and properties, they can be leveraged for attacks including content exfiltration via CSS attribute selectors, UI element repositioning, keylogging simulation through cursor tracking, and credential harvesting through phishing overlays. The vulnerability exists in the backend API layer (instructions_markdown field) where unsanitized CSS persists in the database and is served to all API consumers. The root cause is CWE-79 (Improper Neutralization of Input During Web Page Generation), specifically a sanitizer bypass where a supposedly safe HTML element becomes a vector for CSS-based attacks. Client-side rendering frameworks that directly render API responses as HTML (without re-sanitization) become attack targets, as they trust the backend sanitization.
RemediationAI
Upgrade Tandoor Recipes to version 2.6.4 or later, which addresses the sanitization bypass. For deployment, pull the latest Docker image tagged 2.6.4 or download the release from https://github.com/TandoorRecipes/recipes/releases/tag/2.6.4. Additionally, any client application consuming the Tandoor Recipes API should implement client-side HTML sanitization (e.g., DOMPurify) before rendering the instructions_markdown field to add defense-in-depth against future sanitizer bypasses. If immediate patching is not possible, restrict API access to trusted users only and audit existing recipe instructions for injected <style> tags. Review the GitHub Security Advisory at https://github.com/TandoorRecipes/recipes/security/advisories/GHSA-9hhh-g2fc-r8x2 for detailed technical context and implementation notes.
Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Rated critical seve
Tandoor Recipes prior to 2.5.1 contains a blind server-side request forgery vulnerability in the Cookmate recipe import
Tandoor Recipes 2.0.0-alpha-1, fixed in 2.0.0-alpha-2, is vulnerable to privilege escalation. Rated medium severity (CVS
Recipes version 1.5.10 allows arbitrary HTTP requests to be made through the server. Rated medium severity (CVSS 6.5), t
In Recipes, versions 0.9.1 through 1.2.5 are vulnerable to Server Side Request Forgery (SSRF), in the “Import Recipe” fu
Tandoor Recipes versions prior to 2.6.0 allow unlimited brute-force password guessing attacks against any known username
Path traversal in Tandoor Recipes prior to 2.5.1 allows authenticated users with import permissions to read arbitrary fi
Privilege escalation in Tandoor Recipes prior to version 2.6.4 allows authenticated users with read-only shared access t
Authenticated users can modify and expose private recipes in Tandoor Recipes through broken object-level authorization i
Tandoor Recipes versions through 2.5.3 permit Host header injection attacks that enable invite link poisoning, allowing
Tandoor Recipes application versions prior to 2.6.0 expose complete database schema and access control logic through an
In Recipes, versions 0.17.0 through 1.2.5 are vulnerable to Stored Cross-Site Scripting (XSS), in the ‘Name’ field of Ke
Same weakness CWE-79 – Cross-site Scripting (XSS)
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-19390