Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessLocate exposed /install/ directory post-setup
-
DeliverySend crafted request to install/ajax.php
-
ExploitInject PHP into config via write_configfile()
-
ExecutionConfig file included and PHP executes
-
ImpactRemote code execution on server
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Code injection prevention, sandbox exec
MITRE ATT&CK
2 techniques across 2 tactics: Execution, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires that the Wavelog installer directory (/install/, specifically ajax.php and includes/interface_assets/triggers.php) remain web-accessible after installation is complete - in vulnerable versions 1.8 through 2.4.1 there was no installation lock file and no permission/token check gating these endpoints, so a remote unauthenticated attacker could re-drive the config-writing routines. No authentication and no user interaction are needed (PR:N/UI:N), but exploitation is limited to deployments that did not manually remove or block the /install/ path; the 2.4.2 fix adds a .lock check and a session-bound X-Installer-Token requirement plus input sanitization and path/URL validation, so patched or install-directory-removed instances are not exploitable. |
| Impact | This is a genuine high-priority issue, not a CVSS-inflation case. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H, 9.3) describes remote, unauthenticated, low-complexity code injection with full confidentiality/integrity/availability impact, and the description and patch corroborate it: /install/ajax.php and triggers.php remain reachable after installation with no install lock or permission check, and unsanitized input flows into write_config()/write_configfile(), letting an attacker plant PHP that executes on the server. My independent CVSS 3.1 read is AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (~9.8), fully consistent with the vendor score. Mitigating the raw severity: exploitation is not entirely condition-free - it requires that the /install/ directory still be web-reachable after setup (many hardened deployments delete or block it), which the fix formalizes with a .lock file and session-bound X-Installer-Token check. On the exploitation-signal side there is no EPSS score, no CISA KEV listing, and no public PoC provided in the intelligence, so there is no public exploit identified at time of analysis; however, the fix commit is public and effectively a recipe (it shows exactly which unsanitized parameters reached the config writers), which shortens the path to a working exploit. Net: high real risk where the install directory is left exposed, tempered by that non-default-persistence prerequisite and the currently niche product footprint. |
| Exploit ScenarioDerived | An attacker discovers an internet-facing Wavelog instance whose /install/ directory was never removed or locked after setup, and sends a crafted unauthenticated request to /install/ajax.php with malicious values for config parameters. Those values are written unsanitized into a generated PHP configuration file, and when that file is included the injected PHP executes on the server, yielding remote code execution. No public PoC is provided, but the public fix commit reveals the exact vulnerable parameters and sink. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 17, 2026
Unauthenticated remote code execution affects Wavelog amateur radio logging software versions 1.8 through 2.4.1 because the installer endpoints /install/ajax.php and /install/includes/interface_assets/triggers.php remain reachable after setup and pass unsanitized input into configuration-writing routines. An attacker who can reach the exposed /install/ path can inject attacker-controlled PHP into configuration files, resulting in code execution on the server, with no authentication or user interaction required (CVSS vector PR:N/UI:N). The issue is fixed in version 2.4.2, and no public exploit identified at time of analysis.
RemediationAI
Vendor-released patch: 2.4.2. Upgrade to Wavelog 2.4.2 or later (https://github.com/wavelog/wavelog/releases/tag/2.4.2), which incorporates commit 9661efa86eff4598bd1a7ad8ca4ec60e76b6fb25 and pull request 3228; the vendor advisory is at https://github.com/wavelog/wavelog/security/advisories/GHSA-jxjv-chgm-rh36. If patching must be deferred, remove or block the /install/ directory at the web server (delete it or add an explicit deny rule) so that ajax.php and includes/interface_assets/triggers.php are unreachable; the trade-off is that the installer can no longer be run, which is the intended state after setup, but any legitimate reinstallation would require restoring it. Alternatively, ensure a .lock file exists at the installer root or restrict /install/ to trusted source IPs, recognizing that these are compensating controls and that older releases still accept unauthenticated installer requests whenever those barriers are absent, so removal or an allow-list is stronger than relying on the application to reject requests. After patching, verify that config.php and database.php already exist, since the patch refuses to overwrite existing configuration files, and confirm that the .lock and installer-token protections are active.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Wavelog is PHP-based amateur radio logging software whose web installer generates database.php and config.php from templates handled in install/includes/core/core_class.php. In releases 1.8 through 2.4.1 the installer code lacks any installation lock file or token/permission check, so after installation is complete the installer can be re-driven by anyone who can reach /install/, and request parameters are substituted directly into PHP configuration templates by write_config() and write_configfile(). That is the CWE-94 code-injection pattern in which untrusted data crosses into executable code, because the attacker can control the contents written into PHP configuration files. The 2.4.2 fix, commit 9661efa86eff4598bd1a7ad8ca4ec60e76b6fb25, adds a .lock check and a session-bound X-Installer-Token validated with hash_equals, confines directory paths with realpath under DOCUMENT_ROOT, validates websiteurl with FILTER_VALIDATE_URL, introduces a _sanitize() helper that escapes backslashes and single quotes, casts log_threshold to int, refuses to overwrite existing config files, and switches installer SQL construction to real_escape_string in database_class.php. The CPE cpe:2.3:a:wavelog:wavelog:*:*:*:*:*:*:*:* confirms Wavelog as the affected product; the independent assessment scores the flaw CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, consistent with the vendor-assigned CVSS 4.0 score of 9.3.
Know when Wavelog gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Remote, unauthenticated, low-complexity injection into PHP config that executes as code yields full RCE (C:H/I:H/A:H); scope unchanged as impact stays within the web application context.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
Wavelog is web-based amateur radio logging software. From 1.8 until 2.4.2, Wavelog exposes /install/ajax.php and /install/includes/interface_assets/triggers.php after installation without an installation lock or permission check. Unsanitized input reaches write_config() and write_configfile() in install/includes/core/core_class.php, allowing a remote unauthenticated attacker to read or write log files and place attacker-controlled content into PHP configuration files. The resulting PHP configuration content can execute on the server. This issue is fixed in version 2.4.2.
Technical POC Analysis
The flaw is CWE-94 code injection combined with CWE-862 missing authorization.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
Wavelog, the amateur radio logging platform, is affected across versions 1.8 through 2.4.1 by a critical unauthenticated remote code execution flaw that allows anyone able to reach the exposed installer path to run attacker-controlled code on the underlying server. Organizations hosting Wavelog - including club, emergency-communications, and contest stations - should treat any internet-facing instance below version 2.4.2 as directly exposed to full system takeover, with no credentials or user action required. Leadership should care because this is a remotely reachable, server-level compromise that can lead to data theft, lateral movement, and loss of trust in a system many groups rely on for continuity of operations.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
Wavelog 1.8.5 allows Oqrs_model.php get_worked_modes station_id SQL injectioin. Rated critical severity (CVSS 9.8), this
Wavelog 1.8.5 allows Activated_gridmap_model.php get_band_confirmed SQL injection via band, sat, propagation, or mode. R
Wavelog 1.8.5 allows Gridmap_model.php get_band_confirmed SQL injection via band, sat, propagation, or mode. Rated high
A vulnerability, which was classified as problematic, was found in Wavelog up to 1.8.0. Rated medium severity (CVSS 6.9)
EUVD-2026-82421
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB