Nueva vulnerabilidad del lenguaje de programación R expone los proyectos a ataques a la cadena de suministro

0

Una vulnerabilidad en el lenguaje de programación R expone los proyectos a ataques cibernéticos a la supplychain

Vulnerabilidades en el lenguaje de programación R

Se ha encontrado una vulnerabilidad de seguridad en el lenguaje de programación R que podría ser aprovechada por un agente malintencionado para crear un archivo RDS (R Data Serialization) malicioso, lo que resultaría en la ejecución de código al cargarlo y hacer referencia a él.

La falla, identificada con el CVE CVE-2024-27322 (puntuación CVSS: 8.8), «implica el uso de objetos de promesa y evaluación diferida en R,» según un informe de la compañía de seguridad de aplicaciones de inteligencia artificial HiddenLayer.

Al igual que pickle en Python, RDS es un formato utilizado para serializar y guardar el estado de estructuras de datos u objetos en R, un lenguaje de programación de código abierto utilizado en cálculos estadísticos, visualización de datos y aprendizaje automático.

Este proceso de serialización -serialize() o saveRDS() – y deserialización – unserialize() y readRDS() – también se utiliza al guardar y cargar paquetes R.

La causa principal detrás de CVE-2024-27322 radica en que podría conducir a la ejecución de código arbitrario al deserializar datos no confiables, dejando así a los usuarios expuestos a ataques de la cadena de suministro mediante paquetes R especialmente diseñados.

Un atacante que busque aprovechar esta falla podría aprovechar el hecho de que los paquetes R utilizan el formato RDS para guardar y cargar datos, provocando la ejecución automática de código cuando se descomprime y deserializa el paquete.

«Los paquetes R son vulnerables a este exploit y, por lo tanto, pueden ser utilizados como parte de un ataque de la cadena de suministro a través de repositorios de paquetes. Para que un atacante tome el control de un paquete R, todo lo que necesita hacer es sobrescribir el archivo rdx con el archivo manipulado maliciosamente, y cuando se cargue el paquete, se ejecutará automáticamente el código», afirmaron los investigadores de seguridad Kasimir Schulz y Kieran Evans.

La falla de seguridad ha sido resuelta en la versión 4.4.0 lanzada el 24 de abril de 2024, tras una divulgación responsable.

«Un atacante puede aprovechar esta [falla] mediante la creación de un archivo en formato RDS que incluya una instrucción promise configurando el valor en unbound_value y la expresión para contener código arbitrario. Debido a la evaluación perezosa, la expresión solo se evaluará y ejecutará cuando se acceda al símbolo asociado con el archivo RDS», explicó HiddenLayer.

«Por lo tanto, si se trata simplemente de un archivo RDS, cuando un usuario le asigne un símbolo (variable) para trabajar con él, el código arbitrario se ejecutará al hacer referencia a ese símbolo. Si el objeto está integrado en un paquete R, dicho paquete puede ser agregado a un repositorio R como CRAN, y la expresión será evaluada y se ejecutará el código arbitrario cuando un usuario cargue dicho paquete.»

Actualización

El Centro de Coordinación CERT (CERT/CC) ha emitido un aviso para CVE-2024-27322, indicando que la falla podría ser explotada para lograr la ejecución de código arbitrario en el dispositivo objetivo de la víctima mediante archivos RDS o rdx malintencionados.

«Un atacante puede crear archivos .rds y .rdx maliciosos y utilizar la ingeniería social para distribuir esos archivos y ejecutar código arbitrario en el dispositivo de la víctima. Los proyectos que emplean readRDS en archivos no confiables también son susceptibles al ataque», informó CERT/CC.


Gracias por apoyar el libre conocimiento con tu donación!
Bitcoin: bc1q4sw9260twfcxatj8mjp7358cyvrf8whzlelyhj
Ethereum: 0xFb93D2a3c9d1A0b83EE629c2dE1725BCa192e581
Litecoin: LbFduJmHvQXcpCnwfUT7aJ4DYoWSL3iQw8
Dogecoin: D7QQVqNR5rk215A4zd2gyzV9P2bLQtZHFV
Transferencia bancaria en México:
Cuenta CLABE: 661610005838513425 Nombre: Masterhacks LATAM Banco: Alternativos

Unete a nuestros grupos:
WhatsApp: https://chat.whatsapp.com/HcazyklpyeU4X3BF657KFQ
Telegram: https://t.me/masterhacks_net
Canal de WhatsApp https://whatsapp.com/channel/0029VaBBLCn5vKAH9NOWCl3K

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *