Commit f96c46e
committed
Fix SSRF via DNS resolution in URL validation
Modified `validate_folder_url` in `main.py` to resolve domain names using `socket.getaddrinfo`. This prevents SSRF attacks where a malicious domain resolves to a private or restricted IP address.
Key changes:
- Added `socket` import and DNS resolution logic.
- Validates resolved IPs against private, loopback, link-local, reserved, and multicast ranges.
- Implemented secure fail-closed behavior for DNS resolution errors (`socket.gaierror`, `OSError`).
- Added handling for IPv6 zone identifiers.
- Added code comment acknowledging TOCTOU limitations (DNS rebinding).
- Updated security journal.1 parent 7866c94 commit f96c46e
11 files changed
Lines changed: 18 additions & 244 deletions
File tree
- .github/workflows
- .jules
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | 3 | | |
7 | 4 | | |
8 | 5 | | |
| |||
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
This file was deleted.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
12 | | - | |
13 | 11 | | |
14 | 12 | | |
15 | 13 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
45 | | - | |
| 45 | + | |
46 | 46 | | |
47 | 47 | | |
48 | | - | |
49 | | - | |
| 48 | + | |
| 49 | + | |
This file was deleted.
0 commit comments