Graphiti Affected by Arbitrary Method Execution via Unvalidated Relationship Names
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Impact type
- —
- Confidentiality · integrity · availability
- None · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.
Summary
Graphiti is a framework that sits on top of models and exposes them via a JSON:API-compliant interface. Versions prior to 1.10.2 have an arbitrary method execution vulnerability that affects Graphiti's JSONAPI write functionality. An attacker can craft a malicious JSONAPI payload with arbitrary relationship names to invoke any public method on the underlying model instance, class or its associations. Any application exposing Graphiti write endpoints (create/update/delete) to untrusted users is affected. The `Graphiti::Util::ValidationResponse#all_valid?` method recursively calls `model.send(name)` using relationship names taken directly from user-supplied JSONAPI payloads, without validating them against the resource's configured sideloads. This allows an attacker to potentially run any public method on a given model instance, on the instance class or associated instances or classes, including destructive operations. This is patched in Graphiti v1.10.2. Users should upgrade as soon as possible. Some workarounds are available. Ensure Graphiti write endpoints (create/update) are not accessible to untrusted users and/or apply strong authentication and authorization checks before any write operation is processed, for example use Rails strong parameters to ensure only valid parameters are processed.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- Yes
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| graphiti-api | graphiti | before 1.10.2 | 1.10.2 | Patch available | CNA |
| — | graphiti (RubyGems) | before 1.10.2 | 1.10.2 | Patch available | GHSA-3m5v-4xp5-gjg2 |
- graphiti Vendorgraphiti-api Affected before 1.10.2 Fixed in 1.10.2 Patch available CNA
- graphiti (RubyGems) Vendor— Affected before 1.10.2 Fixed in 1.10.2 Patch available GHSA-3m5v-4xp5-gjg2
Remediation
- Fix · CNA graphiti (graphiti-api) Fixed in 1.10.2
- Fix · GHSA-3m5v-4xp5-gjg2 graphiti (RubyGems) Fixed in 1.10.2 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-33286
- 2026-10-03 Alias added: GHSA-3m5v-4xp5-gjg2
References
Advisory 2
Sources
- CVE-2026-33286 · CVE Program
- CVE-2026-33286 · NVD
- FIRST EPSS
- GHSA-3m5v-4xp5-gjg2 · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences