// For flags

CVE-2024-2746

Incomplete fix for CVE-2024-1929

Severity Score

8.8
*CVSS v3.1

Exploit Likelihood

*EPSS

Affected Versions

*CPE

Public Exploits

4
*Multiple Sources

Exploited in Wild

-
*KEV

Decision

Track*
*SSVC
Descriptions

Incomplete fix for CVE-2024-1929

The problem with CVE-2024-1929 was that the dnf5 D-Bus daemon accepted arbitrary configuration parameters from unprivileged users, which allowed a
local root exploit by tricking the daemon into loading a user controlled "plugin". All of this happened before Polkit authentication was even started.

The dnf5 library code does not check whether non-root users control the directory in question. 

On one hand, this poses a Denial-of-Service attack vector by making the daemonoperate on a blocking file (e.g. named FIFO special file) or a very large file
that causes an out-of-memory situation (e.g. /dev/zero). On the other hand, this can be used to let the daemon process privileged files like /etc/shadow.
The file in question is parsed as an INI file. Error diagnostics resulting from parsing privileged files could cause information leaks, if these diagnostics
are accessible to unprivileged users. In the case of libdnf5, no such user accessible diagnostics should exist, though.

Also, a local attacker can place a valid repository configuration file in this directory. This configuration file allows to specify
a plethora of additional configuration options. This makes various additional code paths in libdnf5 accessible to the attacker.

Solución incompleta para CVE-2024-1929 El problema con CVE-2024-1929 era que el daemon dnf5 D-Bus aceptaba parámetros de configuración arbitrarios de usuarios sin privilegios, lo que permitía un exploit de raíz local engañando al daemon para que cargara un "complemento" controlado por el usuario. Todo esto sucedió incluso antes de que se iniciara la autenticación Polkit. El código de la librería dnf5 no comprueba si los usuarios no root controlan el directorio en cuestión. Por un lado, esto plantea un vector de ataque de denegación de servicio al hacer que el daemon opere en un archivo de bloqueo (por ejemplo, un archivo especial llamado FIFO) o un archivo muy grande que causa una situación de falta de memoria (por ejemplo, /dev/zero). Por otro lado, esto se puede utilizar para permitir que el daemon procese archivos privilegiados como /etc/shadow. El archivo en cuestión se analiza como un archivo INI. Los diagnósticos de errores resultantes del análisis de archivos privilegiados podrían causar fugas de información, si estos diagnósticos son accesibles para usuarios sin privilegios. Sin embargo, en el caso de libdnf5, no debería existir ningún diagnóstico accesible para el usuario. Además, un atacante local puede colocar un archivo de configuración de repositorio válido en este directorio. Este archivo de configuración permite especificar una gran cantidad de opciones de configuración adicionales. Esto hace que el atacante pueda acceder a varias rutas de código adicionales en libdnf5.

*Credits: N/A
CVSS Scores
Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Changed
Confidentiality
High
Integrity
High
Availability
High
* Common Vulnerability Scoring System
SSVC
  • Decision:Track*
Exploitation
None
Automatable
No
Tech. Impact
Total
* Organization's Worst-case Scenario
Timeline
  • 2024-03-20 CVE Reserved
  • 2024-04-13 First Exploit
  • 2024-05-08 CVE Published
  • 2024-05-08 EPSS Updated
  • 2024-08-12 CVE Updated
  • ---------- Exploited in Wild
  • ---------- KEV Due Date
CWE
  • CWE-20: Improper Input Validation
CAPEC
Affected Vendors, Products, and Versions
Vendor Product Version Other Status
Vendor Product Version Other Status <-- --> Vendor Product Version Other Status
Fedora
Search vendor "Fedora"
Dnf5daemon-server
Search vendor "Fedora" for product "Dnf5daemon-server"
5.1.16
Search vendor "Fedora" for product "Dnf5daemon-server" and version "5.1.16"
en
Affected