Mange er kanskje ikke klar over at terminalemulatorer som Tabby, Kitty og xfce4-terminal støtter dra-og-slipp av filer inn i terminalen for å sette inn filens sti direkte ved markørposisjonen. Selv om denne funksjonen har eksistert en stund, har flere begynt å legge merke til den etter hvert som Claude Code har blitt stadig mer populært og og lar brukerne dra og slippe filer som Claude skal behandle.

Men som vi alle vet, har morsomme funksjoner en tendens til å komme med morsomme sårbarheter!

 

Bevis på konseptet

 

Payloaden som brukes for å oppnå dette er:

\x03 gnome-calculator \x0d.txt

 

Her er en oversikt over hva hver del gjør:

  • \x03 - Slutt på teksten, tilsvarer å trykke Ctrl+C
  • gnome-calculator - Kommandoen som skal utføres
  • \x0D - Vognretur, tilsvarer å trykke Enter

 

Flere detaljer om disse kontrolltegnene og deres historie finnes i Portswiggers fantastiske forskningsartikkel av Zakhar Fedotkin. Kortversjonen er at terminalene tolker disse tegnene bokstavelig, og siden slepte filstier settes inn i kommandolinjen uten noen form for rensing, blir nyttelasten kjørt som om brukeren hadde skrevet den selv.

 

Realistisk angrepsscenario

Tenk deg at du laster ned en zip-fil eller kloner en git-repo som inneholder en fil med denne nyttelasten som filnavn. Du åpner GUI-filbehandleren din, får øye på en .txt-fil og drar den inn i terminalen for å leseden raskt, men i stedet for å lese filen har du nettopp utført en ondsinnet kommando.

Man kan argumentere for at den ondsinnede nyttelasten vil være synlig i filnavnet, noe som vekker mistanke. Men hvis en lang streng legges til filnavnet, vil de fleste filbehandlere avkorte den, slik at deler av eller hele nyttelasten skjules.

 

image-1

 

Mange sårbare terminalemulatorer

Alle de tre sårbarhetene har blitt rapportert til prosjektenes vedlikeholdere og er blitt rettet. Det er imidlertid bare Tabby-sårbarheten som har blitt tildelt en CVE (CVE-2026-45038). Dette ble bedt om gjennom GitHubs CNA, mens de to andre sårbarhetene ble sendt inn gjennom MITRE, som ikke har svart, sannsynligvis på grunn av nylige kutt i finansieringen.

Flere andre terminalemulatorer deler den samme sårbarheten. Jeg har rapportert det til de som vedlikeholder dem, men har ikke fått noe svar om en løsning. I mellomtiden vil jeg anbefale å bytte til en terminalemulator som enten ikke er berørt eller som har blitt oppdatert, for eksempel Ghostty(oppdatert, opprinnelig funnet av Nguyen Thanh Son), Alacritty (støtter ikke dra-og-slipp), Kitty (oppdatert), eller XFCE4 Terminal (oppdatert).