CVE-2020-25787
📋 TL;DR
CVE-2020-25787 is a critical vulnerability in Tiny Tiny RSS (tt-rss) that allows remote code execution due to improper URL validation. Attackers can exploit this by tricking the application into making requests to malicious URLs, potentially leading to full server compromise. All tt-rss installations before version 2020-09-16 are affected.
💻 Affected Systems
- Tiny Tiny RSS (tt-rss)
📦 What is this software?
⚠️ Risk & Real-World Impact
Worst Case
Complete server takeover with arbitrary code execution, data theft, and lateral movement within the network.
Likely Case
Remote code execution leading to web shell installation, data exfiltration, and potential ransomware deployment.
If Mitigated
Limited impact if proper network segmentation and web application firewalls are in place, though risk remains significant.
🎯 Exploit Status
Multiple public exploit scripts and detailed write-ups are available. Exploitation requires no authentication.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 2020-09-16 or later
Vendor Advisory: https://community.tt-rss.org/t/heads-up-several-vulnerabilities-fixed/3799
Restart Required: No
Instructions:
1. Backup your tt-rss installation and database. 2. Update to version 2020-09-16 or later via git: 'git pull origin master'. 3. Run update.php if prompted. 4. Clear browser cache.
🔧 Temporary Workarounds
Network-based URL filtering
allBlock outgoing HTTP requests from tt-rss to untrusted domains using firewall rules or web application firewall.
Disable external feed fetching
allTemporarily disable external feed fetching functionality if not critical.
Edit config.php: define('DISABLE_FEED_FETCHING', true);
🧯 If You Can't Patch
- Isolate tt-rss server in a restricted network segment with no internet egress.
- Implement strict web application firewall rules to block malicious URL patterns.
🔍 How to Verify
Check if Vulnerable:
Check version in config.php or via git log. If version date is before 2020-09-16, you are vulnerable.
Check Version:
grep 'define("VERSION"' config.php || git log --oneline -1
Verify Fix Applied:
Confirm version is 2020-09-16 or later. Check commit c3d14e1fa54c7dade7b1b7955575e2991396d7ef is present.
📡 Detection & Monitoring
Log Indicators:
- Unusual HTTP requests to internal services from tt-rss
- Suspicious PHP process execution
- Unexpected outbound connections from tt-rss server
Network Indicators:
- HTTP requests from tt-rss to unusual domains or internal IPs
- POST requests with encoded payloads to tt-rss
SIEM Query:
source="tt-rss-logs" AND (url="*://*" OR process="php*" AND parent="tt-rss")
🔗 References
- http://packetstormsecurity.com/files/161606/TinyTinyRSS-Remote-Code-Execution.html
- https://blog.neagaru.com/p/exploiting-tiny-tiny-rss-2020
- https://community.tt-rss.org/t/heads-up-several-vulnerabilities-fixed/3799
- https://git.tt-rss.org/fox/tt-rss/commit/c3d14e1fa54c7dade7b1b7955575e2991396d7ef
- http://packetstormsecurity.com/files/161606/TinyTinyRSS-Remote-Code-Execution.html
- https://community.tt-rss.org/t/heads-up-several-vulnerabilities-fixed/3799
- https://git.tt-rss.org/fox/tt-rss/commit/c3d14e1fa54c7dade7b1b7955575e2991396d7ef