Remediation advice in SSRF could be more broadly focused
- Dominant language
- CodeQL
- Stars
- 10.1k
- Forks
- 2.1k
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 141
Description
**Description of the issue**
The [remediation advice for how to mitigate SSRF vulnerabilities ](https://github.com/github/codeql/blob/main/python/ql/src/Security/CWE-918/ServerSideRequestForgery-end.inc.qhelp#L7) is focused on URL allowlisting. While this is fairly good for https schemes where possible to implement, it's not really a comprehensive defense for SSRF.
The advice given assumes that an attacker can't manipulate DNS entries for the domain being allowlisted. It also doesn't offer any advice for mitigating SSRF if an attacker has complete control of the URL and an allowlist isn't practical.
It would be good to add a sentence to the advice to make the remediation advice less specific. Perhaps incorporating a mention of additional network or application controls to prevent servers from making connections to internal resources in the first place (e.g. based on IP addresses).
https://owasp.org/Top10/A10_2021-Server-Side_Request_Forgery_%28SSRF%29/
Contributor guide
Research direction
Start with python/ql/src/Security/CWE-918/ServerSideRequestForgery-end.inc.qhelp at the remediation advice linked in the issue, then compare the OWASP SSRF guidance. Broaden the advice beyond URL allowlisting to mention additional network or application controls, and verify that the final text addresses both allowlisted and attacker-controlled URLs.
Written by the indexing model from the issue text.
Assessment
- Domain
- documentation, security
- Issue type
- Documentation
- Difficulty
- 1/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 45/100