Skip to main content

Wavelog CVE-2026-54237

| EUVDEUVD-2026-82421 CRITICAL
Code Injection (CWE-94)
2026-09-17 GitHub_M
9.3
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Locate exposed /install/ directory post-setup
  2. Delivery
    Send crafted request to install/ajax.php
  3. Exploit
    Inject PHP into config via write_configfile()
  4. Execution
    Config file included and PHP executes
  5. Impact
    Remote 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.

Act Now Prioritize within 24-48h. Why: CRITICAL severity.
Patch available 0.6% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

Wavelog 1.8, < 2.4.2

Affected Packages

euvd wavelog_1_8 fix: 2.4.2

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

Vendor (GitHub_M) PRIMARY 9.3 CRITICAL
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
vuln.today AI 9.8 CRITICAL

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.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Sep 17, 2026 - 21:19 EUVD
CVE Published
Sep 17, 2026 - 20:14 cve.org
CRITICAL 9.3

DescriptionCVE.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

Why It Matters

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.

Business Impact: Severe
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.6%
Top 55% exploitable
Prevalence
Low
niche self-hosted amateur radio logging app, hobbyist user base
Data Quality
6 sources
Confidence: High

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.

SignalValue
Severity CRITICAL
CISA KEV No
Public POC No
EPSS 0.6%
Patch available Yes
Active threat No
Deciding rule
CRITICAL severity
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Out-of-Cycle
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Total

Priority Score

47
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +46
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

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.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy