{"id":"CVE-2026-127086","kind":"vulnerability","aliases":["CVE-2026-127086"],"related":[],"title":"Ryot: authenticated users can take over other users' collections","description":"Ryot before 10.5.6 contains an authorization bypass vulnerability that allows authenticated users to take over other users' collections by supplying an updateId to the createOrUpdateCollection GraphQL mutation. Attackers who know a collection id can trigger ownership reassignment without checks, read its items, rewrite metadata, and evict the original owner and collaborators.","summary":"Ryot before 10.5.6 lets any logged-in user pass an updateId to the createOrUpdateCollection GraphQL mutation and reassign a collection they do not own. An attacker who knows a collection id can read its items, rewrite its metadata, and remove the original owner and collaborators.","severity":"medium","cvss":6.3,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["graphql","package","ryot","self-hosted"],"not_affected_if":["single-user-instance","version-10.5.6-or-later"],"how_to_check":"- Check the Ryot version in use; it is affected below `10.5.6`.\n- Confirm whether the instance is reachable by users who have accounts, since an account is needed.","fix":"- Ryot: upgrade to `10.5.6` or later.","status":"open","published_at":"2026-11-13T10:18:05+00:00","first_seen_at":"2026-11-13T10:47:29+00:00","triaged_at":"2026-11-13T10:55:16+00:00","updated_at":"2026-11-13T10:55:16+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-11-13T10:55:16Z","model":"claude-haiku-5-5","output":{"fix":"- Ryot: upgrade to `10.5.6` or later.","reach":"network","title":"Ryot: authenticated users can take over other users' collections","impact":"medium","summary":"Ryot before 10.5.6 lets any logged-in user pass an updateId to the createOrUpdateCollection GraphQL mutation and reassign a collection they do not own. An attacker who knows a collection id can read its items, rewrite its metadata, and remove the original owner and collaborators.","audience":"businesses","category":"package","nicknames":[],"who_cares":["ryot","self-hosted","graphql"],"confidence":0.7,"fix_status":"available","needs_auth":"yes","worst_case":"Attacker takes over collections, reads items, and evicts owners","analyst_note":"product_name is empty because the registry for Ryot is not stated in the input; the package ecosystem is unknown.","how_to_check":"- Check the Ryot version in use; it is affected below `10.5.6`.\n- Confirm whether the instance is reachable by users who have accounts, since an account is needed.","plain_action":"","product_name":"","needs_analyst":false,"not_affected_if":["version-10.5.6-or-later","single-user-instance"],"who_is_affected":"Self-hosted Ryot instances running a version below 10.5.6 where users have accounts. The attacker must be logged in and must know a target collection id. Instances on 10.5.6 or later are not affected.","user_interaction":"no","product_ecosystem":"","needs_special_setup":"no","severity_if_unknown":"medium"},"cost_usd":0.000726,"input_tokens":4642,"output_tokens":524,"severity_before":"medium"},"analyst_status":null,"analyst_note":null,"search":"'-127086':12A,15A '-2026':11A,14A '10.5.6':24B,70C 'allow':77C 'attack':48B,95C 'authent':2A,78C 'author':73C 'bypass':74C 'check':106C 'collabor':67B,118C 'collect':9A,42B,52B,85C,99C 'contain':71C 'createorupdatecollect':36B,92C 'cve':10A,13A 'evict':113C 'graphql':16B,37B,93C 'host':21B 'id':53B,100C 'item':57B,109C 'know':50B,97C 'let':25B 'log':28B 'logged-in':27B 'metadata':60B,111C 'mutat':38B,94C 'origin':64B,115C 'owner':65B,116C 'ownership':103C 'packag':17B 'pass':31B 'read':55B,107C 'reassign':40B,104C 'remov':62B 'rewrit':58B,110C 'ryot':1A,18B,22B,68C 'self':20B 'self-host':19B 'suppli':87C 'take':5A,81C 'trigger':102C 'updateid':33B,89C 'user':3A,8A,30B,79C,84C 'vulner':75C 'without':105C","nicknames":[],"mitigations":[],"who_affected":"Self-hosted Ryot instances running a version below 10.5.6 where users have accounts. The attacker must be logged in and must know a target collection id. Instances on 10.5.6 or later are not affected.","tier":"C","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"businesses","plain_action":null,"pkeys":[],"ptokens":[],"labels":["graphql","medium","package","ryot","selfhosted"],"campaign_type":null,"search_a":"'-127086':12A,15A '-2026':11A,14A 'authent':2A 'collect':9A 'cve':10A,13A 'ryot':1A 'take':5A 'user':3A,8A","search_b":"'10.5.6':24B 'attack':48B 'collabor':67B 'collect':42B,52B 'createorupdatecollect':36B 'graphql':16B,37B 'host':21B 'id':53B 'item':57B 'know':50B 'let':25B 'log':28B 'logged-in':27B 'metadata':60B 'mutat':38B 'origin':64B 'owner':65B 'packag':17B 'pass':31B 'read':55B 'reassign':40B 'remov':62B 'rewrit':58B 'ryot':18B,22B 'self':20B 'self-host':19B 'updateid':33B 'user':30B","search_c":"'10.5.6':70C 'allow':77C 'attack':95C 'authent':78C 'author':73C 'bypass':74C 'check':106C 'collabor':118C 'collect':85C,99C 'contain':71C 'createorupdatecollect':92C 'evict':113C 'graphql':93C 'id':100C 'item':109C 'know':97C 'metadata':111C 'mutat':94C 'origin':115C 'owner':116C 'ownership':103C 'read':107C 'reassign':104C 'rewrit':110C 'ryot':68C 'suppli':87C 'take':81C 'trigger':102C 'updateid':89C 'user':79C,84C 'vulner':75C 'without':105C","cause_entry":null,"cause_path":null,"disclosures_checked_at":null,"first_public_at":"2026-11-01T05:26:46+00:00","kev":null,"cvss_vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","cvss_by":"disclosure@vulncheck.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-127086","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-127086","severity":null,"published_at":"2026-11-13T10:18:05+00:00","modified_at":"2026-11-13T10:18:05+00:00","first_seen_at":"2026-11-13T10:47:29+00:00","fetched_at":"2026-11-13T10:47:29+00:00","note":null}],"documents":[{"id":90730,"url":"https://github.com/IgnisDa/ryot/commit/822cc6701b46aedbc436abbf02e7efb94afd5f05","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":90731,"url":"https://github.com/IgnisDa/ryot/releases/tag/v10.5.6","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":145304,"url":"https://github.com/IgnisDa/ryot/security/advisories/GHSA-9v6w-g6x6-p4m5","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-11-01T05:26:46+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"},{"id":145305,"url":"https://www.vulncheck.com/advisories/ryot-before-10.5.6-authorization-bypass-via-createorupdatecollection-updateid","title":"Third-party advisory: www.vulncheck.com","kind":"advisory","source":"nvd","publisher":"research","text":null,"published_at":null,"relation":"advisory","confidence":null,"note":"Third-party advisory: www.vulncheck.com"}],"disclosures":[],"exploit_sources":[],"notice":"Free to read, with fair use of about 60 pages a minute. For higher limits or API access: sales@infrastack.ai"}