CVE-2024-41812

7.5 HIGH

📋 TL;DR

CVE-2024-41812 is a Server-Side Request Forgery (SSRF) vulnerability in txtdot HTTP proxy that allows attackers to use the server as a proxy to send HTTP GET requests to arbitrary internal network targets and retrieve information. This affects all txtdot deployments prior to version 1.7.0 that expose the /get route. Organizations using txtdot as an internet-facing proxy are particularly vulnerable.

💻 Affected Systems

Products:
  • txtdot
Versions: All versions prior to 1.7.0
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Any deployment with the /get route accessible is vulnerable. The vulnerability exists in the default configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could pivot through txtdot to access sensitive internal services, exfiltrate confidential data, or conduct reconnaissance of internal network infrastructure.

🟠

Likely Case

Attackers use txtdot as a proxy to scan internal networks, access internal web applications, or retrieve metadata from cloud services.

🟢

If Mitigated

With proper network segmentation and firewall rules, impact is limited to denial of service against txtdot itself.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

The vulnerability is trivially exploitable via HTTP requests to the /get endpoint with crafted URLs. Public exploit code is available in the advisory.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.7.0

Vendor Advisory: https://github.com/TxtDot/txtdot/security/advisories/GHSA-4gj5-xj97-j8fp

Restart Required: Yes

Instructions:

1. Update txtdot to version 1.7.0 or later. 2. Restart the txtdot service. 3. Verify the /get endpoint no longer returns responses from arbitrary URLs.

🔧 Temporary Workarounds

Network Segmentation

all

Implement firewall rules to restrict txtdot's outbound network access to only necessary destinations.

Disable /get Route

all

Remove or disable the vulnerable /get route if not required for functionality.

🧯 If You Can't Patch

  • Implement strict network segmentation with firewall rules between txtdot and internal resources
  • Deploy txtdot in a DMZ or isolated network segment with no access to internal systems

🔍 How to Verify

Check if Vulnerable:

Send a request to txtdot's /get endpoint with a URL parameter pointing to an internal service (e.g., http://txtdot-server/get?url=http://internal-service). If it returns the internal service's response, the system is vulnerable.

Check Version:

Check txtdot version in package.json or via the application's version endpoint if available.

Verify Fix Applied:

After updating to 1.7.0+, repeat the vulnerable check. The system should return an error or no response from the internal service.

📡 Detection & Monitoring

Log Indicators:

  • Unusual requests to /get endpoint with internal IP addresses or domains
  • High volume of requests to /get from single sources

Network Indicators:

  • txtdot making outbound requests to unexpected internal destinations
  • Unusual traffic patterns from txtdot to internal services

SIEM Query:

source="txtdot" AND (uri_path="/get" AND (url="*internal*" OR url="*192.168.*" OR url="*10.*" OR url="*172.16-31.*"))

🔗 References

📤 Share & Export