Summary
Tandoor Recipes contains an object-level authorization flaw in recipe utility endpoints that can expose private recipes to other authenticated members of the same shared Space. An attacker who knows another user's private recipe identifier may retrieve files, send content to the configured AI provider, or create and disclose external or public links.
Tandoor Recipes contains an object-level authorization flaw in recipe utility endpoints that can expose private recipes to other authenticated members of the same shared Space. An attacker who knows another user's private recipe identifier may retrieve files, send content to the configured AI provider, or create and disclose external or public links.
Affected context
The issue affects Tandoor Recipes deployments where authenticated users share a Space and can reach recipe utility endpoints such as AI import, file retrieval, external-link generation, or share-link creation. The risk arises when these endpoints retrieve a Recipe object by identifier without consistently applying the private-recipe owner's permission or the applicable sharing rules.
The issue affects Tandoor Recipes deployments where authenticated users share a Space and can reach recipe utility endpoints such as AI import, file retrieval, external-link generation, or share-link creation. The risk arises when these endpoints retrieve a Recipe object by identifier without consistently applying the private-recipe owner's permission or the applicable sharing rules.
Exploit preconditions
- Attack surface: Authenticated recipe utility API endpoints
- Required access: Membership in the relevant shared Space and knowledge of, or ability to obtain, a private recipe identifier
- Trigger point: Processing a private recipe identifier through AI import, file, external-link, or share-link functionality
- Why exploitation is possible: Object retrieval is not followed by adequate owner or sharing authorization before private files are read, transmitted, or exposed through generated links
- Attack surface: Authenticated recipe utility API endpoints
- Required access: Membership in the relevant shared Space and knowledge of, or ability to obtain, a private recipe identifier
- Trigger point: Processing a private recipe identifier through AI import, file, external-link, or share-link functionality
- Why exploitation is possible: Object retrieval is not followed by adequate owner or sharing authorization before private files are read, transmitted, or exposed through generated links
Why this happens
The underlying flaw is missing object-level authorization, mapped to CWE-639: Authorization Bypass Through User-Controlled Key. The affected endpoints accept a recipe identifier and retrieve the corresponding object, but do not reliably verify whether the requesting Space member may access that specific private recipe. This creates an insecure direct-object-reference pattern in which a valid identifier is treated as sufficient authority.
The underlying flaw is missing object-level authorization, mapped to CWE-639: Authorization Bypass Through User-Controlled Key. The affected endpoints accept a recipe identifier and retrieve the corresponding object, but do not reliably verify whether the requesting Space member may access that specific private recipe. This creates an insecure direct-object-reference pattern in which a valid identifier is treated as sufficient authority.
Potential impact
- Private recipe files and uploaded content may be disclosed to another same-Space user
- Sensitive file bytes may be transmitted to a configured external AI provider
- Attackers may generate external links exposing recipe content
- Public links may be created when Space sharing permits that behavior
- Confidentiality of household, organizational, or user-provided recipe data could be reduced
- Private recipe files and uploaded content may be disclosed to another same-Space user
- Sensitive file bytes may be transmitted to a configured external AI provider
- Attackers may generate external links exposing recipe content
- Public links may be created when Space sharing permits that behavior
- Confidentiality of household, organizational, or user-provided recipe data could be reduced
General mitigation guidance
Mitigation generally centers on enforcing authorization at every object access, rather than relying on Space membership or identifier possession alone.
Common defensive patterns include:
- Apply owner, private-recipe, and sharing-policy checks before reading, exporting, or linking any Recipe object
- Centralize object-level authorization so all utility endpoints use the same decision logic
- Treat recipe identifiers as references, not proof of access
- Minimize transmission of private files to external services and require explicit authorization for such processing
- Use least privilege for link creation and default generated links to private or non-public visibility
- Record and review access to private recipe files and link-generation operations
Mitigation generally centers on enforcing authorization at every object access, rather than relying on Space membership or identifier possession alone.
Common defensive patterns include:
- Apply owner, private-recipe, and sharing-policy checks before reading, exporting, or linking any Recipe object
- Centralize object-level authorization so all utility endpoints use the same decision logic
- Treat recipe identifiers as references, not proof of access
- Minimize transmission of private files to external services and require explicit authorization for such processing
- Use least privilege for link creation and default generated links to private or non-public visibility
- Record and review access to private recipe files and link-generation operations
How teams detect issues like this
Organizations can look for this class of issue through:
- Static analysis and review rules that flag object lookups based directly on request identifiers
- Code review checks confirming authorization occurs after object retrieval and before every sensitive operation
- Test cases using two users in the same Space, including private recipes owned by each user
- API policy tests covering file retrieval, AI submission, external-link generation, and share-link creation
- Audit monitoring for unusual access to private recipe identifiers or repeated link-generation requests
Automated application-security review tools may help identify missing object-level authorization paths, but authorization behavior should also be verified with integration tests.
Organizations can look for this class of issue through:
- Static analysis and review rules that flag object lookups based directly on request identifiers
- Code review checks confirming authorization occurs after object retrieval and before every sensitive operation
- Test cases using two users in the same Space, including private recipes owned by each user
- API policy tests covering file retrieval, AI submission, external-link generation, and share-link creation
- Audit monitoring for unusual access to private recipe identifiers or repeated link-generation requests
Automated application-security review tools may help identify missing object-level authorization paths, but authorization behavior should also be verified with integration tests.

