CVE-2025-54864

7.5 HIGH

📋 TL;DR

This vulnerability allows unauthenticated API calls to trigger resource-intensive evaluations in Hydra, potentially causing denial of service attacks. Any organization running vulnerable versions of Hydra with internet-facing API endpoints is affected. The issue stems from missing HTTP Basic authentication on forge webhook endpoints.

💻 Affected Systems

Products:
  • Hydra (NixOS continuous integration service)
Versions: All versions prior to commit f7bda02
Operating Systems: All platforms running Hydra
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects installations with GitHub or Gitea forge integrations enabled.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete denial of service for the Hydra evaluation service, potentially affecting dependent CI/CD pipelines and development workflows.

🟠

Likely Case

Degraded performance or temporary unavailability of Hydra evaluation services during targeted attacks.

🟢

If Mitigated

Minimal impact with proper authentication controls and rate limiting in place.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires only HTTP requests to vulnerable endpoints; no authentication needed.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Commit f7bda02 or later

Vendor Advisory: https://github.com/NixOS/hydra/security/advisories/GHSA-qpq3-646c-vgx9

Restart Required: Yes

Instructions:

1. Update Hydra to commit f7bda02 or later. 2. Restart Hydra service. 3. Verify endpoints now require authentication.

🔧 Temporary Workarounds

Reverse Proxy Block

all

Block access to vulnerable API endpoints using a reverse proxy or web application firewall

# Example nginx location block
location /api/push-github { deny all; }
# Example nginx location block
location /api/push-gitea { deny all; }

🧯 If You Can't Patch

  • Implement network-level access controls to restrict access to /api/push-github and /api/push-gitea endpoints
  • Deploy rate limiting on API endpoints to mitigate DoS impact

🔍 How to Verify

Check if Vulnerable:

Check if Hydra version is prior to commit f7bda02 and test if /api/push-github and /api/push-gitea endpoints accept unauthenticated requests

Check Version:

git log --oneline -1

Verify Fix Applied:

Verify Hydra is at commit f7bda02 or later and test that /api/push-github and /api/push-gitea endpoints now require authentication

📡 Detection & Monitoring

Log Indicators:

  • High frequency of requests to /api/push-github or /api/push-gitea
  • Unusual spike in evaluation job creation
  • Failed authentication attempts on previously unauthenticated endpoints

Network Indicators:

  • Unusual traffic patterns to Hydra API endpoints
  • Requests to /api/push-github or /api/push-gitea without authentication headers

SIEM Query:

source="hydra.log" AND (uri_path="/api/push-github" OR uri_path="/api/push-gitea") AND NOT auth_method="basic"

🔗 References

📤 Share & Export