CVE-2025-66458

6.1 MEDIUM

📋 TL;DR

This Cross-Site Scripting (XSS) vulnerability in Lookyloo allows attackers to inject malicious JavaScript code that executes in users' browsers when they view captured website data. The vulnerability affects all Lookyloo users who process website captures from untrusted sources. Attackers can steal session cookies, redirect users to malicious sites, or perform actions on behalf of authenticated users.

💻 Affected Systems

Products:
  • Lookyloo
Versions: All versions prior to 1.35.3
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: The vulnerability requires processing website captures from malicious third-party servers that return JSON documents containing JavaScript in script elements.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers steal administrator session cookies, gain full control of the Lookyloo instance, and potentially pivot to internal systems if the Lookyloo server has network access to other resources.

🟠

Likely Case

Attackers steal user session cookies, hijack user accounts, and perform unauthorized actions within the Lookyloo application.

🟢

If Mitigated

With proper input validation and output encoding, malicious scripts are rendered harmless as text rather than executable code.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires the attacker to control a server that Lookyloo processes, but no authentication is needed for the XSS payload to execute in users' browsers.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.35.3

Vendor Advisory: https://github.com/Lookyloo/lookyloo/security/advisories/GHSA-58h2-652v-gq87

Restart Required: Yes

Instructions:

1. Backup your current Lookyloo installation and data. 2. Update Lookyloo to version 1.35.3 or later using: git pull origin main && pip install -r requirements.txt. 3. Restart the Lookyloo service: sudo systemctl restart lookyloo (or equivalent). 4. Verify the update was successful.

🔧 Temporary Workarounds

Input Validation Filter

all

Implement server-side filtering to reject JSON responses containing script tags or JavaScript code in specific fields

# Customize Lookyloo's capture processing to sanitize JSON inputs
# Add validation in the appropriate capture processing modules

Content Security Policy

all

Implement strict Content Security Policy headers to prevent execution of inline scripts

# Add to web server configuration or application headers:
Content-Security-Policy: script-src 'self'

🧯 If You Can't Patch

  • Restrict Lookyloo to only process captures from trusted, whitelisted domains
  • Isolate Lookyloo instance in a network segment with no access to sensitive internal systems

🔍 How to Verify

Check if Vulnerable:

Check if Lookyloo version is below 1.35.3 by examining the version file or running the application and checking the web interface footer

Check Version:

grep __version__ lookyloo/__init__.py or check web interface footer

Verify Fix Applied:

Confirm version is 1.35.3 or higher and test with a controlled payload containing script tags in JSON responses

📡 Detection & Monitoring

Log Indicators:

  • Unusual increase in capture requests from single IPs
  • Log entries showing processing of JSON with script tags

Network Indicators:

  • Outbound connections from Lookyloo server to unexpected domains after processing captures

SIEM Query:

source="lookyloo.log" AND ("script" OR "javascript" OR "<script") AND "JSON"

🔗 References

📤 Share & Export