CVE-2025-22974

9.8 CRITICAL

📋 TL;DR

This SQL injection vulnerability in SeaCMS allows remote attackers to execute arbitrary SQL commands through the DoTranExecSql parameter in phome.php. Attackers can potentially read, modify, or delete database content, and in some configurations execute arbitrary code. All SeaCMS installations up to version 13.2 are affected.

💻 Affected Systems

Products:
  • SeaCMS
Versions: v13.2 and all earlier versions
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: All default installations are vulnerable. The vulnerability exists in the core phome.php component.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Complete system compromise including arbitrary code execution, database destruction, and potential lateral movement to other systems.

🟠

Likely Case

Database compromise leading to data theft, privilege escalation, and website defacement.

🟢

If Mitigated

Limited impact with proper input validation and database permissions, potentially only allowing data viewing.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

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

Simple SQL injection with public proof-of-concept available. No authentication required.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: v13.3 or later

Vendor Advisory: https://github.com/202110420106/CVE/blob/master/seacms/CVE-2025-22974.md

Restart Required: No

Instructions:

1. Download latest SeaCMS version from official source. 2. Backup current installation and database. 3. Replace vulnerable files with patched versions. 4. Verify functionality.

🔧 Temporary Workarounds

Input Validation Filter

all

Add input validation to filter SQL injection attempts in phome.php

Modify phome.php to sanitize DoTranExecSql parameter using prepared statements or parameterized queries

Web Application Firewall

all

Deploy WAF with SQL injection protection rules

Configure WAF to block requests containing SQL injection patterns in DoTranExecSql parameter

🧯 If You Can't Patch

  • Implement strict input validation and parameterized queries for all user inputs
  • Restrict database user permissions to minimum required and enable logging of all database queries

🔍 How to Verify

Check if Vulnerable:

Check if SeaCMS version is 13.2 or earlier. Test by sending SQL injection payload to DoTranExecSql parameter in phome.php.

Check Version:

Check SeaCMS version in admin panel or view source code version information

Verify Fix Applied:

Verify version is 13.3 or later. Test that SQL injection attempts no longer succeed.

📡 Detection & Monitoring

Log Indicators:

  • Unusual SQL queries in database logs
  • Multiple failed login attempts
  • Requests to phome.php with SQL keywords in parameters

Network Indicators:

  • HTTP requests containing SQL injection patterns in DoTranExecSql parameter
  • Unusual outbound database connections

SIEM Query:

source="web_logs" AND uri="*phome.php*" AND (param="*DoTranExecSql*" AND (value="*SELECT*" OR value="*UNION*" OR value="*INSERT*" OR value="*DELETE*"))

🔗 References

📤 Share & Export