CVE-2025-32931

9.1 CRITICAL

📋 TL;DR

CVE-2025-32931 is an authenticated remote code execution vulnerability in DevDojo Voyager that allows authenticated administrators to execute arbitrary operating system commands via a specific php artisan command. This affects Voyager versions 1.4.0 through 1.8.0 when used with Laravel 8 or later. The vulnerability stems from improper neutralization of argument delimiters in a command (CWE-88).

💻 Affected Systems

Products:
  • DevDojo Voyager
Versions: 1.4.0 through 1.8.0
Operating Systems: All operating systems where Voyager is installed
Default Config Vulnerable: ⚠️ Yes
Notes: Requires Laravel 8 or later. Only affects installations where the Compass feature is enabled and accessible to authenticated administrators.

⚠️ 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 system compromise allowing attackers to execute arbitrary commands with the privileges of the web server process, potentially leading to data theft, lateral movement, or full server takeover.

🟠

Likely Case

Authenticated administrators (or attackers who compromise admin credentials) can execute arbitrary commands on the server, potentially installing malware, exfiltrating data, or creating backdoors.

🟢

If Mitigated

With proper access controls and network segmentation, impact is limited to the specific web server instance, though command execution capabilities remain dangerous.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

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

Exploitation requires authenticated administrator access. The vulnerability is in the Compass feature's command execution functionality.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 1.8.1 or later

Vendor Advisory: https://github.com/thedevdojo/voyager/security/advisories

Restart Required: Yes

Instructions:

1. Update Voyager to version 1.8.1 or later using composer update thedevdojo/voyager. 2. Clear Laravel cache with php artisan cache:clear. 3. Restart your web server and queue workers if applicable.

🔧 Temporary Workarounds

Disable Compass Feature

all

Disable the Voyager Compass feature which contains the vulnerable command execution functionality.

Set 'compass_enabled' => false in config/voyager.php

Restrict Admin Access

all

Implement strict access controls to limit who can access the Voyager admin interface.

Implement IP whitelisting, multi-factor authentication, or additional authorization layers

🧯 If You Can't Patch

  • Implement network segmentation to isolate the Voyager instance from critical systems
  • Enable detailed logging and monitoring of all admin activities and command executions

🔍 How to Verify

Check if Vulnerable:

Check your Voyager version in composer.json or run php artisan voyager:version. If version is between 1.4.0 and 1.8.0 inclusive, you are vulnerable.

Check Version:

php artisan voyager:version

Verify Fix Applied:

After updating, verify version is 1.8.1 or later and test that command execution through Compass is properly sanitized.

📡 Detection & Monitoring

Log Indicators:

  • Unusual php artisan commands executed via web interface
  • Commands with shell metacharacters in Voyager logs
  • Multiple failed authentication attempts to admin panel

Network Indicators:

  • Unusual outbound connections from web server to external systems
  • Large data transfers from web server

SIEM Query:

source="voyager" AND (command="artisan" OR command="php artisan") AND user_agent="web-browser"

🔗 References

📤 Share & Export