CVE-2025-59954

9.8 CRITICAL

📋 TL;DR

This vulnerability allows remote attackers to execute arbitrary code on Knowage servers by exploiting unsafe JXPathContext usage in MetaService.java. It affects all Knowage deployments running versions 8.1.26 or earlier. Attackers can achieve full system compromise without authentication.

💻 Affected Systems

Products:
  • Knowage Server
Versions: 8.1.26 and below
Operating Systems: All platforms running Java
Default Config Vulnerable: ⚠️ Yes
Notes: All deployments using vulnerable versions are affected regardless of configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system takeover with attacker gaining root/admin privileges, data exfiltration, lateral movement, and persistent backdoor installation.

🟠

Likely Case

Remote code execution leading to service disruption, data theft, and deployment of cryptocurrency miners or ransomware.

🟢

If Mitigated

Limited impact with proper network segmentation and least privilege, potentially only affecting the Knowage application container.

🌐 Internet-Facing: HIGH - Exploitable remotely without authentication, CVSS 9.8 indicates critical severity for internet-facing systems.
🏢 Internal Only: HIGH - Even internal systems are vulnerable to authenticated or network-accessible attackers.

🎯 Exploit Status

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

The advisory suggests exploitation is straightforward given the JXPathContext vulnerability pattern.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 8.1.27

Vendor Advisory: https://github.com/KnowageLabs/Knowage-Server/security/advisories/GHSA-96cv-75hg-xrgq

Restart Required: Yes

Instructions:

1. Backup your Knowage configuration and data. 2. Download version 8.1.27 from official repository. 3. Stop Knowage service. 4. Replace with patched version. 5. Restart Knowage service. 6. Verify functionality.

🔧 Temporary Workarounds

Network Isolation

linux

Restrict network access to Knowage server to only trusted IPs

iptables -A INPUT -p tcp --dport [Knowage_port] -s [trusted_network] -j ACCEPT
iptables -A INPUT -p tcp --dport [Knowage_port] -j DROP

WAF Rule

all

Implement web application firewall rules to block JXPath injection patterns

🧯 If You Can't Patch

  • Implement strict network segmentation and firewall rules to limit access to Knowage instances
  • Deploy Knowage in isolated containers with minimal privileges and monitor for suspicious activity

🔍 How to Verify

Check if Vulnerable:

Check Knowage version in web interface or configuration files, or run: find / -name "*knowage*" -type f | xargs grep -l "8.1"

Check Version:

grep -r "version" /opt/knowage/ 2>/dev/null | grep -i "8.1"

Verify Fix Applied:

Verify version is 8.1.27 or higher in admin interface or by checking pom.xml for version tag

📡 Detection & Monitoring

Log Indicators:

  • Unusual JXPath-related errors in Knowage logs
  • Suspicious Java process spawning
  • Unexpected network connections from Knowage server

Network Indicators:

  • Unusual outbound connections from Knowage server
  • Traffic patterns indicating reverse shells or command execution

SIEM Query:

source="knowage.log" AND ("JXPath" OR "MetaService" OR "java.lang.Runtime")

🔗 References

📤 Share & Export