CVE-2022-0990

9.1 CRITICAL

📋 TL;DR

This CVE describes a Server-Side Request Forgery (SSRF) vulnerability in Calibre-Web, an open-source web application for managing eBook collections. The vulnerability allows attackers to make unauthorized requests from the server to internal network resources or external systems. All users running Calibre-Web versions prior to 0.6.18 are affected.

💻 Affected Systems

Products:
  • Calibre-Web
Versions: All versions prior to 0.6.18
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability exists in the application's URL handling functionality and affects all deployments regardless of configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could access internal services, exfiltrate sensitive data, perform port scanning of internal networks, or chain with other vulnerabilities to achieve remote code execution.

🟠

Likely Case

Unauthorized access to internal HTTP services, metadata exposure from internal systems, or abuse of the server as a proxy for malicious requests.

🟢

If Mitigated

Limited impact with proper network segmentation, egress filtering, and input validation controls in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ⚠️ Yes
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authentication to the Calibre-Web application. The vulnerability is well-documented in public bug bounty reports.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 0.6.18

Vendor Advisory: https://github.com/janeczku/calibre-web/commit/4545f4a20d9ff90b99bbd4e3e34b6de4441d6367

Restart Required: Yes

Instructions:

1. Backup your Calibre-Web database and configuration. 2. Stop the Calibre-Web service. 3. Update to version 0.6.18 or later using your package manager or by downloading from GitHub. 4. Restart the Calibre-Web service. 5. Verify the update was successful.

🔧 Temporary Workarounds

Network Segmentation

linux

Restrict outbound network access from the Calibre-Web server using firewall rules.

iptables -A OUTPUT -p tcp --dport 80 -j DROP
iptables -A OUTPUT -p tcp --dport 443 -j DROP

Input Validation

all

Implement web application firewall rules to block SSRF patterns in URL parameters.

🧯 If You Can't Patch

  • Implement strict network egress filtering to limit the server's outbound connections
  • Deploy a reverse proxy with URL validation to intercept and sanitize requests

🔍 How to Verify

Check if Vulnerable:

Check the Calibre-Web version in the web interface or configuration files. If version is below 0.6.18, the system is vulnerable.

Check Version:

grep -i version /path/to/calibre-web/version.py || check web interface footer

Verify Fix Applied:

After updating, verify the version shows 0.6.18 or higher in the web interface or via the version check command.

📡 Detection & Monitoring

Log Indicators:

  • Unusual outbound HTTP requests from the Calibre-Web server
  • Requests to internal IP addresses or localhost from the application

Network Indicators:

  • HTTP traffic from Calibre-Web server to unexpected destinations
  • Port scanning activity originating from the server

SIEM Query:

source="calibre-web" AND (dest_ip=10.0.0.0/8 OR dest_ip=172.16.0.0/12 OR dest_ip=192.168.0.0/16 OR dest_ip=127.0.0.0/8)

🔗 References

📤 Share & Export