CVE-2026-40228
Low · 2.9CVSS
2.9
EPSS
0.1%
Published
Apr 10, 2026
CISA due date
—
Cloudanix analysis
A local user on an affected Linux system may be able to make misleading messages appear on other users' terminal screens if emergency message broadcasting is enabled.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- High
- Impact
- Data Tampering
- Component
- Other
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
This is a local terminal-control-sequence injection issue in systemd-journald when systemd 259 is configured with ForwardToWall=yes. A local user or process can submit an emergency-priority log message, for example via logger -p emerg, containing ANSI escape sequences. systemd-journald forwards emergency messages to logged-in users' terminals through the wall mechanism without sufficiently neutralizing terminal control characters. The result is limited integrity impact to terminal output: screen clearing, cursor movement, misleading text, terminal title changes, or other terminal-dependent behavior. This does not directly provide privilege escalation, code execution, data disclosure, or denial of service by itself.
Why it matters to the business
An attacker with local access to a system can cause misleading or deceptive messages to appear on other users' terminals if emergency log forwarding is enabled. In practical terms, this could confuse administrators, hide important terminal output, or support social-engineering attempts such as fake prompts or misleading operational instructions. The overall risk is low because exploitation requires local access, a specific journald configuration, and susceptible terminal behavior; EPSS is very low and stable, the issue is not in CISA KEV, and no public exploit maturity is reported. However, organizations with multi-user Linux servers, shared administrative jump hosts, or systems where wall broadcasts are enabled should still review exposure.
How an attack unfolds
An attacker first obtains the ability to run a local command or otherwise write to the system log facility on a host running affected systemd 259. They then determine or assume that journald is configured to forward emergency messages to wall users through ForwardToWall=yes. The attacker crafts a high-priority log message containing ANSI escape sequences and submits it using a command such as logger -p emerg. systemd-journald accepts the emergency log event and broadcasts it to terminals of logged-in users. When a user terminal interprets the embedded escape sequences, the attacker-controlled message can manipulate what the user sees, such as clearing the screen, moving the cursor, changing visual formatting, spoofing prompts, or altering terminal state depending on terminal capabilities. The attacker may use this as a deception primitive to mislead administrators or support follow-on social engineering, but the vulnerability does not inherently execute attacker commands.
How to fix it
Upgrade systemd to a vendor-provided fixed build when available; no upstream fixed version was provided in the input, so rely on distribution security advisories and backported package versions. As an immediate mitigation, disable emergency wall forwarding unless it is operationally required by setting ForwardToWall=no in journald configuration, including any applicable drop-in files, and restart systemd-journald. Review effective configuration with tools such as systemd-analyze cat-config systemd/journald.conf because drop-ins may override the main file. Where wall-style emergency broadcasts are required, restrict local shell access, monitor use of logger for emergency-priority messages, and consider terminal/client hardening options that disable unsafe escape-sequence features such as clipboard-setting sequences where supported.
How to confirm the fix worked
Confirm whether systems are affected by checking for systemd version 259 and whether the effective journald configuration enables ForwardToWall=yes. Validate remediation by confirming that the installed systemd package is a vendor-fixed build or that ForwardToWall is disabled in the effective configuration. After changing configuration, restart systemd-journald or reboot according to vendor guidance. A controlled validation test can submit a benign emergency-priority message containing harmless formatting characters from a non-privileged account and confirm that terminals do not receive interpreted control sequences. Also review journal entries around the test to ensure messages are logged but not forwarded unsafely.
Typical attack path
- Gain local command execution or access to submit syslog messages on an affected Linux system.
- Confirm or rely on systemd-journald emergency message forwarding being enabled with ForwardToWall=yes.
- Craft an emergency-priority log message containing ANSI escape sequences or other terminal control characters.
- Submit the message to journald, commonly using logger -p emerg.
- systemd-journald forwards the emergency message to logged-in users' terminals via wall.
- Victim terminals interpret the embedded control sequences, causing misleading or manipulated terminal output.
- Use the manipulated terminal display to confuse users, obscure information, or support social-engineering activity.
How to detect it
To determine whether this was already exploited, review system journal data and process execution telemetry for emergency-priority log submissions containing terminal escape sequences. Primary sources include journalctl output, archived binary journal files, syslog forwarding records, auditd execve events, EDR/eBPF process telemetry, shell history where available, and SSH/session logs identifying active local users. Focus on messages at emerg priority, especially those generated by logger or unexpected local processes, and inspect message payloads for ANSI CSI or OSC escape patterns such as ESC[, ESC], \x1b[, or \033[. Because the wall broadcast itself may not be separately logged, the original emergency log entry is the most reliable artifact. Correlate suspicious emergency messages with logged-in user sessions, sudo activity, SSH logins, and recent local account activity. There are no known KEV-listed or named threat-actor campaigns for this issue in the provided data, so detection should be behavior-focused rather than actor-focused.
- logger -p emerg
- logger --priority emerg
- ForwardToWall=yes
- \x1b[
- \033[
- \e[
- \x1b]
- \033]
- \e]
- PRIORITY=0
- SYSLOG_PRIORITY=0
- systemd-journald
- /etc/systemd/journald.conf
- /etc/systemd/journald.conf.d/
What your security team should do
- Inventory Linux systems running systemd 259 and prioritize multi-user servers, jump hosts, bastion hosts, and administrative systems.
- Check effective journald configuration for ForwardToWall=yes and disable it where not strictly required.
- Track distribution advisories for systemd and apply vendor-fixed or backported packages as soon as available.
- Add monitoring for emergency-priority logger usage by non-administrative users or unexpected service accounts.
- Search historical journal data for emergency-priority messages containing ANSI escape sequences or other control characters.
- Restrict unnecessary local interactive access and review who can submit syslog messages on shared systems.
- Document operational alternatives before disabling wall forwarding if emergency broadcasts are part of incident response or operations workflows.
The record
In systemd 259, systemd-journald can send ANSI escape sequences to the terminals of arbitrary users when a "logger -p emerg" command is executed, if ForwardToWall=yes is set.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-114722 Roundcube Webmail before 1.6.20 and 1.7.x before 1.7.5 is affected by a CSS scoping… CWE-669
- CVE-2026-106555 In sshd in OpenSSH before 10.6, GSSAPIAuthentication authentication state can incorrectly… CWE-669
- CVE-2026-106553 In sshd in OpenSSH before 10.6, credentials can incorrectly persist after failure of a… CWE-669
- CVE-2026-98125 In the Linux kernel, the following vulnerability has been resolved: smb/client: fix stale… CWE-669
- CVE-2026-92952 vm2 versions 3.11.4 through 3.11.6 incompletely filter Node.js registered internal… CWE-669
- CVE-2026-25832 In Mbed TLS 3.6.x before 3.6.7 and 4.1.x before 4.1.2, the TLS 1.3 client accepts… CWE-669
- CVE-2023-32803 The ca-certificates package before ca-certificates-2021.2.50-72 for Amazon Linux 2 (AL2)… CWE-669
- CVE-2026-89162 In PCRE2 before 10.48, pcre2_serialize_encode might disclose two bytes to an adversary… CWE-669