Det blev känt information om en sårbarhet (redan katalogiserad under CVE-2023-43641) som identifierades i libcue-biblioteket, som används för att analysera metadata med information om ordning och varaktighet för ljudspår.
För de som inte känner till libcue så ska ni veta att det är ett bibliotek som Begagnade att analysera referensblad, ett format av metadata för att beskriva layouten av spår på en CD. Fuskblad används ofta i kombination med ljudfilformatet FLAC, vilket innebär att libcue är ett beroende av vissa ljudspelare.
Det nämns att svårighetsgraden av sårbarheten beror på att detta tillåter exekvering av kod vid bearbetning av cue-filer speciellt designad. Dessutom används libcue-biblioteket i sökmotorn för tracker-miners som används i GNOME-användarmiljön.
Eftersom tracker-miners automatiskt indexerar nya mediefiler i hemkatalogen, att attackera GNOME-system och få angriparens kod att köras, allt som krävs är för användaren lägg helt enkelt till en specialdesignad fil i en av följande mappar ~/Downloads, ~/Music eller e i mappen Videos, utan att behöva öppna den (till exempel genom att i vissa fall bara klicka på en länk i webbläsaren).
Tvåprocessarkitekturen för crawler-miners är användbar för exploatering. För det första är det mycket lättare att förutsäga minneslayouten i en nystartad process än en som redan har körts i timmar, så det faktum att tracker-extract bara startar på begäran är väldigt bekvämt.
Ännu bättre, tracker-extract skapar alltid en ny tråd för att skanna den nedladdade filen, och jag fann att heaplayouten i trådens malloc-fält är mycket konsekvent: den varierar mellan distributioner...
Angående sårbarhet nämns att detta orsakas av ett heltalsspill i INDEX-parameterns parsningskod och inträffar när för stora numeriska värden anges i denna parameter som inte passar typen "int".
I ett enkelt exempel:
SPÅR 01 LJUDTITEL "Never Gonna Give You Up" ... INDEX 01 00:00:00 SPÅR 02 LJUDTITEL "När du behöver någon" ... INDEX 01 03:35:00
Sårbarheten ligger i hanteringen av INDEX-syntaxen, som uppstår när ett av dessa uttalanden ersätts. Detta kommer att utlösa felet:
INDEX 4294567296 0
För att omvandla en sträng till ett tal används atoi-funktionen, t.ex. Om du anger numret 4294567296 kommer det att konverteras till -400000. Sårbarheten orsakas direkt av att det resulterande värdet inte kontrolleras för att säkerställa att det kan vara negativt. Den andra delen av problemet (och detta är den verkliga sårbarheten) är att track_set_index inte kontrolleras för i ≥ 0:
void track_set_index(Spår *spår, int i, long ind) { if (i > MAXINDEX) { fprintf(stderr, "för många index\n"); lämna tillbaka; } spår->index[i] = ind;
Sårbarheten uppstår som ett resultat i koden efter atoi-konverteringen utförs operationen, där "i" kan tilldelas ett negativt tal för att skriva över minnesområdet utanför bufferten med värdet "ind", som också laddas från filen som bearbetas.
Forskarna som identifierade sårbarheten nämner det De har förberett en funktionell exploatering och demonstrerade förmågan att utnyttja Ubuntu 23.04 och Fedora 38-baserade miljöer. Exploateringskoden kommer att publiceras senare för att ge användarna tid att installera en uppdatering som eliminerar sårbarheten. Exploateringen är stabil i drift, men kräver anpassning för varje distribution.
I de flesta GNOME-distributioner är tracker-miners aktiverade som standard och laddas som ett fysiskt beroende av Nautilus-filhanteraren (GNOME-filer). Det nämns att tracker-miners kan inaktiveras direkt av användaren. Du kan kontrollera detaljerna för att kunna inaktivera tracker-miners i följande länk.
Slutligen om du är intresserad av att veta mer om detkan du kontrollera detaljerna i följande länk.