Blind SSRF via URL fetch
calibre-web
allows external URL fetching in order to upload a book cover. However, instead of external URL it is possible to point to localhost, which will be reached resulting in blind SSRF.
Fetch Cover from URL
field specify the address of service that you ran as an admin -> save the book.As a service for PoC I used python simple server - python -m http.server 1234
.
Also you may tunnel calibre-web
server using ngrok
- ngrok http 1234
- to prove that it is exploitable in real environment (I already did, just wanted to make video PoC as short as possible).
Video PoC
This vulnerability is capable of port scanning and even may execute some actions on victim’s side in case there are sensitive services on localhost.