CVE-2026-33286 json
Graphiti Affected by Arbitrary Method Execution via Unvalidated Relationship Names
published 7mo ago modified 4mo ago also GHSA-3m5v-4xp5-gjg2 , EUVD-2026-14648
- cvss
- 9.1
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.7%
- EPSS 0.7% chance of exploitation in 30 days, percentile 51%
- public exploits
- 0
- none known
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.
Patch / fix
- rubygems graphiti 1.10.2
- graphiti graphiti 1.10.2
Is CVE-2026-33286 in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerCISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- total
- Assessed
- 7mo ago
Exploit prediction
0.66% chance of exploitation in the next 30 days, higher than 51% of all scored CVEs (FIRST EPSS, 2026-11-09).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 9.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H |
| GitHub | 3.1 | 9.1 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| rubygems | graphiti | <1.10.2 |
1.10.2 |
Affected products
- graphiti-api graphiti
Classification
- Weakness
-
- CWE-913 Improper Control of Dynamically-Managed Code Resources
References
-
github.com
/graphiti-api/graphiti/commit/ddb5ad2b69330774bd1a47935ed89a9fe4396a54
web, patch
-
github.com
/graphiti-api/graphiti/security/advisories/GHSA-3m5v-4xp5-gjg2
web, mitigation, vendor-advisory
-
github.com
/graphiti-api/graphiti/releases/tag/v1.10.2
web, product, release-notes
-
nvd.nist.gov
/vuln/detail/CVE-2026-33286
advisory
-
github.com
/graphiti-api/graphiti
package
-
github.com
/rubysec/ruby-advisory-db/blob/master/gems/graphiti/CVE-2026-33286.yml
web
Sources
- CVE List CVE-2026-33286
- GitHub Advisory GHSA-3m5v-4xp5-gjg2
- NVD CVE-2026-33286
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.