CVE-2026-21696

6.5 MEDIUM

📋 TL;DR

This vulnerability allows low-privileged users to trigger a database flood in Pterodactyl Panel by exploiting Wings' failure to respect SQLite's parameter limit. When Wings attempts to delete more than 32,766 activity log entries in one query, it fails and continuously re-sends the same data, potentially filling the panel's database disk space. Affected systems run Pterodactyl Wings versions 1.7.0 through 1.11.x.

💻 Affected Systems

Products:
  • Pterodactyl Wings
Versions: 1.7.0 through 1.11.x
Operating Systems: All platforms running Pterodactyl Wings
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects systems using SQLite database for Wings activity logs. Requires low-privileged user access to trigger activity log generation.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete denial of service as the panel's database server runs out of disk space, rendering the game server management panel unusable and potentially affecting hosted game servers.

🟠

Likely Case

Degraded panel performance and eventual service disruption as database fills with duplicate activity records, requiring manual cleanup and service restart.

🟢

If Mitigated

Minimal impact with proper monitoring and disk space alerts allowing intervention before critical failure.

🌐 Internet-Facing: MEDIUM - Requires authenticated low-privileged access to Wings API, but many Pterodactyl installations expose Wings to the internet for game server management.
🏢 Internal Only: MEDIUM - Same exploitation requirements but limited to internal attackers with access to Wings API endpoints.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires authenticated low-privileged access to generate activity logs. The vulnerability is straightforward to trigger once access is obtained.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.12.0

Vendor Advisory: https://github.com/pterodactyl/wings/security/advisories/GHSA-2497-gp99-2m74

Restart Required: Yes

Instructions:

1. Stop all game servers managed by Wings. 2. Backup Wings configuration and data. 3. Update Wings to version 1.12.0 or later using your package manager or manual installation. 4. Restart Wings service. 5. Verify no activity log processing errors in Wings logs.

🔧 Temporary Workarounds

Manual Activity Log Cleanup

linux

Regularly clean activity logs before they reach 32,766 entries to prevent triggering the SQLite parameter limit.

sudo wings --clean-activity-logs
sudo systemctl restart wings

Reduce Activity Log Retention

linux

Configure Wings to retain fewer activity log entries by modifying the activity log cleanup schedule.

Edit /etc/pterodactyl/config.yml and reduce activity log retention period
sudo systemctl restart wings

🧯 If You Can't Patch

  • Implement strict rate limiting on activity log generation API endpoints
  • Monitor database disk usage and set up alerts for rapid growth

🔍 How to Verify

Check if Vulnerable:

Check Wings version: 'wings --version' or examine service logs for SQLite parameter limit errors when processing activity logs.

Check Version:

wings --version

Verify Fix Applied:

After updating to 1.12.0+, check that activity log processing completes without SQLite errors and database size remains stable.

📡 Detection & Monitoring

Log Indicators:

  • SQL logic error: too many SQL variables (1)
  • Repeated activity log processing errors
  • Rapid growth in panel database size

Network Indicators:

  • Unusual volume of activity log uploads to panel
  • Increased database connection attempts

SIEM Query:

source="wings.log" AND "too many SQL variables" OR source="panel.log" AND "database disk full"

🔗 References

📤 Share & Export