CVE-2025-66453

N/A Unknown

📋 TL;DR

This vulnerability in Rhino JavaScript engine allows attackers to cause high CPU consumption and potential Denial of Service by passing specially crafted floating-point numbers to the toFixed() function. Applications using vulnerable Rhino versions for JavaScript processing are affected, particularly those that process untrusted user input.

💻 Affected Systems

Products:
  • Mozilla Rhino JavaScript Engine
Versions: All versions before 1.8.1, 1.7.15.1, and 1.7.14.1
Operating Systems: All platforms running Java
Default Config Vulnerable: ⚠️ Yes
Notes: Any application using Rhino to process JavaScript, especially with user-provided numeric input.

⚠️ 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

Complete service unavailability due to CPU exhaustion, potentially affecting all users of the application.

🟠

Likely Case

Degraded performance and intermittent service disruptions when attackers trigger the CPU-intensive calculation.

🟢

If Mitigated

Minimal impact with proper input validation and resource limits in place.

🌐 Internet-Facing: HIGH - Attackers can exploit remotely if application processes untrusted input.
🏢 Internal Only: MEDIUM - Requires internal access or compromised internal systems.

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW - Simple input manipulation required.

Exploitation requires ability to pass numeric input to toFixed() function.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.8.1, 1.7.15.1, or 1.7.14.1

Vendor Advisory: https://github.com/mozilla/rhino/security/advisories/GHSA-3w8q-xq97-5j7x

Restart Required: Yes

Instructions:

1. Identify Rhino version in use. 2. Update to patched version: 1.8.1, 1.7.15.1, or 1.7.14.1. 3. Rebuild and redeploy applications using Rhino. 4. Restart affected services.

🔧 Temporary Workarounds

Input Validation

all

Validate and sanitize all numeric inputs before passing to toFixed() function.

Resource Limits

all

Implement CPU usage limits and timeouts for JavaScript execution.

🧯 If You Can't Patch

  • Implement strict input validation to reject suspicious floating-point numbers.
  • Deploy rate limiting and monitoring to detect DoS attempts.

🔍 How to Verify

Check if Vulnerable:

Check Rhino version in application dependencies or classpath. Versions before 1.8.1, 1.7.15.1, and 1.7.14.1 are vulnerable.

Check Version:

Check Maven/Gradle dependencies or examine rhino.jar manifest: java -jar rhino.jar --version

Verify Fix Applied:

Confirm updated to Rhino 1.8.1, 1.7.15.1, or 1.7.14.1 in dependencies.

📡 Detection & Monitoring

Log Indicators:

  • Unusually high CPU usage spikes
  • JavaScript execution timeouts
  • Repeated toFixed() calls with similar inputs

Network Indicators:

  • Increased traffic to endpoints processing numeric input
  • Pattern of requests with floating-point parameters

SIEM Query:

source="application_logs" AND ("CPU spike" OR "timeout" OR "toFixed")

🔗 References

📤 Share & Export