CVE-2024-41708

7.5 HIGH

📋 TL;DR

A vulnerability in AdaCore's Ada Web Server (AWS) 20.0 allows attackers to escalate privileges and hijack sessions due to insufficient randomness in the Random_String() function. This affects systems using AWS for web services where session management or authentication relies on predictable tokens. Organizations using AWS 20.0 for web applications are vulnerable.

💻 Affected Systems

Products:
  • AdaCore Ada Web Server (AWS)
Versions: 20.0
Operating Systems: All platforms running AWS
Default Config Vulnerable: ⚠️ Yes
Notes: Any AWS 20.0 deployment using Random_String() for session tokens, authentication, or security-critical strings is vulnerable.

⚠️ Manual Verification Required

This CVE does not have specific version information in our database, so automatic vulnerability detection cannot determine if your system is affected.

Why? The CVE database entry doesn't specify which versions are vulnerable (no version ranges provided by the vendor/NVD).

🔒 Custom verification scripts are available for registered users. Sign up free to download automated test scripts.

Recommended Actions:
  1. Review the CVE details at NVD
  2. Check vendor security advisories for your specific version
  3. Test if the vulnerability is exploitable in your environment
  4. Consider updating to the latest version as a precaution

⚠️ Risk & Real-World Impact

🔴

Worst Case

Full system compromise via privilege escalation to administrative accounts, session hijacking of all users, and potential data exfiltration or system takeover.

🟠

Likely Case

Session hijacking leading to unauthorized access to user accounts, privilege escalation within the application, and potential data breaches.

🟢

If Mitigated

Limited impact with proper network segmentation, strong authentication controls, and monitoring; attackers may still hijack sessions but gain limited access.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Exploitation requires the attacker to predict or brute-force session tokens; no public exploit code is known, but the vulnerability is straightforward to leverage.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: AWS 20.1 or later

Vendor Advisory: https://docs.adacore.com/corp/security-advisories/SEC.AWS-0040-v2.pdf

Restart Required: Yes

Instructions:

1. Download AWS 20.1 or later from the official repository. 2. Replace the vulnerable AWS installation with the updated version. 3. Restart all services using AWS to apply the fix.

🔧 Temporary Workarounds

Replace Random_String() with Secure Alternative

all

Manually patch the Random_String() function in src/core/aws-utils.adb to use a cryptographically secure random number generator.

Edit the source file to replace the vulnerable function with a secure implementation (e.g., using OS-provided randomness).

🧯 If You Can't Patch

  • Implement additional authentication factors (e.g., MFA) to reduce risk of session hijacking.
  • Monitor logs for unusual session activity and implement rate-limiting on authentication endpoints.

🔍 How to Verify

Check if Vulnerable:

Check the AWS version; if it is 20.0, review if Random_String() is used in the codebase for security-sensitive operations.

Check Version:

Check the AWS documentation or build configuration for version information; no single command is standard across deployments.

Verify Fix Applied:

Verify the AWS version is 20.1 or later and that the Random_String() function has been updated to use secure randomness.

📡 Detection & Monitoring

Log Indicators:

  • Multiple failed authentication attempts followed by successful logins from unusual IPs
  • Session tokens being reused or predicted in logs

Network Indicators:

  • Unusual patterns in session token requests or authentication traffic

SIEM Query:

Search for events where session tokens are generated or validated, looking for anomalies in token patterns or source IPs.

🔗 References

📤 Share & Export