Teknikblogg | Netsecurity

Kommandoexekvering via dra-och-släpp i terminalemulatorer

Skriven av Siddharth Dushantha | 2026-maj-18 06:00:00

Många kanske inte känner till att terminalemulatorer som Tabby, Kitty och xfce4-terminal har stöd för att dra och släppa filer i terminalen för att infoga filens sökväg direkt vid markörens position. Även om den här funktionen har funnits ett tag har fler människor börjat märka detta eftersom Claude Code har vuxit i popularitet och tillåter användare att dra och släppa filer för Claude att bearbeta.

Men som vi alla vet tenderar roliga funktioner att komma med roliga sårbarheter!

 

Bevis på koncept

 

Payloaden som används för att uppnå detta är:

\x03 gnome-kalkylator \x0d.txt

 

Här är en uppdelning av vad varje del gör:

  • \x03 - Slut på texten, motsvarar att trycka på Ctrl+C
  • gnome-calculator - Kommandot som ska utföras
  • \x0D - Vagnretur, motsvarar att trycka på Enter

 

Mer information om dessa kontrolltecken och deras historia finns i Portswiggers fantastiska forskningsartikel av Zakhar Fedotkin. Den korta versionen är att terminalerna tolkar dessa tecken bokstavligt, och eftersom dragna filsökvägar infogas i kommandoraden utan någon sanering, körs nyttolasten som om användaren skrev den själv.

 

Realistiskt angreppsscenario

Föreställ dig att du laddar ner en zip-fil eller klonar en git-repo som innehåller en fil med denna nyttolast som filnamn. Du öppnar din GUI-filhanterare, upptäcker en .txt-fil och drar den till din terminal för att snabbt catit, men istället för att läsa filen har du just utfört ett skadligt kommando.

Man skulle kunna hävda att den skadliga nyttolasten skulle vara synlig i filnamnet och väcka misstankar. Men om en lång sträng läggs till i filnamnet kommer de flesta filhanterare att trunkera den och dölja delar eller hela nyttolasten.

 

 

Många sårbara terminalemulatorer

Alla tre sårbarheterna har rapporterats till projektens underhållare och har åtgärdats. Det är dock bara Tabby-sårbarheten som har tilldelats en CVE (CVE-2026-45038). Detta begärdes via GitHubs CNA, medan de andra två sårbarheterna skickades in via MITRE, som inte har svarat, troligen på grund av de senaste nedskärningarna i finansieringen.

Flera andra terminalemulatorer delar samma sårbarhet. Jag har rapporterat det till deras underhållare men har inte fått något svar angående en fix. Under tiden skulle jag rekommendera att du byter till en terminalemulator som antingen inte påverkas eller har patchats, till exempel Ghostty(patchad, ursprungligen hittad av Nguyen Thanh Son), Alacritty (stöder inte dra-och-släpp), Kitty (patchad), eller XFCE4 Terminal (patchad).