The vulnerability is a Server-Side Request Forgery (SSRF) located in the Zalo integration of the OpenClaw application. The core of the issue lies in the sendPhoto function within extensions/zalo/src/api.ts, which failed to validate outbound photo URLs before forwarding them to the Zalo Bot API. An attacker could provide a URL to an internal service, and the OpenClaw server would make a request to that service.
The patch in commit a65eb1b864b7630c1242a82de9e5799b80583c3f rectifies this by introducing validation steps inside the sendPhoto function. Specifically, it now parses the URL to ensure it uses HTTP or HTTPS and then validates the hostname against a defined SSRF policy using resolvePinnedHostnameWithPolicy.
The function sendPhotoZalo in extensions/zalo/src/send.ts is also identified as a vulnerable function because it is the entry point that gathers the malicious URL and calls sendPhoto. Therefore, both sendPhoto and sendPhotoZalo would be present in the runtime profile when the vulnerability is triggered.