CVE-2023-6378
High · 7.5CVSS
7.5
EPSS
0.9%
Published
Nov 29, 2023
CISA due date
—
Cloudanix analysis
A logging feature in affected Java applications can be remotely abused to crash or overwhelm the service if it is left reachable.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Deserialization
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
This vulnerability affects the Logback receiver component in Logback 1.4.11. A network-accessible receiver that accepts serialized logging events can be sent specially crafted serialized data that triggers unsafe or expensive deserialization behavior, causing the receiving Java process to hang, crash, exhaust memory/CPU, or otherwise become unavailable. The impact is availability-only under the published assessment: no confidentiality or integrity impact is indicated, and exploitation requires no authentication, user interaction, or high attack complexity if the receiver is reachable.
Why it matters to the business
Applications or logging infrastructure using the vulnerable Logback receiver can be disrupted remotely, potentially causing application outages, degraded observability, missed operational alerts, or cascading instability if critical services depend on the affected Java process. Although it is not listed in CISA KEV, has no known ransomware association, and has a low EPSS score, the flaw is remotely reachable when the receiver is exposed and has a high availability impact, so internet-facing or broadly accessible receiver deployments should be prioritized.
How an attack unfolds
An attacker first identifies a Java service or logging endpoint running Logback 1.4.11 with the receiver component enabled and reachable over the network. The attacker then opens a connection to the receiver port and sends malformed or intentionally hostile serialized data instead of a valid Logback logging event. The receiver attempts to deserialize or process the data, triggering the vulnerable behavior. Depending on process limits and deployment design, this can lead to excessive resource consumption, unhandled exceptions, thread exhaustion, JVM instability, or repeated service restarts. The attacker can repeat the connection attempts to keep the service unavailable or to amplify operational impact.
How to fix it
Upgrade Logback to a fixed release that includes the upstream fix for the receiver serialization issue. For source-based builds, ensure the code includes qos-ch/logback commit 0df4ec15d45301b5d0a6e2de6466a17944c3a871 or a later trusted release containing that change; where possible, move off Logback 1.4.11 to the latest supported 1.4.x or newer version. If immediate upgrade is not possible, disable the Logback receiver component, remove remote logging receiver configuration, bind receiver listeners only to localhost or a private management network, restrict access with firewall/security-group rules, and enforce strict network allowlists for any systems that must send logs. Do not expose Logback receiver ports directly to the internet.
How to confirm the fix worked
Confirm that no deployed artifact contains Logback 1.4.11 receiver code by inspecting dependency manifests, SBOMs, container images, application build files, and runtime classpaths for logback-classic/logback-core versions. Verify that the deployed Logback build includes commit 0df4ec15d45301b5d0a6e2de6466a17944c3a871 or a later fixed release. Review Logback configuration for receiver classes and confirm they are disabled or access-controlled where not required. From a network perspective, verify that receiver ports are not exposed externally and are reachable only from approved log producers. After patching or disabling the receiver, run service health checks and controlled negative testing with malformed serialized input in a non-production environment to confirm the process remains stable.
Typical attack path
- Discover a network-accessible Logback receiver endpoint, commonly through service enumeration, application configuration leakage, or scanning for open listener ports used for remote logging.
- Confirm that the target appears to accept serialized Java/logging traffic or behaves like a Logback receiver.
- Send crafted serialized payloads or malformed Java serialization streams to the receiver.
- Cause the receiver process to spend excessive resources, throw repeated deserialization exceptions, crash, or stop accepting legitimate logging events.
- Repeat the traffic to sustain denial of service or to disrupt dependent applications and monitoring workflows.
How to detect it
To determine whether this was already exploited, review application logs, JVM logs, container orchestration events, process supervision logs, EDR telemetry, and network telemetry for affected Java services. Focus on periods with unexplained application restarts, high CPU or memory use, out-of-memory errors, thread exhaustion, or dropped logging/monitoring events. Look for repeated inbound connections to Logback receiver ports from unexpected sources, especially traffic beginning with Java serialization magic bytes or followed by deserialization exceptions. In application logs, search for Java serialization and Logback receiver errors such as StreamCorruptedException, InvalidClassException, OptionalDataException, EOFException, ClassCastException, ObjectInputStream failures, and receiver/server socket exceptions. In infrastructure logs, correlate suspicious inbound connection bursts with JVM crashes, Kubernetes CrashLoopBackOff events, systemd restarts, container OOMKilled events, or load balancer health-check failures. Absence of these artifacts does not prove non-exploitation, because a successful denial-of-service attempt may leave limited application-level evidence if the process terminates abruptly.
- logback-classic-1.4.11.jar
- logback-core-1.4.11.jar
- ch.qos.logback.classic.net.server.ServerSocketReceiver
- ch.qos.logback.classic.net.SocketReceiver
- ch.qos.logback.classic.net.server.RemoteAppenderStreamClient
- java.io.StreamCorruptedException
- java.io.InvalidClassException
- java.io.OptionalDataException
- java.io.EOFException
- java.io.ObjectInputStream
- OutOfMemoryError
- java.lang.OutOfMemoryError
- CrashLoopBackOff
- OOMKilled
- aced0005
- AC ED 00 05
What your security team should do
- Inventory Java applications, containers, and logging services for Logback 1.4.11, especially deployments using receiver or remote logging functionality.
- Prioritize remediation for internet-facing, DMZ, shared platform, or business-critical services where receiver ports are reachable by untrusted networks.
- Upgrade to a fixed Logback build containing commit 0df4ec15d45301b5d0a6e2de6466a17944c3a871 or a later supported release; rebuild and redeploy all dependent applications rather than only updating source repositories.
- Disable Logback receiver components where they are not explicitly required, and replace unauthenticated serialized-log receivers with safer logging transport patterns where feasible.
- Add network controls so receiver ports are reachable only from approved log producers; block public access and broad east-west access.
- Search historical logs for deserialization errors, JVM crashes, out-of-memory events, abnormal restart loops, and bursts of connections to receiver ports around service degradation windows.
- Add monitoring for repeated Java serialization traffic, malformed stream errors, and sudden CPU/memory/thread spikes in processes using Logback receivers.
The record
A serialization vulnerability in logback receiver component part of logback version 1.4.11 allows an attacker to mount a Denial-Of-Service attack by sending poisoned data.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | ch.qos.logback:logback-classic | 0 | 1.2.13 |
| Maven | ch.qos.logback:logback-classic | 1.3.0 | 1.3.12 |
| Maven | ch.qos.logback:logback-classic | 1.4.0 | 1.4.12 |
| Maven | ch.qos.logback:logback-core | 0 | 1.2.13 |
| Maven | ch.qos.logback:logback-core | 1.3.0 | 1.3.12 |
| Maven | ch.qos.logback:logback-core | 1.4.0 | 1.4.12 |
| Chainguard | cassandra-4.0 | 0 | 0 |
| Chainguard | cassandra-4.0-compat | 0 | 0 |
| Chainguard | cassandra-4.0-iamguarded-compat | 0 | 0 |
| Chainguard | cassandra-4.1 | 0 | 0 |
| Chainguard | cassandra-4.1-compat | 0 | 0 |
| Chainguard | cassandra-4.1-iamguarded-compat | 0 | 0 |
| Chainguard | cassandra-5.0 | 0 | 0 |
| Chainguard | cassandra-5.0 | 0 | 5.0.6-r3 |
| Chainguard | cassandra-5.0-compat | 0 | 0 |
| Chainguard | cassandra-5.0-entrypoint-compat | 0 | 0 |
| Chainguard | cassandra-5.0-iamguarded-compat | 0 | 0 |
| Chainguard | cassandra-fips-4.0 | 0 | 0 |
| Chainguard | cassandra-fips-4.0-compat | 0 | 0 |
| Chainguard | cassandra-fips-4.1 | 0 | 0 |
| Chainguard | cassandra-fips-4.1-compat | 0 | 0 |
| Chainguard | cassandra-fips-5.0 | 0 | 0 |
| Chainguard | cassandra-fips-5.0-compat | 0 | 0 |
| Chainguard | cqlsh-5.0 | 0 | 0 |
| Chainguard | cqlsh-fips-5.0 | 0 | 0 |
| Chainguard | stargate | 0 | 1.0.78-r2 |
| Chainguard | tez | 0 | 0.10.4-r6 |
| Chainguard | trino | 0 | 434-r0 |
| Chainguard | trino-config | 0 | 434-r0 |
| Chainguard | trino-oci-entrypoint | 0 | 434-r0 |
| Chainguard | trino-plugin-accumulo | 0 | 434-r0 |
| Chainguard | trino-plugin-ai-functions | 0 | 434-r0 |
| Chainguard | trino-plugin-atop | 0 | 434-r0 |
| Chainguard | trino-plugin-bigquery | 0 | 434-r0 |
| Chainguard | trino-plugin-blackhole | 0 | 434-r0 |
| Chainguard | trino-plugin-cassandra | 0 | 434-r0 |
| Chainguard | trino-plugin-clickhouse | 0 | 434-r0 |
| Chainguard | trino-plugin-delta-lake | 0 | 434-r0 |
| Chainguard | trino-plugin-druid | 0 | 434-r0 |
| Chainguard | trino-plugin-duckdb | 0 | 434-r0 |
| Chainguard | trino-plugin-elasticsearch | 0 | 434-r0 |
| Chainguard | trino-plugin-example-http | 0 | 434-r0 |
| Chainguard | trino-plugin-exasol | 0 | 434-r0 |
| Chainguard | trino-plugin-exchange-filesystem | 0 | 434-r0 |
| Chainguard | trino-plugin-exchange-hdfs | 0 | 434-r0 |
| Chainguard | trino-plugin-faker | 0 | 434-r0 |
| Chainguard | trino-plugin-functions-python | 0 | 434-r0 |
| Chainguard | trino-plugin-geospatial | 0 | 434-r0 |
| Chainguard | trino-plugin-google-sheets | 0 | 434-r0 |
| Chainguard | trino-plugin-hive | 0 | 434-r0 |
| Chainguard | trino-plugin-http-event-listener | 0 | 434-r0 |
| Chainguard | trino-plugin-http-server-event-listener | 0 | 434-r0 |
| Chainguard | trino-plugin-hudi | 0 | 434-r0 |
| Chainguard | trino-plugin-iceberg | 0 | 434-r0 |
| Chainguard | trino-plugin-ignite | 0 | 434-r0 |
| Chainguard | trino-plugin-jmx | 0 | 434-r0 |
| Chainguard | trino-plugin-kafka | 0 | 434-r0 |
| Chainguard | trino-plugin-kafka-event-listener | 0 | 434-r0 |
| Chainguard | trino-plugin-kinesis | 0 | 434-r0 |
| Chainguard | trino-plugin-kudu | 0 | 434-r0 |
| Chainguard | trino-plugin-lakehouse | 0 | 434-r0 |
| Chainguard | trino-plugin-ldap-group-provider | 0 | 434-r0 |
| Chainguard | trino-plugin-local-file | 0 | 434-r0 |
| Chainguard | trino-plugin-loki | 0 | 434-r0 |
| Chainguard | trino-plugin-mariadb | 0 | 434-r0 |
| Chainguard | trino-plugin-memory | 0 | 434-r0 |
| Chainguard | trino-plugin-ml | 0 | 434-r0 |
| Chainguard | trino-plugin-mongodb | 0 | 434-r0 |
| Chainguard | trino-plugin-mysql | 0 | 434-r0 |
| Chainguard | trino-plugin-mysql-event-listener | 0 | 434-r0 |
| Chainguard | trino-plugin-opa | 0 | 434-r0 |
| Chainguard | trino-plugin-openlineage | 0 | 434-r0 |
| Chainguard | trino-plugin-opensearch | 0 | 434-r0 |
| Chainguard | trino-plugin-oracle | 0 | 434-r0 |
| Chainguard | trino-plugin-password-authenticators | 0 | 434-r0 |
| Chainguard | trino-plugin-phoenix5 | 0 | 434-r0 |
| Chainguard | trino-plugin-pinot | 0 | 434-r0 |
| Chainguard | trino-plugin-postgresql | 0 | 434-r0 |
| Chainguard | trino-plugin-prometheus | 0 | 434-r0 |
| Chainguard | trino-plugin-ranger | 0 | 434-r0 |
| Chainguard | trino-plugin-raptor-legacy | 0 | 434-r0 |
| Chainguard | trino-plugin-redis | 0 | 434-r0 |
| Chainguard | trino-plugin-redshift | 0 | 434-r0 |
| Chainguard | trino-plugin-resource-group-managers | 0 | 434-r0 |
| Chainguard | trino-plugin-session-property-managers | 0 | 434-r0 |
| Chainguard | trino-plugin-singlestore | 0 | 434-r0 |
| Chainguard | trino-plugin-snowflake | 0 | 434-r0 |
| Chainguard | trino-plugin-spooling-filesystem | 0 | 434-r0 |
| Chainguard | trino-plugin-sqlserver | 0 | 434-r0 |
| Chainguard | trino-plugin-teradata-functions | 0 | 434-r0 |
| Chainguard | trino-plugin-thrift | 0 | 434-r0 |
| Chainguard | trino-plugin-tpcds | 0 | 434-r0 |
| Chainguard | trino-plugin-tpch | 0 | 434-r0 |
| Chainguard | trino-plugin-vertica | 0 | 434-r0 |
| Chainguard | zookeeper-3.8 | 0 | 3.8.3.0-r7 |
| Chainguard | zookeeper-3.8-iamguarded-compat | 0 | 3.8.3.0-r7 |
| Chainguard | zookeeper-3.9 | 0 | 3.9.1.0-r7 |
| Chainguard | zookeeper-3.9-iamguarded-compat | 0 | 3.9.1.0-r7 |
| Chainguard | zookeeper-bitnami-3.8-compat | 0 | 3.8.3.0-r7 |
| Chainguard | zookeeper-bitnami-3.9-compat | 0 | 3.9.1.0-r7 |
| Debian:11 | logback | 0 | No fix |
| Debian:12 | logback | 0 | No fix |
| Debian:13 | logback | 0 | 1:1.2.11-5 |
| Debian:14 | logback | 0 | 1:1.2.11-5 |
| Ubuntu:20.04:LTS | logback | 0 | No fix |
| Ubuntu:22.04:LTS | logback | 0 | No fix |
| Ubuntu:24.04:LTS | logback | 0 | No fix |
| Ubuntu:24.10 | logback | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | logback | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | logback | 0 | 1:1.1.3-2ubuntu0.1~esm1 |
| Ubuntu:Pro:18.04:LTS | logback | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | logback | 0 | 1:1.2.3-2ubuntu1~18.04.1+esm1 |
| Ubuntu:Pro:20.04:LTS | logback | 0 | 1:1.2.3-5ubuntu0.1~esm1 |
| Ubuntu:Pro:22.04:LTS | logback | 0 | 1:1.2.10-1ubuntu0.1~esm1 |
| Wolfi | cassandra-4.1 | 0 | 0 |
| Wolfi | cassandra-4.1-compat | 0 | 0 |
| Wolfi | cassandra-5.0 | 0 | 0 |
| Wolfi | cassandra-5.0 | 0 | 5.0.6-r3 |
| Wolfi | cassandra-5.0-compat | 0 | 0 |
| Wolfi | cassandra-5.0-entrypoint-compat | 0 | 0 |
| Wolfi | cassandra-5.0-iamguarded-compat | 0 | 0 |
| Wolfi | cqlsh-5.0 | 0 | 0 |
| Wolfi | tez | 0 | 0.10.4-r6 |
| Wolfi | trino | 0 | 434-r0 |
| Wolfi | trino-config | 0 | 434-r0 |
| Wolfi | trino-oci-entrypoint | 0 | 434-r0 |
| Wolfi | trino-plugin-accumulo | 0 | 434-r0 |
| Wolfi | trino-plugin-ai-functions | 0 | 434-r0 |
| Wolfi | trino-plugin-atop | 0 | 434-r0 |
| Wolfi | trino-plugin-bigquery | 0 | 434-r0 |
| Wolfi | trino-plugin-blackhole | 0 | 434-r0 |
| Wolfi | trino-plugin-cassandra | 0 | 434-r0 |
| Wolfi | trino-plugin-clickhouse | 0 | 434-r0 |
| Wolfi | trino-plugin-delta-lake | 0 | 434-r0 |
| Wolfi | trino-plugin-druid | 0 | 434-r0 |
| Wolfi | trino-plugin-duckdb | 0 | 434-r0 |
| Wolfi | trino-plugin-elasticsearch | 0 | 434-r0 |
| Wolfi | trino-plugin-example-http | 0 | 434-r0 |
| Wolfi | trino-plugin-exasol | 0 | 434-r0 |
| Wolfi | trino-plugin-exchange-filesystem | 0 | 434-r0 |
| Wolfi | trino-plugin-exchange-hdfs | 0 | 434-r0 |
| Wolfi | trino-plugin-faker | 0 | 434-r0 |
| Wolfi | trino-plugin-functions-python | 0 | 434-r0 |
| Wolfi | trino-plugin-geospatial | 0 | 434-r0 |
| Wolfi | trino-plugin-google-sheets | 0 | 434-r0 |
| Wolfi | trino-plugin-hive | 0 | 434-r0 |
| Wolfi | trino-plugin-http-event-listener | 0 | 434-r0 |
| Wolfi | trino-plugin-http-server-event-listener | 0 | 434-r0 |
| Wolfi | trino-plugin-hudi | 0 | 434-r0 |
| Wolfi | trino-plugin-iceberg | 0 | 434-r0 |
| Wolfi | trino-plugin-ignite | 0 | 434-r0 |
| Wolfi | trino-plugin-jmx | 0 | 434-r0 |
| Wolfi | trino-plugin-kafka | 0 | 434-r0 |
| Wolfi | trino-plugin-kafka-event-listener | 0 | 434-r0 |
| Wolfi | trino-plugin-kinesis | 0 | 434-r0 |
| Wolfi | trino-plugin-kudu | 0 | 434-r0 |
| Wolfi | trino-plugin-lakehouse | 0 | 434-r0 |
| Wolfi | trino-plugin-ldap-group-provider | 0 | 434-r0 |
| Wolfi | trino-plugin-local-file | 0 | 434-r0 |
| Wolfi | trino-plugin-loki | 0 | 434-r0 |
| Wolfi | trino-plugin-mariadb | 0 | 434-r0 |
| Wolfi | trino-plugin-memory | 0 | 434-r0 |
| Wolfi | trino-plugin-ml | 0 | 434-r0 |
| Wolfi | trino-plugin-mongodb | 0 | 434-r0 |
| Wolfi | trino-plugin-mysql | 0 | 434-r0 |
| Wolfi | trino-plugin-mysql-event-listener | 0 | 434-r0 |
| Wolfi | trino-plugin-opa | 0 | 434-r0 |
| Wolfi | trino-plugin-openlineage | 0 | 434-r0 |
| Wolfi | trino-plugin-opensearch | 0 | 434-r0 |
| Wolfi | trino-plugin-oracle | 0 | 434-r0 |
| Wolfi | trino-plugin-password-authenticators | 0 | 434-r0 |
| Wolfi | trino-plugin-phoenix5 | 0 | 434-r0 |
| Wolfi | trino-plugin-pinot | 0 | 434-r0 |
| Wolfi | trino-plugin-postgresql | 0 | 434-r0 |
| Wolfi | trino-plugin-prometheus | 0 | 434-r0 |
| Wolfi | trino-plugin-ranger | 0 | 434-r0 |
| Wolfi | trino-plugin-raptor-legacy | 0 | 434-r0 |
| Wolfi | trino-plugin-redis | 0 | 434-r0 |
| Wolfi | trino-plugin-redshift | 0 | 434-r0 |
| Wolfi | trino-plugin-resource-group-managers | 0 | 434-r0 |
| Wolfi | trino-plugin-session-property-managers | 0 | 434-r0 |
| Wolfi | trino-plugin-singlestore | 0 | 434-r0 |
| Wolfi | trino-plugin-snowflake | 0 | 434-r0 |
| Wolfi | trino-plugin-spooling-filesystem | 0 | 434-r0 |
| Wolfi | trino-plugin-sqlserver | 0 | 434-r0 |
| Wolfi | trino-plugin-teradata-functions | 0 | 434-r0 |
| Wolfi | trino-plugin-thrift | 0 | 434-r0 |
| Wolfi | trino-plugin-tpcds | 0 | 434-r0 |
| Wolfi | trino-plugin-tpch | 0 | 434-r0 |
| Wolfi | trino-plugin-vertica | 0 | 434-r0 |
| Wolfi | zookeeper-3.8 | 0 | 3.8.3.0-r7 |
| Wolfi | zookeeper-3.9 | 0 | 3.9.1.0-r7 |
| Wolfi | zookeeper-3.9-iamguarded-compat | 0 | 3.9.1.0-r7 |
| Wolfi | zookeeper-bitnami-3.8-compat | 0 | 3.8.3.0-r7 |
| Wolfi | zookeeper-bitnami-3.9-compat | 0 | 3.9.1.0-r7 |
| maven | ch.qos.logback/logback-classic | 1.3.0 | 1.3.12 |
| maven | ch.qos.logback/logback-classic | 1.4.0 | 1.4.12 |
| maven | ch.qos.logback/logback-core | 1.3.0 | 1.3.12 |
| maven | ch.qos.logback/logback-core | 1.4.0 | 1.4.12 |
| openSUSE:Tumbleweed | logback | 0 | 1.2.13-1.1 |
Related vulnerabilities
- CVE-2026-1225 ACE vulnerability in configuration file processing by QOS.CH logback-core up to and… Also affects ch.qos.logback:logback-core
- CVE-2025-11226 ACE vulnerability in conditional configuration file processing by QOS.CH logback-core up… Also affects ch.qos.logback:logback-core
- CVE-2024-12801 Server-Side Request Forgery (SSRF) in SaxEventRecorder by QOS.CH logback version 0.1 to… Also affects ch.qos.logback:logback-core
- CVE-2024-12798 ACE vulnerability in JaninoEventEvaluator by QOS.CH logback-core upto including version… Also affects ch.qos.logback:logback-core
- CVE-2023-6481 A serialization vulnerability in logback receiver component part of logback version… Also affects ch.qos.logback:logback-core
- CVE-2025-66566 yawkat LZ4 Java provides LZ4 compression for Java. Also affects cassandra-4.0
- CVE-2025-12183 Out-of-bounds memory operations in org.lz4:lz4-java 1.8.0 and earlier allow remote… Also affects cassandra-4.0
- CVE-2025-48924 Apache Commons Lang is vulnerable to Uncontrolled Recursion when processing long inputs Also affects cassandra-4.0