CVE-2026-35488
Full vulnerability record from the local CVENow database.
Description
Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Prior to 2.6.4, RecipeBookViewSet and RecipeBookEntryViewSet use CustomIsShared as an alternative permission class, but CustomIsShared.has_object_permission() returns True for all HTTP methods — including DELETE, PUT, and PATCH — without checking request.method in SAFE_METHODS. Any user who is in the shared list of a RecipeBook can delete or overwrite it, even though shared access is semantically read-only. This vulnerability is fixed in 2.6.4.
Severity
HIGH
CVSS score
8.1
(v3.1)
Vulnerability status
Analyzed
Source identifier
Published
2026-04-07 16:16:27.003000
Last modified
2026-10-26 21:10:00.170000
View original CVE JSON
{
"id": "CVE-2026-35488",
"sourceIdentifier": "[email protected]",
"published": "2026-04-07T16:16:27.003",
"lastModified": "2026-10-26T21:10:00.170",
"vulnStatus": "Analyzed",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "Tandoor Recipes is an application for managing recipes, planning meals, and building shopping lists. Prior to 2.6.4, RecipeBookViewSet and RecipeBookEntryViewSet use CustomIsShared as an alternative permission class, but CustomIsShared.has_object_permission() returns True for all HTTP methods — including DELETE, PUT, and PATCH — without checking request.method in SAFE_METHODS. Any user who is in the shared list of a RecipeBook can delete or overwrite it, even though shared access is semantically read-only. This vulnerability is fixed in 2.6.4."
},
{
"lang": "es",
"value": "Tandoor Recipes es una aplicación para gestionar recetas, planificar comidas y crear listas de la compra. Anteriormente a la 2.6.4, RecipeBookViewSet y RecipeBookEntryViewSet usan CustomIsShared como una clase de permiso alternativa, pero CustomIsShared.has_object_permission() devuelve True para todos los métodos HTTP - incluyendo DELETE, PUT y PATCH - sin comprobar request.method en SAFE_METHODS. Cualquier usuario que esté en la lista compartida de un RecipeBook puede eliminarlo o sobrescribirlo, a pesar de que el acceso compartido es semánticamente de solo lectura. Esta vulnerabilidad se corrige en la versión 2.6.4."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "TandoorRecipes",
"product": "recipes",
"versions": [
{
"version": "< 2.6.4",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:H",
"baseScore": 8.1,
"baseSeverity": "HIGH",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "LOW",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "NONE",
"integrityImpact": "HIGH",
"availabilityImpact": "HIGH"
},
"exploitabilityScore": 2.8,
"impactScore": 5.2
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-04-08T14:48:32.807386Z",
"id": "CVE-2026-35488",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "no"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-749"
}
]
}
],
"configurations": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:tandoor:recipes:*:*:*:*:*:*:*:*",
"versionEndExcluding": "2.6.4",
"matchCriteriaId": "D29C4837-2650-4BEF-A332-657E7D593877"
}
]
}
]
}
],
"references": [
{
"url": "https://github.com/TandoorRecipes/recipes/releases/tag/2.6.4",
"source": "[email protected]",
"tags": [
"Product",
"Release Notes"
]
},
{
"url": "https://github.com/TandoorRecipes/recipes/security/advisories/GHSA-xvmf-cfrq-4j8f",
"source": "[email protected]",
"tags": [
"Exploit",
"Mitigation",
"Vendor Advisory"
]
}
]
}