vindeckyy opened a new pull request, #4424: URL: https://github.com/apache/logging-log4j2/pull/4424
## Description Adds `SyslogLayoutFuzzer` to the `log4j-core-fuzz-test` module, covering rendering paths that none of the existing fuzz targets reach (existing targets cover PatternLayout, JsonTemplateLayout, the SLF4J bridge and JSON encoding only): - `Rfc5424Layout` (default configuration) - `SyslogLayout` (default configuration) - `StructuredDataMessage.asString(Format.FULL, ...)` round trip - `GelfLayout` (raw JSON output) ## Oracles 1. With `newLine=false`, a conforming syslog frame contains no line breaks: any embedded CR, LF, NEL (U+0085), or U+2028/U+2029 lets a line-oriented (RFC 6587 non-transparent framing) receiver split one event into multiple frames. The harness treats any such line break as a finding. 2. `StructuredDataMessage.asString(FULL)` must round-trip every PARAM-VALUE: the number of structural double quotes must match the number of entries created. 3. `GelfLayout` output must be JSON-conformant: no raw control characters inside string literals. Input is split into an MDC key, an MDC value, and a message, since MDC values are the classic attacker-influenced input in log pipelines. ## Motivation The syslog/structured-data rendering layer has a history of conformance issues (e.g. #3346, CVE-2026-34478's SD-NAME/PARAM-VALUE hardening in 2.25.4); continuous coverage-guided fuzzing of exactly these paths with rendering-level oracles catches regressions early. ## Checklist - [x] New code has Apache license headers - [x] Compiles against the module dependencies (verified with jazzer-api) - [x] No changes to production code -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
