CVEReports
CVEReports

Automated vulnerability intelligence platform. Comprehensive reports for high-severity CVEs generated by AI.

Product

  • Home
  • Sitemap
  • RSS Feed

Company

  • About
  • Contact
  • Privacy Policy
  • Terms of Service

© 2026 CVEReports. All rights reserved.

Made with love by Amit Schendel & Alon Barad



CVE-2026-54511

CVE-2026-54511: Log Injection and Structured Data Key Injection in @logtape/syslog

Alon Barad
Alon Barad
Software Engineer

Aug 27, 2026·6 min read·1 visit

Executive Summary (TL;DR)

Unescaped control characters and unvalidated keys in LogTape's syslog structured data output allow remote attackers to inject forged log records and corrupt structured logs.

CVE-2026-54511 is a critical security vulnerability in the @logtape/syslog package, which serves as the syslog sink for the LogTape logging library. The flaw is caused by a failure to neutralize C0 control characters in structured data values and to validate keys against RFC 5424 SD-NAME specifications when structured data output is enabled. Remote attackers can leverage this defect to terminate TCP syslog frames and append completely forged syslog records to downstream collectors, compromising the integrity of audit trails and SIEM databases.

Vulnerability Overview

The vulnerability CVE-2026-54511 target-analyzes the @logtape/syslog package, which acts as the syslog transport sink for the LogTape logging ecosystem. This framework is responsible for sending log streams to remote syslog collectors or centralized Security Information and Event Management (SIEM) systems.

When structured logging is enabled by setting SyslogSinkOptions.includeStructuredData to true, the sink outputs key-value pairs representing application event attributes. This feature facilitates detailed metadata extraction by downstream processors.

However, the implementation fails to escape C0 control characters in values and fails to enforce character grammar rules on parameter keys. The missing sanitization opens two distinct attack vectors: CRLF/frame injection and structured data key parameter injection.

Root Cause Analysis

The underlying flaw resides in how structured data is compiled within packages/syslog/src/syslog.ts before socket transmission. According to RFC 5424 specifications, metadata elements inside structured data blocks must be sanitized to prevent boundary crossing.

Under RFC 6587 TCP syslog transport, non-transparent framing separates messages using literal newline (\n) delimiters. Because the vulnerable package does not strip or replace C0 control characters (specifically characters from U+0000 to U+001F) in structured values, an attacker who supplies a value containing a newline can force the sink to write a literal newline into the socket. The receiving syslog daemon parses this byte as a message delimiter and treats everything following it as a separate log frame.

Furthermore, the package does not validate keys against the RFC 5424 SD-NAME standard. This standard dictates that parameter keys must be between 1 and 32 characters and only consist of printable US-ASCII characters, excluding spaces, equals signs, quotes, and closing brackets. The lack of checking allows an attacker to supply keys that inject brackets or quotes, altering the layout of the structured metadata blocks.

Code Analysis and Patch Comparison

In versions prior to the fix, the escapeStructuredDataValue routine only targeted backslashes, double quotes, and closing brackets:

// VULNERABLE: Only replaces standard escapable characters
function escapeStructuredDataValue(value: string): string {
  return value
    .replace(/\\/g, "\\\\")
    .replace(/"/g, '\\"')
    .replace(/]/g, "\\\]");
}

This simple replacement fails to neutralize \n (LF), \r (CR), or \0 (Null bytes), which are written verbatim to the output buffer. The patch introduced in commit 7a6e5b9ddf7915edfff78fa129bc17c979b2a623 rewrote this routine to traverse strings character-by-character and escape control characters into their decimal #NNN equivalent:

// PATCHED: Escapes control characters to standard decimal formats
function escapeStructuredDataValue(value: string): string {
  let result = "";
  for (const char of value) {
    const charCode = char.charCodeAt(0);
    if (charCode <= 31) {
      // Safe decimal representation for C0 characters
      result += `#${charCode.toString(10).padStart(3, "0")}`;
    } else if (char === "\\") {
      result += "\\\\";
    } else if (char === '"') {
      result += '\\"';
    } else if (char === "]") {
      result += "\\\]";
    } else {
      result += char;
    } 
  } 
  return result;
}

To remediate key injection, a validator function named isStructuredDataName was added to verify every property key against the RFC 5424 SD-NAME constraints:

function isStructuredDataName(name: string): boolean {
  if (name.length < 1 || name.length > 32) return false;
  for (const char of name) {
    const charCode = char.charCodeAt(0);
    if (
      charCode <= 32 || charCode > 126 ||
      char === "=" || char === "]" || char === '"'
    ) {
      return false;
    } 
  }
  return true;
}

Properties with keys that fail this check are silently omitted from serialization, preventing metadata pollution.

Exploitation Methodology

Exploitation of this vulnerability requires that an application log user-controlled input as structured properties. Consider an administrative application logging user registration profile metadata:

logger.info("User registered", { bio: req.body.bio });

An attacker can submit a registration payload where the bio property contains a trailing newline followed by a valid syslog header and a custom payload. Because the newline character is not sanitized, the logging system generates a single TCP packet containing multiple syslog messages.

Additionally, if keys are dynamically mapped from HTTP request headers and logged, submitting a header like X-Header-Injected]evil_property causes the parser to identify ] as the termination of the structured data block. The rest of the key and value then leak into the text body of the log message, potentially causing downline SIEM parsing failures.

Impact Assessment

The impact of CVE-2026-54511 is severe, as reflected by its CVSS base score of 8.6. The primary security impact is the potential compromise of downstream infrastructure integrity.

By leveraging syslog framing injection, attackers can write arbitrary syslog headers with false origins, severity levels, facilities, and hostnames. For example, an attacker can generate a false authentication success log that appears to originate from a domain controller, neutralizing security alerts.

The Scope (S) metric is set to Changed (C) because the vulnerability allows exploitation to transition from the target software application into the surrounding monitoring and SIEM environment. This capability to poison central logging stores disrupts forensic analysis and compromises the integrity of organizational compliance records.

Mitigation and Remediation

Remediation is achieved by updating @logtape/syslog to a patched release. The fixes are contained in versions 1.3.11, 2.0.14, and 2.1.5.

If immediate dependency updates are not viable, security administrators should set includeStructuredData: false in the SyslogSinkOptions configuration. This action bypasses the structured data generation path entirely, protecting the system from both CRLF and key-injection vectors.

// Temporary mitigated sink setup
const secureSyslogSink = getSyslogSink({
  host: "syslog-receiver.internal",
  port: 514,
  transport: "tcp",
  includeStructuredData: false // Mitigates the risk prior to library update
});

In addition, developers can implement a temporary gateway sanitization step that strips characters with char codes below 32 from all fields before passing objects to the log interface.

Official Patches

dahliaGitHub Security Advisory GHSA-8h6h-x5pq-56fq
dahliaFix commit implementing character conversion and key checking logic

Fix Analysis (1)

Technical Appendix

CVSS Score
8.6/ 10
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:H/A:N

Affected Systems

@logtape/syslog

Affected Versions Detail

Product
Affected Versions
Fixed Version
@logtape/syslog
dahlia
< 1.3.111.3.11
@logtape/syslog
dahlia
>= 2.0.0, < 2.0.142.0.14
@logtape/syslog
dahlia
>= 2.1.0, < 2.1.52.1.5
AttributeDetail
CWE IDCWE-93 / CWE-117
Attack VectorNetwork (AV:N)
CVSS v3.1 Score8.6 (High)
EPSS ScoreNot Available
ImpactIntegrity Compromise (SIEM / Log Forgery)
Exploit StatusPoC (Regression Unit Tests)
CISA KEV StatusNot Listed

MITRE ATT&CK Mapping

T1565.001Stored Data Manipulation
Impact
T1070Indicator Removal
Defense Evasion
T1562.001Disable or Modify Tools
Defense Evasion
CWE-93
Improper Neutralization of CRLF Sequences ('CRLF Injection')

The software does not neutralize or incorrectly neutralizes CRLF sequences before using them in HTTP headers, log files, or other protocol-defined text streams, allowing injection attacks.

Known Exploits & Detection

Regression Unit TestsThe official patch repository contains test scenarios demonstrating how key-value control character sequences translate directly into raw outputs in vulnerable versions.

References & Sources

  • [1]GitHub Security Advisory GHSA-8h6h-x5pq-56fq
  • [2]Fix Commit 7a6e5b
  • [3]@logtape/syslog Release 1.3.11
  • [4]@logtape/syslog Release 2.0.14
  • [5]@logtape/syslog Release 2.1.5
  • [6]CVE-2026-54511 CVE Record

Attack Flow Diagram

Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.

More Reports

•4 minutes ago•CVE-2026-54550
7.4

CVE-2026-54550: Path Traversal Vulnerability in IzPack Installer Unpacker

IzPack versions 5.2.6 and earlier are vulnerable to path traversal via UnpackerBase.unpack(). The vulnerability allows unauthenticated attackers to write arbitrary files to the host filesystem during the installation process by crafting malicious installer packages containing directory traversal sequences.

Alon Barad
Alon Barad
0 views•4 min read
•about 2 hours ago•CVE-2026-54786
5.0

CVE-2026-54786: Host File Descriptor Exhaustion in Wasmtime WASIp1 Runtime

A resource leak vulnerability in Wasmtime's WASIp1 native implementation of the fd_renumber system call allows guest WebAssembly applications to leak host file descriptors, ultimately leading to process-wide Denial of Service (DoS) via resource exhaustion.

Amit Schendel
Amit Schendel
2 views•8 min read
•about 3 hours ago•CVE-2026-55688
4.0

CVE-2026-55688: Cookie Tossing / Cookie Injection Vulnerability in AsyncHttpClient

CVE-2026-55688 is a medium-severity cookie injection vulnerability in the AsyncHttpClient (AHC) library. Due to a failure to validate the domain attribute against the origin server during cookie handling, applications using a shared AHC client instance are vulnerable to cookie-tossing attacks.

Alon Barad
Alon Barad
3 views•5 min read
•about 4 hours ago•GHSA-93QJ-5Q5V-3C2H
0.0

GHSA-93QJ-5Q5V-3C2H: Embedded Malicious Code in pantheon-agents PyPI Packages

A supply-chain compromise affecting the pantheon-agents PyPI package, where versions 0.6.1 and 0.6.2 were uploaded with malicious payloads that exfiltrate sensitive environment variables and credentials.

Alon Barad
Alon Barad
6 views•5 min read
•about 5 hours ago•GHSA-X287-5C68-36WP
7.1

GHSA-X287-5C68-36WP: Broken Object-Level Authorization in OpenWISP IPAM Django Admin

A broken object-level authorization (BOLA) vulnerability exists in the Django Admin custom export view of OpenWISP IPAM. This flaw allows a multi-tenancy restricted staff user to export subnets and associated IP addresses belonging to different organizations by supplying a targeted subnet identifier in the export request.

Alon Barad
Alon Barad
3 views•6 min read
•about 6 hours ago•CVE-2026-54563
7.1

CVE-2026-54563: Path Traversal and Incorrect Authorization in Cloudreve WebDAV Component

A high-severity path traversal vulnerability in Cloudreve's WebDAV component allows authenticated users with scoped WebDAV credentials to bypass directory containment limits and access unauthorized filesystem areas.

Alon Barad
Alon Barad
3 views•5 min read