ProgrammÄÅ”anas valodas R galvenajÄ implementÄcijÄ ir konstatÄta kritiska ievainojamÄ«ba (CVE-2024-27322), kas ir vÄrsta uz datu statistiskÄs apstrÄdes, analÄ«zes un vizualizÄcijas problÄmu risinÄÅ”anu, kas noved pie koda izpildes, deserializÄjot nepÄrbaudÄ«tus datus. IevainojamÄ«bu var izmantot, apstrÄdÄjot Ä«paÅ”i izstrÄdÄtus failus RDS (R Data Serialization) un RDX formÄtos, ko izmanto datu apmaiÅai starp lietojumprogrammÄm. ProblÄma ir atrisinÄta R 4.4.0 laidienÄ. Varat izsekot pakotÅu atjauninÄjumu izlaiÅ”anai izplatÄ«jumos Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD lapÄs.
IevainojamÄ«bu izraisa funkcija readRDS, ko izmanto, lai ielÄdÄtu failus RDS un RDX formÄtos, kas ļauj serializÄtus R objektus pÄrsÅ«tÄ«t apstrÄdei citÄ sistÄmÄ. SerializÄcija ļauj uztvert stÄvokli un apmainÄ«ties ar datu kopÄm starp programmÄm. RDS formÄts ļauj saglabÄt stÄvokli par vienu objektu, un RDX formÄts kombinÄcijÄ ar RDB failiem ļauj pÄrsÅ«tÄ«t informÄciju par vairÄkiem objektiem. ProblÄma ir tÄ, ka RDS formÄts atbalsta PROMSXP objekta kodu, kas saistÄ«ts ar Promise tipu, ko izmanto, lai definÄtu izteiksmes, kuras tiek izsauktas asinhroni, ja tiek izmantotas ar tÄm saistÄ«tÄs vÄrtÄ«bas.
DeserializÄcijas laikÄ solÄ«juma objekta definÄÅ”anai tiek izmantotas trÄ«s daļas ā solÄ«juma vÄrtÄ«ba, izteiksme un vide. Ja tipam Promise nav iepriekÅ” aprÄÄ·inÄtas vÄrtÄ«bas, to aprÄÄ·ina deserializÄcijas laikÄ, izpildot izteiksmi, izmantojot funkciju "eval". TÄdÄ veidÄ uzbrucÄjs var izraisÄ«t patvaļīga R koda izpildi, aizstÄjot to ar izteiksmi, kas saistÄ«ta ar neaprÄÄ·inÄtÄm vÄrtÄ«bÄm RDS vai RDX failos.
Avots: opennet.ru
