Tutoriales y Manuales
Entradas Mensuales
-
►
2024
(Total:
1019
)
- ► septiembre (Total: 50 )
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
▼
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
▼
febrero
(Total:
75
)
- Lapsus$ filtra un torrent con casi 19GB de informa...
- Grupo sudamericano Lapsus hackea nVidia y roba 1TB...
- El ejército de Ucrania pide a los ciudadanos que t...
- Elon Musk activa servicio internet por satélite co...
- La restauración de fábrica de Windows 11 deja arc...
- Google está modificando por primera vez su página ...
- Algunos SSD NVMe pueden perder datos cuando se va ...
- Rusia ataca de nuevo con malware destructivo (Herm...
- La descarga de una película pirata con malware pro...
- Eurolink: 6 mil millones de € de la Unión Europea ...
- Alternativas a los sistemas operativos Windows, Ma...
- Arrancar en modo seguro en Windows 11
- Sistemas vulnerables para practicar legalmente ata...
- Linux es más rápido que Apple o Microsoft en corre...
- Windows 11 dejará de admitir los cifrados inseguro...
- Xenomorph es un nuevo malware para Android capaz d...
- Google Drive bloquea por error archivos .DS__Store...
- NAS ASUSTOR afectado por ataques del ransomware De...
- Instalar un firmware no oficial en un router neutr...
- Vulnerabilidad de validación de entrada datos numé...
- Unredacter es una herramienta gratuita para recupe...
- Deja sin Internet a todo un barrio para evitar que...
- Aceptar Cookies automáticamente y evitar mensajes ...
- EE.UU. dice que Rusos atacaron contratistas americ...
- Introducción al Sandbox de Privacidad de Android
- Ficheros /etc/passwd /etc/shadow y /etc/group en G...
- Google presenta Chrome OS Flex, un nuevo sistema o...
- Envían 1TB en 1 segundo a 1 kilómetro de distancia...
- ¿Qué es el SIM Swapping? Así pueden hackear tus cu...
- El 74% del dinero robado en ataques de ransomware ...
- Actualizaciones de seguridad importantes de Apple ...
- Cibertataques en Ucrania: Agencias militares y ban...
- pfSense distro basada en FreeBSD monitoriza y admi...
- Nueva versión distro Hacking: Kali Linux 2022.1
- Administrar y crear servicios con systemd en Linux...
- Un bug de Zoom para MacOS Monterey dejaba encendid...
- Android 13 permite ejecutar Windows 10, 11 y distr...
- Windows añade protecciones para evitar la extracci...
- Telefónica, Vodafone y Orange dicen que las empres...
- Detenidos en Madrid por fraude zapatillas falsific...
- Intel estrena con el kernel 5.18 funciones de pago...
- Google paga 8.7 millones de dólares en recompensas...
- AMD rompe su récord de cuota de mercado como fabri...
- Empiezan a vender "Air Tags" silenciados para espi...
- Mejora la temperatura de tu SSD con un disipador d...
- Malware Qbot necesita sólo 30 minutos para robar d...
- La Policía Nacional desarticula una organización c...
- SpaceX pierde 40 de los 49 nuevos satélites instal...
- Plugins y addons (scripts) para el firmware router...
- EE. UU. incauta 3.600 millones de dólares robados ...
- Microsoft deshabilita temporalmente los instalador...
- Multadas con casi 6 millones de € varias operadora...
- Ciberataque a Vodafone Portugal deja sin servicio ...
- NVIDIA abandona finalmente de forma oficial sus pl...
- La UE invertirá 43.000 millones de euros para dupl...
- Google afirma que la verificación en 2 pasos ha co...
- Microsoft deshabilitará por defecto las macros en ...
- Países Bajos multa a Apple con 5 millones € por la...
- El nuevo super yate de Jeff Bezos es tan grande qu...
- Una filtración de datos expone las identificacione...
- Meta amenaza con cerrar Facebook e Instagram en Eu...
- Microsoft detectó 35.700 millones de intentos de a...
- The Wall Street Journal hackeado por China
- Facebook pierde usuarios por primera vez en su his...
- El nuevo estándar WiFi 802.11bf permitirá detectar...
- Mozilla refuerza la privacidad Firefox combinando ...
- Monitorizar el rendimiento de contenedores Docker ...
- Raspberry Pi OS ya está disponible en 64 bits de f...
- VLC denuncia que hay personas domiciliando sus rec...
- Estándar Encrypted Client Hello (ECH) permitirá me...
- Roban 320 millones dólares de Ethereum a la plataf...
- Comando Robocopy: herramienta copia de seguridad d...
- Publicado exploit para nueva vulnerabilidad local ...
- Microsoft explica el motivo porque algunos usuario...
- La huella digital de tu GPU también sirve para ras...
-
►
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
Entradas populares
-
Después de ver qué es una vCPU y la diferencia entre núcleos (cores) e hilos en los procesadores, pasamos a explicar toda la nomenclatura d...
-
En el panorama en constante evolución de la seguridad de redes, OpnSense se ha convertido en una formidable solución de firewall. Nacido de...
-
Pese a que Gemini ofrece multitudes de opciones, recientemente, se ha dado a conocer una situación fuera de lo común. Hace unos días, un es...
Vulnerabilidad de validación de entrada datos numéricos en PHP
La vulnerabilidad identificada como CVE-2021-21708 puede provocar Denegación de Servicio (DoS) y RCE afecta en la validación de entrada datos numéricos en la función php_filter_float() en las versiones de PHP 7.4, y PHP 8.1
PHP corrige un fallo de seguridad en el código de validación de entrada
Si estás usando PHP en tu red, comprueba que estás usando la última versión, actualmente la 8.1.3. Publicada el 17/2/2022, esta versión corrige varios errores de gestión de la memoria, incluido CVE-2021-21708, que es una vulnerabilidad use-after-free en una función llamada php_filter_float().
(Las versiones 8.0 y 7.4 aún son compatibles y también son vulnerables; si no estás utilizando la versión más reciente de PHP (8.1), necesitas 8.0.16 y 7.4.28 respectivamente).
Un exploit de prueba de concepto basado en el uso de PHP para consultar una base de datos muestra que el error se puede usar para bloquear el proceso de PHP, por lo que ya se sabe que es posible un ataque de denegación de servicio (DoS).
Por supuesto, como a Mozilla le gusta señalar de manera rutinaria e inquebrantable en sus actualizaciones periódicas, cuando se corrigen errores que muestran evidencia de corrupción de la memoria, se debe “asumir que con suficiente esfuerzo algunos podrían haber sido explotados para ejecutar código arbitrario”.
La ejecución remota de código (RCE), en la que los datos enviados desde el exterior no solo bloquean un programa en tu ordenador, sino que también pueden obtener el control del mismo, generalmente conduce a la intrusión en la red, la exfiltración de datos, la implantación de malware o a un desagradable cóctel de todos ellos.
Código de validación inválido
Irónicamente, las funciones de filtro de PHP están diseñadas para validar los datos entrantes, por ejemplo, para asegurarse de que si esperas que alguien te envíe un número entero (por ejemplo: 5, 7, 11), no te han enviado una cadena de texto que no se puede convertir de forma fiable en un número entero, como 3,14159 o 3/16 de pulgada.
El error CVE-2021-21708 es parte del código que verifica los números de punto flotante, un término utilizado para lo que probablemente llamas “números reales” o “decimales”.
Los decimales suelen tener un punto (o una coma, según el país) que separa la parte entera de la parte fraccionaria, como en 2,5 para representar dos y cinco décimos o dos y medio.
Las funciones de filtro numérico de PHP permiten verificar no solo que el número entrante sea válido, sino también que esté dentro de un rango específico, como asegurarse de que no sea mayor a 2,71828 o que esté entre -1 y 1.
Si el número entrante ya es un número de punto flotante (un decimal), entonces se utiliza el código que se muestra a continuación, donde el antiguo código PHP (8.1.2) está a la izquierda y el nuevo código (8.1.3) está en la derecha. (No hay ningún error aquí, por lo que las dos versiones son idénticas).
No te preocupes si no sabes C; lo importante a tener en cuenta es que la verificación de errores se realiza primero, seguida de una línea que libera la memoria que PHP usa para almacenar el número, seguida inmediatamente de una línea que reasigna la memoria para que la use PHP.
En caso de que te lo estés preguntando, el curioso nombre zval_ptr_dtor() es una abreviatura de destructor de puntero de memoria interna de PHP:
Si el número es un número entero, sin parte decimal, se usa un código ligeramente diferente.
A continuación, como puedes ver, la secuencia de “hacer el chequeo y salir si falla; pero si está bien, desasignar y reasignar almacenamiento para el número” se mezcló en la versión anterior.
La secuencia fue “desasignar la memoria utilizada por este valor de PHP, luego hacer la verificación y salir si falla, dejando atrás un objeto de PHP que se refiere a la memoria que pronto se asignará a otra cosa y por lo tanto causará un conflicto use-after-free; pero si la comprobación está bien entonces reasignar nuevo almacenamiento para el número”.
Eso es un poco como entrar primero en la carretera y solo luego comprobar si es seguro y completar el cruce.
El código actualizado en la versión 8.1.3 ha restaurado el código a una secuencia más segura, aunque sería aún más seguro si hubiera una sola función llamada, por ejemplo, dtor_and_alloc_in_one_go(), para que los futuros programadores no pudieran volver a insertar accidentalmente el código entre la llamada al destructor y la llamada al asignador.
El nuevo código es más como comprobar primero si la carretera es segura, luego entrar en ella y caminar directamente hacia el otro lado.
La vista “diff” (jerga para la diferencia de código) creada por Visual Studio Code muestra claramente cómo la línea marcada en rojo en la versión 8.1.2 se movió hacia abajo al punto verde en la versión 8.1.3:
¿Qué hacer?
- Si eres usuario de PHP, actualiza a 8.1.3. Si aún no has cambiado a la versión 8.1 de PHP, todavía se admiten otras dos versiones anteriores: la 8.0 necesita actualizarse a 8.0.16 y la 7.4 necesita actualizarse a 7.4.28. Si estás utilizando una distribución de Linux que administra PHP por ti, verifica tu distribución para obtener más detalles.
- Si eres programador, recuerda que el código escrito en C requiere que tengas cuidado con la memoria todo el tiempo y en todas partes, para que errores bien escondidos como este no pasen desapercibidos.
- Si eres un programador, intente escribir tu código para reducir la cantidad de formas en que los codificadores que vienen detrás de ti pueden introducir errores.
Fuentes:
0 comentarios :
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.