Error flow variable is set but not checked in request phase

Severity
Medium
Applies to
Step
Links
CWE-390

Why This Issue Is Important

In an Apigee proxy, JavaScript policies often set flow variables to indicate error states. If these error variables are not checked later in the same flow phase, the errors thrown by the JavaScript policy may go unnoticed. This can lead to unexpected behavior, where the proxy continues to process requests as if everything is normal, potentially resulting in incorrect responses or security vulnerabilities.

Proper error handling is crucial to ensure that the application fails safely and securely in the event of a fault or unexpected behavior. If the error variables are not checked, the system may operate under faulty conditions, violating security requirements and leading to unreliable system behavior.

How This Issue Is Detected

CodeSent detects this issue by analyzing the JavaScript policy within the proxy to see if any error variables are set but not checked later in the same flow phase.

How to Fix the Issue

To fix this issue, you should implement a RaiseFault step or similar mechanism that checks the error variable set by the JavaScript policy and handles it appropriately.

If your JavaScript policy sets an error variable like this:

context.setVariable("errorState", true);

You should add a step later in the same flow phase that checks this variable:

<Step>
    <Name>RaiseFault.HandleJSError</Name>
    <Condition>errorState == True</Condition>
</Step>