CVE-2026-33286: CWE-913: Improper Control of Dynamically-Managed Code Resources in graphiti-api graphiti
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.
AI Analysis
Technical Summary
Graphiti is a Ruby framework that exposes models via a JSON:API-compliant interface. Versions before 1.10.2 contain a critical vulnerability (CVE-2026-33286) classified under CWE-913 (Improper Control of Dynamically-Managed Code Resources). The flaw arises in the `Graphiti::Util::ValidationResponse#all_valid?` method, which recursively calls `model.send(name)` using relationship names extracted directly from user-supplied JSONAPI payloads without validating these names against the resource's configured sideloads. This lack of validation enables an attacker to craft malicious JSONAPI write requests (create, update, delete) containing arbitrary relationship names that cause the framework to invoke any public method on the model instance, its class, or associated models. Because the method invocation is unrestricted, attackers can execute destructive operations or manipulate data integrity. The vulnerability requires no authentication or user interaction and can be exploited remotely if write endpoints are exposed to untrusted users. The issue was addressed in Graphiti version 1.10.2 by adding proper validation and restricting method invocation. Until upgrading, mitigations include restricting access to write endpoints, enforcing strong authentication and authorization, and using Rails strong parameters to whitelist valid inputs.
Potential Impact
The vulnerability allows attackers to execute arbitrary public methods on application models without authentication, leading to severe integrity and availability impacts. Attackers can perform unauthorized data modifications, deletions, or other destructive actions, potentially compromising application logic and data consistency. Since the flaw affects the core write functionality of Graphiti, any web application exposing these endpoints to untrusted users is at risk. This can result in data corruption, loss, or denial of service. The critical CVSS score of 9.1 reflects the high impact and ease of exploitation. Organizations relying on Graphiti for API endpoints may face significant operational disruption, reputational damage, and compliance violations if exploited.
Mitigation Recommendations
1. Upgrade Graphiti to version 1.10.2 or later immediately to apply the official patch that fixes the validation flaw. 2. Restrict access to Graphiti write endpoints (create, update, delete) so they are not exposed to untrusted or unauthenticated users. 3. Implement strong authentication and authorization controls on all write operations to ensure only authorized users can perform modifications. 4. Use Rails strong parameters or equivalent mechanisms to whitelist and validate all incoming JSONAPI payload parameters, preventing arbitrary method names from being processed. 5. Conduct thorough code reviews and testing to verify that no other dynamic method invocations are exposed to user input without validation. 6. Monitor application logs for unusual or unexpected method calls or payloads targeting Graphiti endpoints. 7. Consider implementing Web Application Firewalls (WAFs) with custom rules to detect and block suspicious JSONAPI payloads attempting to exploit this vulnerability.
Affected Countries
United States, Germany, United Kingdom, Canada, Australia, France, Netherlands, Japan, South Korea, India
CVE-2026-33286: CWE-913: Improper Control of Dynamically-Managed Code Resources in graphiti-api graphiti
Description
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.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
Graphiti is a Ruby framework that exposes models via a JSON:API-compliant interface. Versions before 1.10.2 contain a critical vulnerability (CVE-2026-33286) classified under CWE-913 (Improper Control of Dynamically-Managed Code Resources). The flaw arises in the `Graphiti::Util::ValidationResponse#all_valid?` method, which recursively calls `model.send(name)` using relationship names extracted directly from user-supplied JSONAPI payloads without validating these names against the resource's configured sideloads. This lack of validation enables an attacker to craft malicious JSONAPI write requests (create, update, delete) containing arbitrary relationship names that cause the framework to invoke any public method on the model instance, its class, or associated models. Because the method invocation is unrestricted, attackers can execute destructive operations or manipulate data integrity. The vulnerability requires no authentication or user interaction and can be exploited remotely if write endpoints are exposed to untrusted users. The issue was addressed in Graphiti version 1.10.2 by adding proper validation and restricting method invocation. Until upgrading, mitigations include restricting access to write endpoints, enforcing strong authentication and authorization, and using Rails strong parameters to whitelist valid inputs.
Potential Impact
The vulnerability allows attackers to execute arbitrary public methods on application models without authentication, leading to severe integrity and availability impacts. Attackers can perform unauthorized data modifications, deletions, or other destructive actions, potentially compromising application logic and data consistency. Since the flaw affects the core write functionality of Graphiti, any web application exposing these endpoints to untrusted users is at risk. This can result in data corruption, loss, or denial of service. The critical CVSS score of 9.1 reflects the high impact and ease of exploitation. Organizations relying on Graphiti for API endpoints may face significant operational disruption, reputational damage, and compliance violations if exploited.
Mitigation Recommendations
1. Upgrade Graphiti to version 1.10.2 or later immediately to apply the official patch that fixes the validation flaw. 2. Restrict access to Graphiti write endpoints (create, update, delete) so they are not exposed to untrusted or unauthenticated users. 3. Implement strong authentication and authorization controls on all write operations to ensure only authorized users can perform modifications. 4. Use Rails strong parameters or equivalent mechanisms to whitelist and validate all incoming JSONAPI payload parameters, preventing arbitrary method names from being processed. 5. Conduct thorough code reviews and testing to verify that no other dynamic method invocations are exposed to user input without validation. 6. Monitor application logs for unusual or unexpected method calls or payloads targeting Graphiti endpoints. 7. Consider implementing Web Application Firewalls (WAFs) with custom rules to detect and block suspicious JSONAPI payloads attempting to exploit this vulnerability.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-03-18T18:55:47.426Z
- Cvss Version
- 3.1
- State
- PUBLISHED
Threat ID: 69c1e5e3f4197a8e3bb3f18b
Added to database: 3/24/2026, 1:16:19 AM
Last enriched: 3/24/2026, 1:30:52 AM
Last updated: 5/8/2026, 4:20:07 AM
Views: 114
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.