{"id":"CVE-2026-58660","summary":"Kanboard BoardAjaxController Missing Ownership Check via Drag-and-Drop","details":"Kanboard through 1.2.52, fixed in commit 564cc30, BoardAjaxController save() method (used by the kanban board drag-and-drop endpoint) validates the caller's role on the attacker-supplied project_id but never verifies that the supplied task_id actually belongs to that project. Because task identifiers are sequential integers shared across the entire instance, any authenticated user who is a member of at least one project can enumerate and move (corrupt/hide) tasks belonging to any other project on the same instance, including private projects they have no membership or role on.","modified":"2026-07-17T03:48:04.775263588Z","published":"2026-07-15T17:03:17.834Z","database_specific":{"cna_assigner":"VulnCheck","cwe_ids":["CWE-639"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/58xxx/CVE-2026-58660.json"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/58xxx/CVE-2026-58660.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-58660"},{"type":"ADVISORY","url":"https://www.vulncheck.com/advisories/kanboard-boardajaxcontroller-missing-ownership-check-via-drag-and-drop"},{"type":"REPORT","url":"https://github.com/kanboard/kanboard/pull/5853"},{"type":"FIX","url":"https://github.com/kanboard/kanboard/commit/564cc30e1e360959572e01e158734d9475c05903"},{"type":"PACKAGE","url":"https://github.com/kanboard/kanboard"},{"type":"EVIDENCE","url":"https://github.com/kanboard/kanboard/issues/5852"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/kanboard/kanboard","events":[{"introduced":"0"},{"fixed":"1a9a32da1118a095325ecec50d4c0a784dcd46f8"},{"fixed":"564cc30e1e360959572e01e158734d9475c05903"}],"database_specific":{"source":["DESCRIPTION","REFERENCES"],"extracted_events":[{"introduced":"0"},{"fixed":"1.2.52"}]}}],"versions":["v1.2.52","v1.2.51","v1.2.50","v1.2.49","v1.2.47","v1.2.46","v1.2.45","v1.2.44","v1.2.43","v1.2.42","v1.2.41","v1.2.40","v1.2.39","v1.2.38","v1.2.37","v1.2.36","v1.2.35","v1.2.34","v1.2.33","v1.2.32","v1.2.31","v1.2.30","v1.2.29","v1.2.28","v1.2.27","v1.2.26","v1.2.25","v1.2.24","v1.2.23","v1.2.22","v1.2.21","v1.2.20","v1.2.19","v1.2.18","v1.2.17","v1.2.16","v1.2.15","v1.2.14","v1.2.13","v1.2.12","v1.2.11","v1.2.10","v1.2.9","v1.2.8","v1.2.7","v1.2.6","v1.2.5","v1.2.4","v1.2.3","v1.2.2","v1.2.1","v1.2.0","v1.1.1","v1.1.0","v1.0.48","v1.0.46","v1.0.45","v1.0.44","v1.0.43","v1.0.42","v1.0.41","v1.0.40","v1.0.39","v1.0.38","v1.0.37","v1.0.36","v1.0.35","v1.0.34","v1.0.33","v1.0.32","v1.0.31","v1.0.30","v1.0.29","v1.0.28","v1.0.27","v1.0.26","v1.0.20","v1.0.19","v1.0.18","v1.0.17","v1.0.16","v1.0.15","v1.0.14","v1.0.13","v1.0.12","v1.0.11","v1.0.10","v1.0.9","v1.0.8","v1.0.7","v1.0.6","v1.0.5","v1.0.4","v1.0.3","v1.0.2","v1.0.1","v1.0.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-58660.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N"}]}