Potential fix for code scanning alert no. 8: Server-side request forgery #2255
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Potential fix for https://github.com/dappnode/DNP_DAPPMANAGER/security/code-scanning/8
To fix the SSRF vulnerability, restrict the use of the
deviceparameter when constructing outgoing URLs. The safest way is to only permit requests for devices that are already registered (i.e., present in the list returned bygetDevices()), so unregistered or fabricated device names cannot be used to target arbitrary endpoints of the backend API service. Specifically, inWireguardClient.getDeviceCredentials, check if the passed device name is present in the wireguard devices list before constructing and calling the backend API endpoint. If the device is not permitted, throw an error.Files/regions to change:
WireguardClient.getDeviceCredentials()method (inpackages/dappmanager/src/calls/wireguard.ts): Before URL construction and API calls, check that the device exists in the output ofgetDevices().Suggested fixes powered by Copilot Autofix. Review carefully before merging.