Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate as household member
-
ExploitSubmit crafted recipe-import URL with "KitchenOwl" title
-
ExecutionRedirect/DNS-rebind unfiltered follow-up fetch to loopback or metadata
-
ImpactExpose internal service response
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK
2 techniques across 2 tactics: Initial Access, Credential Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires an authenticated KitchenOwl household member (PR:L) to invoke the recipe-import/scrape feature with an attacker-supplied URL. The attacker must host a page whose HTML title is "KitchenOwl" at a URL path matching /recipe/<id>, which causes the local-instance detection to trigger a second requests.get() to api_url + "/recipe/" + recipe_id that - unlike the first fetch - bypasses the IP filter; that follow-up request must then be redirectable or DNS-rebindable to loopback, private-network, or cloud-metadata addresses. Limiting factors: a valid household account is mandatory (no anonymous exploitation), the attacker must control an externally reachable page, impact is confined to reading responses from reachable internal services (no write/RCE), and only KitchenOwl versions through 0.7.10 are affected - patched builds route the call through the hardened request_manager. |
| Impact | This is a genuine but modest-priority issue, not a top-tier emergency. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) confirms network-reachable exploitation requiring authentication (PR:L - an existing household member), with no user interaction. Impact is limited: VC:L and VI:N/VA:N mean only partial confidentiality exposure (reading internal service responses), with no integrity or availability impact and no subsequent-system scope change (SC:N/SI:N/SA:N), consistent with a read-oriented SSRF. No EPSS score was provided, so exploitation probability cannot be quantified. The vulnerability is NOT in CISA KEV and no public exploit code is referenced, so there is no evidence of active exploitation - the finding originates from VulnCheck research with a vendor patch already available. The authentication requirement (PR:L) meaningfully constrains the attacker population to trusted household members, which lowers real-world risk below what the CWE-918 SSRF class might suggest in isolation. Net: a valid, patch-worthy defense-in-depth flaw, but low-to-moderate urgency absent any exploitation signal. |
| Exploit ScenarioDerived | An authenticated KitchenOwl household member submits a recipe-import URL pointing to an attacker-controlled page whose HTML title is "KitchenOwl" and whose path matches /recipe/<id>. This tricks the backend into treating it as a KitchenOwl instance and issuing a second, unfiltered requests.get() call that the attacker redirects or DNS-rebinds to loopback, private-network, or cloud-metadata (e.g., 169.254.169.254) addresses, returning the internal response to the attacker. No public exploit identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 19, 2026
Server-side request forgery in KitchenOwl through 0.7.10 lets an authenticated household member abuse the recipe-import feature to make the backend fetch attacker-influenced URLs a second time without IP filtering, potentially reaching loopback, private-network, or cloud-metadata services and reading their responses. The attacker must host a publicly reachable page titled "KitchenOwl" whose path matches /recipe/<id> so that local-instance detection fires and the follow-up requests.get() runs outside the hardened client. Impact is limited to information disclosure from internal services reachable by the server (no write, no code execution), and exploitation requires a valid household account; no public exploit code was identified at time of analysis and the issue is not in CISA KEV.
RemediationAI
Update KitchenOwl past 0.7.10 to a build that includes upstream commit 292f6f50a8e8bfa487292e9fd0ea0c54a860c28f (https://github.com/TomBursch/kitchenowl/commit/292f6f50a8e8bfa487292e9fd0ea0c54a860c28f), which routes the second recipe fetch through the hardened request_manager so loopback, private, and link-local addresses are blocked; patch availability is confirmed by the vendor, though a specific tagged release number is not independently confirmed in the supplied data, so verify the changelog before upgrading. If immediate upgrade is not possible, compensating controls include: disabling or restricting the recipe-import/scrape feature for untrusted household members (side effect: users lose URL-based recipe import), and applying network egress policy on the KitchenOwl container/host that denies outbound traffic to 127.0.0.0/8, RFC1918 ranges, link-local 169.254.0.0/16 (including the 169.254.169.254 cloud metadata endpoint), and other internal subnets (side effect: may break legitimate integrations that rely on internal URLs, and must be maintained as new internal services appear). Additionally, treat household membership as a privileged trust boundary and audit who can be invited, since exploitation requires an authenticated account.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
KitchenOwl is a self-hosted household/recipe management application with a Python (Flask-style) backend; the vulnerable logic lives in backend/app/service/recipe_scraping.py, in the scrapeLocal flow used by the recipe-import feature. The root cause is CWE-918 (Server-Side Request Forgery): the application already uses the requests_hardened client (request_manager) for the initial fetch of a user-submitted URL, which filters loopback, link-local, and private address ranges. However, when the fetched page's HTML title is detected as "KitchenOwl" and the URL matches a /recipe/<id> pattern, the code derives api_url from that attacker-controlled URL and issues a follow-up requests.get() using the plain requests library, which performs no IP filtering. Because that second request is a raw requests call, redirects or DNS rebinding can steer it to internal addresses. The upstream fix replaces the raw call with request_manager.send_request("GET", ...) inside a try/except that returns None on failure, so the second fetch inherits the same hardened IP filtering as the first, and adds regression tests (backend/tests/service/test_recipe_scraping.py) that assert an internal loopback server is never reached.
Know when Kitchenowl gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Authenticated household member needed (PR:L); network-reachable with no user interaction (AV:N/UI:N); SSRF yields limited read-only confidentiality exposure of internal services (C:L), no integrity/availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
KitchenOwl through 0.7.10 contains a server-side request forgery vulnerability in recipe import that allows authenticated household members to bypass IP filtering via a second unfiltered fetch. Attackers can host a page titled KitchenOwl at a URL matching /recipe/<id>. The follow-up requests.get() call can then be redirected or DNS-rebound to loopback, private-network, or cloud-metadata addresses, exposing internal services.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.
EUVD-2026-104319
GHSA-h74m-472f-x5gj
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB