CVE-2025-3792
Executive Summary
CVE-2025-3792 is a critical SQL injection vulnerability discovered in SeaCMS, a popular content management system. The flaw resides in the /admin_link.php?action=delall endpoint, where the e_id parameter is not properly sanitized before being used in a SQL query. This allows an unauthenticated remote attacker to inject arbitrary SQL commands, potentially leading to complete database compromise, data exfiltration, and in some cases, remote code execution via database functions like xp_cmdshell (if enabled). The exploit has been publicly disclosed, increasing the risk of widespread exploitation. No official patch is currently available from the vendor.
This record — and 170,000+ others — are available via the ValtersIT API. One endpoint replaces five: NVD + GitHub CVE + CISA KEV + EPSS + Nuclei + Exploit-DB, unified.
No signup required
CVSS Breakdown & Threat Level
- CVSS Score: 10.0 (Critical)
- Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Confidentiality Impact: High
- Integrity Impact: High
- Availability Impact: High
This vulnerability is trivial to exploit and requires no authentication, making it a prime target for automated scanning and mass exploitation.
Deep Dive & Mechanics
The vulnerability exists in the admin_link.php script, specifically in the delall action handler. The e_id parameter is taken directly from the HTTP request and concatenated into a SQL DELETE statement without any sanitization or parameterization.
Vulnerable Code Snippet (Conceptual):
$e_id = $_GET['e_id'];
$sql = "DELETE FROM `links` WHERE `id` IN ($e_id)";
$result = mysqli_query($conn, $sql);
An attacker can manipulate the e_id parameter to break out of the intended SQL context. For example, a payload like 1 OR 1=1 would delete all records. More sophisticated payloads can be used to extract data from other tables, enumerate the database, or execute system commands.
Vulnerable vs. Patched Code
Vulnerable Code (Conceptual):
$e_id = $_GET['e_id'];
$sql = "DELETE FROM `links` WHERE `id` IN ($e_id)";
$result = mysqli_query($conn, $sql);
Patched Code (Conceptual):
$e_id = $_GET['e_id'];
// Validate that e_id contains only comma-separated integers
if (!preg_match('/^[0-9,]+$/', $e_id)) {
die('Invalid input');
}
$sql = "DELETE FROM `links` WHERE `id` IN ($e_id)";
$result = mysqli_query($conn, $sql);
A proper fix would involve using prepared statements or parameterized queries to ensure the input is treated as data, not executable code.
Exploitation & Lab Setup
Red Team (Exploitation)
Lab Setup:
- Install SeaCMS 13.3 on a local server (e.g., XAMPP, LAMP).
- Ensure the admin panel is accessible.
Exploit Steps:
- Send a crafted HTTP GET request to the vulnerable endpoint.
- Use SQL injection to extract data or execute commands.
Example Payload (Extracting admin credentials):
GET /admin_link.php?action=delall&e_id=1 UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,670,671,672,673,674,675,676,677,678,679,680,681,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,894,895,896,897,898,899,900,901,902,903,904,905,906,907,908,909,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,930,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,975,976,977,978,979,980,981,982,983,984,985,986,987,988,989,990,991,992,993,994,995,996,997,998,999,1000 FROM information_schema.tables WHERE table_schema=database()-- -
Note: The above is a conceptual payload. Actual exploitation may require adjusting the number of columns.
Blue Team (Detection & Response)
Detection Steps:
- Monitor web server logs for requests to
/admin_link.php?action=delallwith suspiciouse_idparameters (e.g., containing SQL keywords likeUNION,SELECT,OR,--). - Implement a Web Application Firewall (WAF) rule to block requests with SQL injection patterns in the
e_idparameter. - Enable database query logging to detect anomalous DELETE operations.
Response Steps:
- Immediately isolate the affected server.
- Review database logs for unauthorized data access or modification.
- Rotate all database credentials and application secrets.
- Apply the conceptual patch (input validation) or upgrade to a patched version if available.
Indicators of Compromise (IOCs)
- Network IOCs:
- HTTP requests to
/admin_link.php?action=delallwithe_idcontaining SQL keywords. - Outbound database connections from the web server to unknown IPs.
- HTTP requests to
- File IOCs:
- Modified or new files in the SeaCMS installation directory.
- Suspicious entries in web server access logs.
- System IOCs:
- Unexpected database processes or queries.
- New user accounts or elevated privileges.
Detection Engineering
YARA Rule
rule CVE_2025_3792_SeaCMS_SQLi {
meta:
description = "Detects SQL injection attempts targeting CVE-2025-3792 in SeaCMS"
author = "Valters IT"
date = "2025-04-10"
reference = "CVE-2025-3792"
strings:
$sqli_pattern1 = /e_id=.*(?:UNION|SELECT|OR|AND|--|#|;|\/\*)/i
$sqli_pattern2 = /admin_link\.php\?action=delall/i
condition:
$sqli_pattern2 and $sqli_pattern1
}
Sigma Rule
title: CVE-2025-3792 SeaCMS SQL Injection Attempt
id: 12345678-1234-1234-1234-123456789012
status: experimental
description: Detects SQL injection attempts against SeaCMS admin_link.php
author: Valters IT
date: 2025/04/10
logsource:
category: webserver
product: apache
detection:
selection:
cs-method: 'GET'
cs-uri-query:
- '*admin_link.php?action=delall*'
- '*e_id=*'
condition: selection
falsepositives:
- Legitimate administrative actions (rare)
level: high
Suricata Rule
alert http any any -> any any (msg:"CVE-2025-3792 SeaCMS SQL Injection Attempt"; flow:to_server,established; content:"GET"; http_method; content:"/admin_link.php"; http_uri; content:"action=delall"; http_uri; content:"e_id="; http_uri; pcre:"/e_id=.*(?:UNION|SELECT|OR|AND|--|#|;|\/\*)/i"; sid:1000001; rev:1;)
Remediation & Mitigation
Immediate Actions:
- Disable the vulnerable endpoint: If possible, restrict access to
/admin_link.phpusing.htaccessor a WAF. - Apply input validation: Implement a whitelist filter for the
e_idparameter, allowing only comma-separated integers. - Upgrade: Monitor the SeaCMS official website for a security patch. If none is available, consider migrating to a different CMS.
Long-Term Recommendations:
- Adopt secure coding practices: Use parameterized queries or prepared statements for all database interactions.
- Regular security audits: Conduct code reviews and penetration testing.
- Implement a WAF: Deploy a Web Application Firewall to block common attack patterns.
Valters IT
Securing Digital Frontiers