Pyload ng: pyLoad: Rate-Limit Bypass and Audit-Log Spoofing via Trusted Client-Controlled `X-Forwarded-For` Header
Description
pyLoad-ng version 0.5.0b3 (develop branch) improperly trusts the client-supplied X-Forwarded-For HTTP header to determine client IP for rate limiting and audit logging. This allows an attacker to bypass rate limits by rotating the X-Forwarded-For value on each request, and to spoof source IP addresses in security logs, undermining IP-based blocking and attribution. The server directly faces clients without a trusted proxy configuration, making the XFF header untrusted input. This vulnerability is rated medium severity.
CVSS v4.0
Affected software
Run on your own infrastructure? Check whether these packages are installed with threat-finder — our free open-source scanner.
Weaknesses
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
pyLoad-ng's web UI request handling derives the client IP from the leftmost value of the X-Forwarded-For HTTP header without verifying if the header is trustworthy. Since the Cheroot WSGI server terminates client connections directly and no trusted proxy middleware (e.g., ProxyFix) is configured, the XFF header is fully attacker-controlled. The client IP is used in the rate_limit decorator to enforce request limits per IP and in audit logs for login and API-key authentication failures. Because the client can supply arbitrary XFF values, they can bypass rate limiting by sending a unique IP each request and forge IP addresses in logs, defeating IP-based blocking mechanisms like fail2ban and poisoning attribution. The vulnerability affects pyLoad-ng 0.5.0b3 and later develop snapshots with identical relevant code. No trusted proxy configuration or fallback to remote_addr is used unless the header is absent. The issue is confirmed by proof-of-concept testing showing rate limits are enforced only when XFF is fixed, but bypassed when rotated.
Potential Impact
Attackers can bypass rate limiting controls by rotating the X-Forwarded-For header value, allowing unlimited requests without triggering rate limits. They can also spoof source IP addresses in security and audit logs for login and API-key authentication failures, which can defeat IP-based blocking tools and mislead forensic investigations. This undermines the effectiveness of IP-based security controls and log-based detection or blocking mechanisms.
Mitigation Recommendations
No official patch or fix is currently documented. Patch status is not yet confirmed — check the vendor advisory for current remediation guidance. As a mitigation, pyLoad-ng should be configured to trust only known proxy headers or ignore untrusted X-Forwarded-For headers when no trusted proxy is present. Implementing middleware such as ProxyFix or equivalent to validate and sanitize client IP headers is recommended. Until a fix is available, administrators should be aware that IP-based rate limiting and logging can be bypassed or spoofed.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-9q47-3cm2-2rp8
- Osv Schema Version
- 1.4.0
- Ecosystems
- ["PyPI"]
- Database Specific Severity
- MODERATE
- Cvss Version
- 4.0
Threat ID: 6ac96e5f2cdf04f65689a8fa
Added to database: 10/09/2026, 22:44:47 UTC
Last enriched: 10/09/2026, 22:53:25 UTC
Last updated: 10/09/2026, 22:53:25 UTC
Views: 6
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.