cpp-httplib Untrusted HTTP Header Handling: ombreig intern de la capçalera (REMOTE*/LOCAL*)

ALERTES

10/12/2025

CVE-2025-66570

CRÍTIC (10,0)

CVSS3: 0,0

cpp-httplib és una biblioteca HTTP/HTTPS multiplataforma de només capçalera de fitxer únic en C++11. Abans de la versió 0.27.0, una vulnerabilitat permet que les capçaleres HTTP controlades per l’atacant influeixin en les metadades visibles del servidor, el registre i les decisions d’autorització. Un atacant pot injectar capçaleres anomenades REMOTE_ADDR, REMOTE_PORT, LOCAL_ADDR, LOCAL_PORT que s’analitzen al mapa múltiple de capçalera de sol·licitud mitjançant read_headers() a httplib.h (headers.emplace), i després el servidor afegeix les seves pròpies metadades internes fent servir els mateixos noms de capçalera a Server::process_request sense esborrar els duplicats. Com que Request::get_header_value retorna la primera entrada per a una clau de capçalera (id == 0) i les capçaleres proporcionades pel client s’analitzen abans de les capçaleres inserides pel servidor, el codi posterior que utilitza aquests noms de capçalera pot utilitzar inadvertidament valors controlats per l’atacant. Fitxers/ubicacions afectats: cpp-httplib/httplib.h (read_headers, Server::process_request, Request::get_header_value, get_header_value_u64) i cpp-httplib/docker/main.cc (get_client_ip, nginx_access_logger, nginx_error_logger). Superfície d’atac: les capçaleres HTTP controlades per l’atacant a les sol·licituds entrants flueixen al mapa múltiple Request.headers i al codi de registre que llegeix les capçaleres reenviades, cosa que permet la suplantació d’IP, l’enverinament de registres i l’elusió de l’autorització mitjançant l’ombreig de les capçaleres. Aquesta vulnerabilitat s’ha corregit a la versió 0.27.0.

post:/platform/configuration/security/service-accountsdelete:/platform/configuration/security/service-accounts/{user_id}patch:/platform/configuration/security/service-accounts/{user_id}post:/platform/configuration/security/service-accounts/{user_id}/keysdelete:/platform/configuration/security/service-accounts/{user_id}/keys/{api_key_id}patch:/userpost:/userspost:/users/auth/keysdelete:/users/auth/keysdelete:/users/auth/keys/_alldelete:/users/auth/keys/{api_key_id}delete:/users/{user_id}/auth/keysdelete:/users/{user_id}/auth/keys/{api_key_id}delete:/users/{user_name}patch:/users/{user_name}

Sistemes Afectats

  • yhirose cpp-httplib < 0.27.0

Remediació
Actualitzeu a la versió 0.27.0 o posterior. Vegeu-ne les Referències.