{"id":"CVE-2026-19579","state":"PUBLISHED","title":"Snipe-IT Checkout Request Cancellation IDOR","description":"Snipe-IT before 8.6.0 contains an authorization bypass (insecure direct object reference) in the asset checkout-request cancellation endpoint. The cancel_by_admin and requestingUser values are read from user-controlled URL path segments and used without a server-side authorization check, so any authenticated, low-privileged user can supply a non-empty cancel_by_admin value to bypass the request-ownership check and cancel another user's pending checkout request. Because asset and user identifiers are sequential integers, an attacker can enumerate them to cancel every pending checkout request, disrupting the asset-request workflow. This is fixed in Snipe-IT 8.6.0.","publishedAt":"2026-08-11T20:25:02.420Z","updatedAt":"2026-08-11T21:05:08.782Z","severity":{"score":5.3,"label":"Medium","version":"4.0","vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N","source":"tenable"},"assigner":"tenable","products":["Grokability Snipe-IT"],"affected":[{"vendor":"Grokability","product":"Snipe-IT","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"8.6.0","versionType":"semver"}]}],"references":["https://github.com/snipe/snipe-it/releases/tag/v8.6.0","https://www.tenable.com/security/research/tra-2026-54"],"weaknesses":["CWE-639","CWE-807"],"ingestedAt":"2026-10-29T20:11:10.572Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/19xxx/CVE-2026-19579.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-19579","state":"PUBLISHED","datePublished":"2026-08-11T20:25:02.420Z","dateUpdated":"2026-08-11T21:05:08.782Z","assignerShortName":"tenable","assignerOrgId":"5ac1ecc2-367a-4d16-a0b2-35d495ddd0be","dateReserved":"2026-08-11T20:14:53.886Z"},"containers":{"cna":{"title":"Snipe-IT Checkout Request Cancellation IDOR","descriptions":[{"lang":"en","value":"Snipe-IT before 8.6.0 contains an authorization bypass (insecure direct object reference) in the asset checkout-request cancellation endpoint. The cancel_by_admin and requestingUser values are read from user-controlled URL path segments and used without a server-side authorization check, so any authenticated, low-privileged user can supply a non-empty cancel_by_admin value to bypass the request-ownership check and cancel another user's pending checkout request. Because asset and user identifiers are sequential integers, an attacker can enumerate them to cancel every pending checkout request, disrupting the asset-request workflow. This is fixed in Snipe-IT 8.6.0."}],"affected":[{"vendor":"Grokability","product":"Snipe-IT","defaultStatus":"unaffected","versions":[{"version":"0","status":"affected","lessThan":"8.6.0","versionType":"semver"}]}],"references":[{"url":"https://github.com/snipe/snipe-it/releases/tag/v8.6.0"},{"url":"https://www.tenable.com/security/research/tra-2026-54"}],"metrics":[{"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}],"cvssV4_0":{"attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"LOW","userInteraction":"NONE","vulnConfidentialityImpact":"NONE","subConfidentialityImpact":"NONE","vulnIntegrityImpact":"LOW","subIntegrityImpact":"NONE","vulnAvailabilityImpact":"LOW","subAvailabilityImpact":"NONE","exploitMaturity":"NOT_DEFINED","Safety":"NOT_DEFINED","Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","valueDensity":"NOT_DEFINED","vulnerabilityResponseEffort":"NOT_DEFINED","providerUrgency":"NOT_DEFINED","version":"4.0","baseSeverity":"MEDIUM","baseScore":5.3,"vectorString":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N"}},{"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}],"cvssV3_1":{"version":"3.1","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"NONE","integrityImpact":"LOW","availabilityImpact":"LOW","baseSeverity":"MEDIUM","baseScore":5.4,"vectorString":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:L"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-639","lang":"en","description":"CWE-639 Authorization bypass through User-Controlled key","type":"CWE"}]},{"descriptions":[{"cweId":"CWE-807","lang":"en","description":"CWE-807 Reliance on untrusted inputs in a security decision","type":"CWE"}]}],"providerMetadata":{"shortName":"tenable","orgId":"5ac1ecc2-367a-4d16-a0b2-35d495ddd0be","dateUpdated":"2026-08-11T20:45:11.879Z"},"datePublic":"2026-08-11T20:15:00.000Z","impacts":[{"capecId":"CAPEC-1","descriptions":[{"lang":"en","value":"CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs"}]},{"capecId":"CAPEC-122","descriptions":[{"lang":"en","value":"CAPEC-122 Privilege Abuse"}]}],"credits":[{"lang":"en","value":"Apostolos Karampelas with Tenable","type":"finder"}],"source":{"discovery":"UNKNOWN"},"x_generator":{"engine":"Vulnogram 1.0.4"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2026-08-11T21:05:00.367130Z","id":"CVE-2026-19579","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-08-11T21:05:08.782Z"}}]}}}