Zonder een patch bevat de R-programmeertaal een ernstige kwetsbaarheid. Door een fout in het omzetten van data kunnen kwaadwillenden hun eigen programmeercode in IT-omgevingen uitvoeren.
CVE-2024-27322 betreft een fout in het deserialisatieproces. Dit is nodig om objecten en configuratiebestanden in onder meer JSON, XML, YAML en binaire notatie te decoderen. Het opslaan van dergelijke bestanden maakt het eenvoudiger om bepaalde configuraties te delen met anderen. Een R Data Serialization (RDS)-bestand kan echter malafide zijn, dus een aanvaller hoeft enkel een gebruiker te overtuigen dat het uitvoeren hiervan nodig of voordelig is.
R veel in gebruik voor kritieke toepassingen
R wordt veel gebruikt voor statistische analyse, datavisualisatie en en machine learning. HiddenLayer, dat de kwetsbaarheid ontdekte, legt uit dat de taal populair is voor toepassingen in kritieke sectoren als de gezondheidszorg, de financiële wereld en bij overheidsinstanties. NASA, de WHO en het Amerikaanse leger maken er onder meer gebruik van.
Versie 4.4.0 van R (“Puppy Cup”) lost het probleem in kwestie op. Organisaties die niet updaten, zijn kwetsbaar voor de exploitatie. Een daadwerkelijke aanval is vrij complex om uit te voeren, maar kan grote gevolgen hebbben. HiddenLayer stelt dat de impact van een compromis groot kan zijn. Zeker omdat R gebruikt wordt door organisaties die actief zijn in kritieke sectoren, is het patchen van het potentiële gevaar van groot belang.
Supply chain-gevaar
Kwetsbaarheden in software zijn niets nieuws. Echter zijn ze onder programmeertalen zelf een stuk minder prominent. Vaak is ook niet duidelijk wiens schuld een specifiek gevaar is, zoals het geval was bij een recente Rust-kwetsbaarheid in Windows. Hoewel dit command injection-gevaar (CVE-2024-24576) enkel op het Microsoft-OS kan plaatsvinden, lijkt de fout in een implementatie van het Rust-team te zitten. Ook daar is inmiddels een patch beschikbaar, dus alle versies na 1.77.2 lopen op dit gebied geen risico.
De R-kwetsbaarheid lijkt enigszins op een ouder gevaar in de Python Pickle-module uit 2015. In dat geval is de serialisatie, dus juist het encoderingsproces, de boosdoener. Malafide “pickle-streams” kunnen tot exploitatie leiden.
Lees ook: ‘Eén op de drie applicaties bevat ernstige kwetsbaarheid’