I hovedimplementationen af programmeringssproget R, der er rettet mod løsningen af opgaver inden for statistisk behandling, analyse og visualisering af data, er der opdaget en kritisk sårbarhed (CVE-2024-27322), der fører til kodeudførelse ved deserialisering af upolerede data. Sårbarheden kan udnyttes ved behandling af specielt udformede filer i RDS (R Data Serialization) og RDX formater, der anvendes til datadeling mellem applikationer. Problemet er løst i udgivelsen R 4.4.0. Opdateringer til pakker i distributioner kan følges på siderne for Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD.
Sårbarheden skyldes en funktion ved readRDS, der anvendes til at indlæse filer i RDS og RDX formater, som tillader transmission af serialiserede R-objekter til behandling på et andet system. Serialisering muliggør at fastfryse tilstande og dele datasæt mellem programmer. RDS-formatet muliggør lagring af tilstanden af et enkelt objekt, mens RDX-formatet i kombination med RDB-filer giver mulighed for at overføre information om flere objekter. Problemet relaterer sig til, at RDS-formatet understøtter objekttypen PROMSXP, der er relateret til Promise-typen, som anvendes til at definere udtryk, der kaldes asynkront ved brug af de tilknyttede værdier.
Ved deserialisering bruges tre komponenter til at bestemme Promise-objektet — værdien af Promise, udtrykket og miljøet. Hvis der ikke er tildelt en forudberegnet værdi for Promise-typen, beregnes den ved deserialisering gennem udførelsen af udtrykket ved hjælp af funktionen "eval". På denne måde kan en angriber opnå udførelse af vilkårlig kode i R-sproget ved at indsætte den i stedet for udtrykket relateret til de ikke-beregnede værdier i RDS eller RDX-filer.
Kilde: opennet.ru
