CVE-2024-56128

Incorrect Implementation of Authentication Algorithm in Apache Kafka's SCRAM implementation. Issue Summary: Apache Kafka's implementation of the Salted Challenge Response Authentication Mechanism (SCRAM) did not fully adhere to the requirements of RFC 5802 [1]. Specifically, as per RFC 5802, the server must verify that the nonce sent by the client in the second message matches the nonce sent by the server in its first message. However, Kafka's SCRAM implementation did not perform this validation. Impact: This vulnerability is exploitable only when an attacker has plaintext access to the SCRAM authentication exchange. However, the usage of SCRAM over plaintext is strongly discouraged as it is considered an insecure practice [2]. Apache Kafka recommends deploying SCRAM exclusively with TLS encryption to protect SCRAM exchanges from interception [3]. Deployments using SCRAM with TLS are not affected by this issue. How to Detect If You Are Impacted: If your deployment uses SCRAM authentication over plaintext communication channels (without TLS encryption), you are likely impacted. To check if TLS is enabled, review your server.properties configuration file for listeners property. If you have SASL_PLAINTEXT in the listeners, then you are likely impacted. Fix Details: The issue has been addressed by introducing nonce verification in the final message of the SCRAM authentication exchange to ensure compliance with RFC 5802. Affected Versions: Apache Kafka versions 0.10.2.0 through 3.9.0, excluding the fixed versions below. Fixed Versions: 3.9.0 3.8.1 3.7.2 Users are advised to upgrade to 3.7.2 or later to mitigate this issue. Recommendations for Mitigation: Users unable to upgrade to the fixed versions can mitigate the issue by: - Using TLS with SCRAM Authentication: Always deploy SCRAM over TLS to encrypt authentication exchanges and protect against interception. - Considering Alternative Authentication Mechanisms: Evaluate alternative authentication mechanisms, such as PLAIN, Kerberos or OAuth with TLS, which provide additional layers of security.
Configurations

Configuration 1 (hide)

OR cpe:2.3:a:apache:kafka:*:*:*:*:*:*:*:*
cpe:2.3:a:apache:kafka:3.8.0:*:*:*:*:*:*:*

History

20 Jun 2025, 18:13

Type Values Removed Values Added
References () https://datatracker.ietf.org/doc/html/rfc5802 - () https://datatracker.ietf.org/doc/html/rfc5802 - Technical Description
References () https://datatracker.ietf.org/doc/html/rfc5802#section-9 - () https://datatracker.ietf.org/doc/html/rfc5802#section-9 - Technical Description
References () https://kafka.apache.org/documentation/#security_sasl_scram_security - () https://kafka.apache.org/documentation/#security_sasl_scram_security - Product
References () https://lists.apache.org/thread/84dh4so32lwn7wr6c5s9mwh381vx9wkw - () https://lists.apache.org/thread/84dh4so32lwn7wr6c5s9mwh381vx9wkw - Mailing List, Vendor Advisory
References () http://www.openwall.com/lists/oss-security/2024/12/18/3 - () http://www.openwall.com/lists/oss-security/2024/12/18/3 - Mailing List, Third Party Advisory
CPE cpe:2.3:a:apache:kafka:3.8.0:*:*:*:*:*:*:*
cpe:2.3:a:apache:kafka:*:*:*:*:*:*:*:*
CWE NVD-CWE-Other
Summary
  • (es) Implementación incorrecta del algoritmo de autenticación en la implementación SCRAM de Apache Kafka. Resumen del problema: La implementación de Apache Kafka del mecanismo de autenticación de respuesta a desafío con sal (SCRAM) no se adhirió completamente a los requisitos de RFC 5802 [1]. Específicamente, según RFC 5802, el servidor debe verificar que el nonce enviado por el cliente en el segundo mensaje coincida con el nonce enviado por el servidor en su primer mensaje. Sin embargo, la implementación SCRAM de Kafka no realizó esta validación. Impacto: Esta vulnerabilidad es explotable solo cuando un atacante tiene acceso de texto simple al intercambio de autenticación SCRAM. Sin embargo, el uso de SCRAM sobre texto simple se desaconseja enfáticamente ya que se considera una práctica insegura [2]. Apache Kafka recomienda implementar SCRAM exclusivamente con cifrado TLS para proteger los intercambios SCRAM de la intercepción [3]. Las implementaciones que utilizan SCRAM con TLS no se ven afectadas por este problema. Cómo detectar si está afectado: si su implementación utiliza autenticación SCRAM sobre canales de comunicación de texto plano (sin cifrado TLS), es probable que esté afectado. Para verificar si TLS está habilitado, revise su archivo de configuración server.properties para la propiedad listeners. Si tiene SASL_PLAINTEXT en los listeners, es probable que esté afectado. Detalles de la solución: el problema se ha solucionado introduciendo la verificación de nonce en el mensaje final del intercambio de autenticación SCRAM para garantizar el cumplimiento de RFC 5802. Versiones afectadas: Apache Kafka versiones 0.10.2.0 a 3.9.0, excluidas las versiones corregidas a continuación. Versiones corregidas: 3.9.0 3.8.1 3.7.2 Se recomienda a los usuarios que actualicen a 3.7.2 o posterior para mitigar este problema. Recomendaciones para la mitigación: los usuarios que no puedan actualizar a las versiones corregidas pueden mitigar el problema mediante lo siguiente: - Uso de TLS con autenticación SCRAM: siempre implemente SCRAM sobre TLS para cifrar los intercambios de autenticación y protegerse contra la interceptación. - Consideración de mecanismos de autenticación alternativos: evaluar mecanismos de autenticación alternativos, como PLAIN, Kerberos u OAuth con TLS, que proporcionan capas adicionales de seguridad.
First Time Apache
Apache kafka

18 Dec 2024, 17:15

Type Values Removed Values Added
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.3
References
  • () http://www.openwall.com/lists/oss-security/2024/12/18/3 -

18 Dec 2024, 14:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-12-18 14:15

Updated : 2025-06-20 18:13


NVD link : CVE-2024-56128

Mitre link : CVE-2024-56128

CVE.ORG link : CVE-2024-56128


JSON object : View

Products Affected

apache

  • kafka
CWE
CWE-303

Incorrect Implementation of Authentication Algorithm

NVD-CWE-Other