{"id":"CVE-2026-76647","state":"PUBLISHED","title":"Leantime JSON-RPC API contains a missing authorization vulnerability","description":"Leantime JSON-RPC API through version 3.9.0 contains a missing authorization vulnerability in the JSON-RPC dispatcher in app/Domain/Api/Controllers/Jsonrpc.php. The dispatcher does not enforce authorization before invoking service-layer methods, allowing an authenticated user to call methods or act on resources outside their intended permissions. For example, the editOwn method accepts a user-supplied user ID without verifying that it belongs to the caller, allowing an attacker to modify another user's account and set a new password, resulting in account takeover. This vulnerability is distinct from CVE-2026-59712 and CVE-2026-15509 because the root cause is the lack of centralized authorization enforcement in the JSON-RPC dispatcher rather than the behavior of an individual exposed method.","publishedAt":"2026-08-19T19:26:46.137Z","updatedAt":"2026-08-27T15:49:51.556Z","severity":{"score":8.8,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","source":"CISA-ADP"},"assigner":"certcc","products":["Leantime JSON-RPC API"],"affected":[{"vendor":"Leantime","product":"JSON-RPC API","versions":[{"version":"0","status":"affected","lessThanOrEqual":"3.8.0","versionType":"custom"}]}],"references":["https://vokecyber.com/research/leantime-jsonrpc-editown-account-takeover","https://vokecyber.com/blog/leantime-jsonrpc-editown-account-takeover","https://leantime.io/unlocking-leantimes-power-a-guide-to-the-json-rpc-api/"],"weaknesses":["CWE-862","CWE-200","CWE-639"],"ingestedAt":"2026-10-29T20:12:58.252Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/76xxx/CVE-2026-76647.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-76647","state":"PUBLISHED","datePublished":"2026-08-19T19:26:46.137Z","dateUpdated":"2026-08-27T15:49:51.556Z","assignerShortName":"certcc","assignerOrgId":"37e5125f-f79b-445b-8fad-9564f167944b","dateReserved":"2026-08-19T15:24:24.418Z"},"containers":{"cna":{"title":"Leantime JSON-RPC API contains a missing authorization vulnerability","descriptions":[{"lang":"en","value":"Leantime JSON-RPC API through version 3.9.0 contains a missing authorization vulnerability in the JSON-RPC dispatcher in app/Domain/Api/Controllers/Jsonrpc.php. The dispatcher does not enforce authorization before invoking service-layer methods, allowing an authenticated user to call methods or act on resources outside their intended permissions. For example, the editOwn method accepts a user-supplied user ID without verifying that it belongs to the caller, allowing an attacker to modify another user's account and set a new password, resulting in account takeover. This vulnerability is distinct from CVE-2026-59712 and CVE-2026-15509 because the root cause is the lack of centralized authorization enforcement in the JSON-RPC dispatcher rather than the behavior of an individual exposed method."}],"affected":[{"vendor":"Leantime","product":"JSON-RPC API","versions":[{"version":"0","status":"affected","lessThanOrEqual":"3.8.0","versionType":"custom"}]}],"references":[{"url":"https://vokecyber.com/research/leantime-jsonrpc-editown-account-takeover"},{"url":"https://vokecyber.com/blog/leantime-jsonrpc-editown-account-takeover"},{"url":"https://leantime.io/unlocking-leantimes-power-a-guide-to-the-json-rpc-api/"}],"problemTypes":[{"descriptions":[{"lang":"en","description":"CWE-862 Missing Authorization"}]},{"descriptions":[{"lang":"en","description":"CWE-200 Exposure of Sensitive Information to an Unauthorized Actor"}]},{"descriptions":[{"lang":"en","description":"CWE-639 Authorization Bypass Through User-Controlled Key"}]}],"providerMetadata":{"shortName":"certcc","orgId":"37e5125f-f79b-445b-8fad-9564f167944b","dateUpdated":"2026-08-27T15:35:09.876Z"},"source":{"discovery":"UNKNOWN"},"x_generator":{"engine":"VINCE 3.0.45","env":"prod","origin":"https://cveawg.mitre.org/api/cve/CVE-2026-76647"}},"adp":[{"title":"CISA ADP Vulnrichment","references":[{"url":"https://vokecyber.com/research/leantime-jsonrpc-editown-account-takeover","tags":["exploit"]}],"metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":8.8,"attackVector":"NETWORK","baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","integrityImpact":"HIGH","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"LOW","confidentialityImpact":"HIGH"}},{"other":{"type":"ssvc","content":{"timestamp":"2026-08-27T15:49:45.883985Z","id":"CVE-2026-76647","options":[{"Exploitation":"poc"},{"Automatable":"no"},{"Technical Impact":"total"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-862","type":"CWE","lang":"en","description":"CWE-862 Missing Authorization"}]},{"descriptions":[{"cweId":"CWE-200","type":"CWE","lang":"en","description":"CWE-200 Exposure of Sensitive Information to an Unauthorized Actor"}]},{"descriptions":[{"cweId":"CWE-639","type":"CWE","lang":"en","description":"CWE-639 Authorization Bypass Through User-Controlled Key"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-08-27T15:49:51.556Z"}}]}}}