CVE-2025-31030

7.5 HIGH

📋 TL;DR

This CVE describes a PHP Local File Inclusion vulnerability in the Ray Enterprise Translation WordPress plugin. Attackers can exploit improper filename control in include/require statements to read sensitive files on the server. All users running versions up to 1.7.0 are affected.

💻 Affected Systems

Products:
  • Ray Enterprise Translation (WordPress plugin)
Versions: n/a through 1.7.0
Operating Systems: Any OS running PHP
Default Config Vulnerable: ⚠️ Yes
Notes: Requires WordPress installation with the vulnerable plugin enabled. PHP configuration with allow_url_include disabled does not prevent local file inclusion.

⚠️ 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 server compromise via reading sensitive files like /etc/passwd, database credentials, or session files, potentially leading to remote code execution.

🟠

Likely Case

Information disclosure of sensitive server files, configuration files, or source code.

🟢

If Mitigated

Limited impact if file permissions are restrictive and sensitive files are not accessible via web user.

🌐 Internet-Facing: HIGH - WordPress plugins are typically internet-facing and this vulnerability requires no authentication.
🏢 Internal Only: MEDIUM - Internal systems could still be exploited by authenticated users or via other attack vectors.

🎯 Exploit Status

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

Simple HTTP requests can trigger the vulnerability. Public proof-of-concept exists on security research sites.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.7.1 or later

Vendor Advisory: https://patchstack.com/database/wordpress/plugin/lingotek-translation/vulnerability/wordpress-ray-enterprise-translation-1-7-0-local-file-inclusion-vulnerability?_s_id=cve

Restart Required: No

Instructions:

1. Log into WordPress admin panel. 2. Navigate to Plugins. 3. Find Ray Enterprise Translation. 4. Click 'Update Now' if update available. 5. Alternatively, download version 1.7.1+ from WordPress repository and replace plugin files.

🔧 Temporary Workarounds

Disable Plugin

all

Temporarily disable the vulnerable plugin until patched

wp plugin deactivate ray-enterprise-translation

Restrict File Access

linux

Configure web server to block access to sensitive directories

# In Apache .htaccess:
<FilesMatch "\.(php|inc|conf|config|sql|log|txt)$">
  Order Allow,Deny
  Deny from all
</FilesMatch>

🧯 If You Can't Patch

  • Remove the plugin entirely from production systems
  • Implement web application firewall rules to block LFI patterns in requests

🔍 How to Verify

Check if Vulnerable:

Check WordPress admin panel > Plugins for Ray Enterprise Translation version. If version is 1.7.0 or earlier, system is vulnerable.

Check Version:

wp plugin get ray-enterprise-translation --field=version

Verify Fix Applied:

Verify plugin version is 1.7.1 or later in WordPress admin panel. Test with known LFI payloads should fail.

📡 Detection & Monitoring

Log Indicators:

  • HTTP requests containing '../' sequences, 'include=', 'require=', or file path traversal patterns in query strings or POST data
  • Access to sensitive files like /etc/passwd, wp-config.php from web logs

Network Indicators:

  • Unusual file read patterns from WordPress plugin endpoints
  • Requests to translation-related endpoints with file path parameters

SIEM Query:

source="web_access.log" AND (uri="*../*" OR uri="*/etc/passwd*" OR uri="*/wp-config.php*") AND user_agent="*WordPress*"

🔗 References

📤 Share & Export