CVE-2024-8024

7.5 HIGH

📋 TL;DR

A CORS misconfiguration in netease-youdao/qanything version 1.4.1 allows attackers to bypass Same-Origin Policy protections, potentially exposing sensitive data from web applications. This affects any deployment of the vulnerable version that's accessible to attackers. The vulnerability stems from overly permissive CORS headers that don't properly restrict cross-origin requests.

💻 Affected Systems

Products:
  • netease-youdao/qanything
Versions: 1.4.1
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: Only affects deployments where the application is accessible via web browser. The vulnerability is present in the default configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers could steal sensitive user data, session tokens, or API credentials by making cross-origin requests from malicious websites, leading to full account compromise and data exfiltration.

🟠

Likely Case

Limited data exposure from improperly protected endpoints, potentially leaking user information or application metadata to unauthorized third parties.

🟢

If Mitigated

With proper CORS restrictions, only legitimate origins can access the API, preventing cross-origin data theft while maintaining necessary functionality.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: MEDIUM

Exploitation requires the attacker to lure victims to a malicious website that makes cross-origin requests to the vulnerable application.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: Version after 1.4.1

Vendor Advisory: https://huntr.com/bounties/bda53fab-88aa-4e03-8d9d-4cf50a98ffc7

Restart Required: No

Instructions:

1. Update to the latest version of netease-youdao/qanything. 2. Verify the CORS configuration restricts origins to only trusted domains. 3. Test that legitimate cross-origin requests still work while blocking unauthorized ones.

🔧 Temporary Workarounds

Configure Restrictive CORS Headers

all

Manually configure the application to only allow specific trusted origins in CORS headers

Set Access-Control-Allow-Origin to specific domains only
Configure Access-Control-Allow-Methods to required HTTP methods only
Set Access-Control-Allow-Credentials to false unless absolutely necessary

🧯 If You Can't Patch

  • Implement a reverse proxy or WAF to add proper CORS headers and filter cross-origin requests
  • Restrict network access to only trusted IP ranges and implement authentication for all endpoints

🔍 How to Verify

Check if Vulnerable:

Use browser developer tools or curl to check CORS headers: curl -I -H 'Origin: https://evil.com' https://your-qanything-instance.com

Check Version:

Check package.json or application metadata for version information

Verify Fix Applied:

Test with unauthorized origins and verify they're blocked while authorized origins work: curl -I -H 'Origin: https://trusted.com' https://your-qanything-instance.com

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed CORS preflight requests
  • Requests with suspicious Origin headers
  • Unusual cross-origin API calls

Network Indicators:

  • HTTP OPTIONS requests with malicious origins
  • Cross-origin requests to sensitive endpoints

SIEM Query:

http.method=OPTIONS AND http.headers.origin NOT IN ("trusted-domain1.com", "trusted-domain2.com")

🔗 References

📤 Share & Export