Without targeted testing, JSON-RPC methods can expose injection flaws, stored XSS, SSRF, broken authentication, and IDOR style access bypasses. The risk is not limited to data leakage. Attackers may manipulate backend queries, reach internal services, or call privileged methods from a lower trust context if authorization is enforced only at the transport layer.
Why This Matters for Security Teams
JSON-RPC is often treated as a thin transport detail, but the security boundary is usually the method itself, not the endpoint. If parameter abuse and method-level authorization are not tested, attackers can turn ordinary requests into privilege escalation, data extraction, or internal service reachability. That matters especially where JSON-RPC backs admin consoles, integrations, automation, or agent workflows that carry broad trust.
Current guidance suggests that method exposure should be reviewed the same way as API authorization, because transport-level controls do not stop a caller from invoking a sensitive method once they can reach the interface. This is where broken access control, injection, and server-side request abuse converge. Controls from NIST SP 800-53 Rev 5 Security and Privacy Controls and the CIS Controls v8 both reinforce the need to validate inputs, limit privileges, and monitor for misuse, but the implementation detail is what usually fails first.
For platforms that expose machine-to-machine functions, this also intersects with the OWASP Non-Human Identity Top 10, because service accounts, tokens, and automation identities frequently inherit more access than the application layer actually needs. In practice, many security teams encounter JSON-RPC abuse only after a low-trust caller has already used a valid method name to reach a high-trust action, rather than through intentional method-by-method testing.
How It Works in Practice
Effective testing starts by treating each JSON-RPC method as a distinct attack surface. Method names, parameter types, optional fields, and error handling should be tested for how they behave when inputs are malformed, oversized, reordered, duplicated, or altered to reference resources the caller should not access. The goal is not just to see whether the request fails, but whether it fails safely.
Security teams typically look for four failure classes:
- Parameter abuse, where a method accepts unexpected values, nested objects, or reference manipulation that changes backend behaviour.
- Authorization bypass, where a caller can invoke an administrative or cross-tenant method without method-level entitlement checks.
- Injection and request smuggling into backend systems, including database queries, template rendering, or internal fetches.
- Information leakage through verbose errors, object identifiers, or response differences that confirm hidden resources exist.
Testing should cover both positive and negative cases. Positive tests confirm expected role-to-method access. Negative tests verify that a user, service account, or agent token cannot escalate by changing parameters alone. This is particularly important when JSON-RPC is used in service meshes, orchestration layers, or AI-adjacent tooling where a higher-trust backend may process calls on behalf of a lower-trust client.
Where possible, align test cases with the relevant control intent in NIST SP 800-53 Rev 5 Security and Privacy Controls and validate that logging captures method name, caller identity, parameter context, and failure reason. That makes detection and forensics possible when a method is abused. These controls tend to break down when JSON-RPC sits behind a gateway that enforces only coarse endpoint authentication because the backend still trusts the caller more than the method context.
Common Variations and Edge Cases
Tighter method-level access control often increases engineering overhead, requiring organisations to balance development speed against the cost of maintaining a precise authorization model. That tradeoff becomes more visible in environments with many optional methods, rapid schema changes, or mixed human and machine callers.
There is no universal standard for how JSON-RPC authorization should be expressed, so implementation patterns vary. Some teams enforce policy at the application layer, others at the gateway, and mature environments do both. The risk is that a gateway rule can approve the request while the backend method still assumes the caller is trusted. Best practice is evolving toward explicit allowlisting per method and per identity, especially where service accounts or automation tokens are involved.
Edge cases include batch requests, notifications without standard responses, and methods that indirectly trigger other services. Batch calls can hide a forbidden method inside an otherwise valid sequence. Notifications can reduce visibility if the system does not log them properly. Indirect methods can also create SSRF-style behavior if a JSON-RPC parameter controls a URL, hostname, or downstream resource reference. Where payment, cardholder, or regulated data is in scope, the control expectations in PCI DSS v4.0 and the governance structure of ISO/IEC 27001:2022 Information Security Management provide useful accountability anchors. In mixed legacy environments, these controls often fail when method names are stable but backend authorization logic changes independently, creating a silent mismatch between what the client can call and what the server should allow.
Standards & Framework Alignment
This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.
OWASP Agentic AI Top 10 and OWASP Non-Human Identity Top 10 address the attack surface, NIST CSF 2.0 and NIST AI RMF set the technical controls, and PCI DSS v4.0 define the regulatory obligations.
| Framework | Control / Reference | Relevance |
|---|---|---|
| NIST CSF 2.0 | PR.AC-4 | Method-level access should enforce least privilege, not just transport access. |
| NIST AI RMF | Abuse testing supports governance over automated and AI-adjacent calling patterns. | |
| OWASP Agentic AI Top 10 | Agent tool calls through JSON-RPC need method-level constraints and abuse testing. | |
| OWASP Non-Human Identity Top 10 | Service identities often inherit excess rights that make JSON-RPC abuse easier. | |
| PCI DSS v4.0 | 6.2.4 | Secure coding and input validation are essential where payment data flows via methods. |
Test JSON-RPC inputs and authorization paths before release, especially for payment-related workflows.
Related resources from NHI Mgmt Group
Deepen Your Knowledge
Reviewed and updated by the NHIMG editorial team on August 24, 2026.
NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org