Missing ownership check lets Ryot users overwrite others' integrations
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- High
- Impact type
- Security bypass
- Confidentiality · integrity · availability
- None · High · Low
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA. Impact type from CWE-639.
Summary
Ryot, a self-hosted personal tracking application by IgnisDa, is affected before 10.4.0. The createOrUpdateUserIntegration GraphQL mutation accepts a client-supplied integrationId without checking that the caller owns it, so a low-privileged authenticated user can overwrite another user's integration (CWE-639). An attacker who obtains the victim's integration id can transfer its ownership, overwrite its configuration, or disable it, but cannot read stored credential values. Exploitation requires knowing the victim's integration id, which is not brute-forceable.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
Description from the CNA
Ryot is a self-hosted personal tracking application. Prior to 10.4.0, the createOrUpdateUserIntegration GraphQL mutation in crates/services/user/src/integration_operations.rs allows a low-privileged authenticated user to supply another user's integrationId to create_or_update_user_integration() without an ownership check. SeaORM treats the supplied primary key as an update target, and the operation assigns the caller's user_id while replacing the targeted integration's provider_specifics and other configuration, which can transfer ownership, overwrite configuration, or disable the victim's integration. Exploitation requires obtaining the victim's non-brute-forceable integration id, and the vulnerable update does not disclose existing stored credential values. This issue is fixed in version 10.4.0.
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
Remediation
Upgrade Ryot to version 10.4.0, which fixes the issue. The sources list no advisory identifier for this fix.
Written with Claude Haiku 5.5 from the sources below · 2026-11-06
- Fix · CNA ryot (IgnisDa) Fixed in 10.4.0
Timeline
- 2026-11-06 Threatist record created from CVE-2026-77442
- 2026-11-08 Priority changed: MEDIUM → LOW
References
More IgnisDa vulnerabilities
- TI-2026-86149 Cross-tenant collection read via collectionContents in Ryot CVSS 3.1MEDIUM 4.3
Sources
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences