The vulnerability, described as 'unauthorized method invocation through unvalidated parameter', stems from a two-part issue within the ps_checkout module's payment authorization process. The primary entry point is the ajaxProcessCaptureAuthorization method in the AdminAjaxPrestashopCheckoutController, which is accessible to administrative users. This function improperly constructed API request payloads for PayPal, particularly when an amount was provided without a currency. This malformed request would cause the PayPal API to return an error.
The second part of the vulnerability lies in the handling of this API response. The CaptureAuthorizationAction.execute and VoidAuthorizationAction.execute methods would decode the JSON response from PayPal but failed to validate whether the decoding was successful. In the case of an error response, the decoded value would be null. The subsequent code, however, proceeded as if a valid object was returned, leading to PHP errors when trying to access array keys on a null value. This unhandled error state is what creates the potential for 'unauthorized method invocation' mentioned in the advisory.
The patch rectifies these issues by first, fixing the payload construction logic in AdminAjaxPrestashopCheckoutController to ensure a valid request is always sent. Second, it adds explicit checks in CaptureAuthorizationAction.execute and VoidAuthorizationAction.execute to validate the decoded API response and throw an exception if it's invalid, thus preventing the application from entering an unstable state.