Fjernudnyttede sårbarheder i FreeBSD-kernen, Vim og Emacs

I FreeBSD er sårbarheden (CVE-2026-4747) blevet rettet, hvilket gjorde det muligt at udføre kode på kerne niveau ved at sende netværkspakker til NFS-serveren. Problemet opstår ved brug af modulet kgssapi.ko, der implementerer RPCSEC_GSS API'et på kerne siden. Udover kernen påvirker sårbarheden også applikationer i brugerrummet, der bruger biblioteket librpcgss_sec og fungerer som RPC-servere. Sådanne applikationer, der ikke er en del af den grundlæggende FreeBSD-system, kan også blive angrebet ved at sende netværkspakker.

Problemet findes i implementeringen af GSS (Generic Security Services) API'et, der muliggør oprettelse af sikrede autentificerede kommunikationskanaler med serveren. RPCSEC_GSS bruges i NFS-servere til at beskytte adgangen til Sun RPC ved hjælp af Kerberos-baseret autentificering og kryptering af trafik mellem server og klient. Problemet skyldes, at data fra pakken kopieres ind i en fast buffer uden tilstrækkelig kontrol af størrelsen under signaturkontrollen. Fejlen viser sig før autentificering, men kræver mulighed for at sende netværkspakker til NFS-serveren. Der er en udnyttelse til rådighed, som muliggør fjernstart af /bin/sh med root-rettigheder.

Sårbarheden blev identificeret af en medarbejder fra Anthropic ved hjælp af AI-assistenten Claude. Det er bemærkelsesværdigt, at eksterne forskere fra Calif-teamet brugte Claude til at skrive en fungerende udnyttelse og kun gav offentliggjorte oplysninger fra FreeBSD-projektets generelle rapport om sårbarheden. Udover den direkte udnyttelse af sårbarheden, har AI-modellen opsat en virtuel maskine med en sårbar konfiguration, konfigureret fjernfejlfinding og læsning af kernel crash-dumps, samt organiseret i udnyttelsen at køre /bin/sh, efter at den havde opnået udførelse af kode på kerne niveau. Det tog 4 timers arbejdstid for Claude-modellen at skabe udnyttelsen.

De forskere, der skabte exploit'en, stoppede ikke her og fortsatte deres eksperimenter med at bruge Claude til at finde sårbarheder i Vim og Emacs, der muliggør kørsel af deres kode ved at åbne specifikt udformede filer i editorerne. Bemærkelsesværdigt er, at prompts til modellen bestod af en primitiv opgaveformulering såsom "find en 0-dages sårbarhed i Vim, der opstår ved åbning af en fil". Som resultat fandt modellen Claude tidligere ukendte sårbarheder.

Sårbarheden i Vim (CVE-2026-34714) er forårsaget af en fejl i håndteringen af tabpanel-optionen i den som standard aktiverede modeline-tilstand (":set modeline"), som giver mulighed for at angive redigeringsmuligheder i den behandlede fil. I følge Vim-udviklernes intention burde man gennem modeline kun kunne sætte et begrænset antal muligheder, hvis udtryk udføres i en sandbox-tilstand, der kun tillader de enkleste sikre operationer.

Funktionen tabpanel havde ikke flagget P_MLE, hvilket gjorde det muligt at bruge udtrykket %{expr}, der blev udført uden aktivering af modelineexpr-tilstanden. For at omgå sandbox-isoleringen blev der udnyttet en fejl i funktionen autocmd_add(), hvor der manglede tilstrækkelige sikkerhedskontroller ved binding af handlingen til begivenheden SafeStateAgain, hvilket gjorde det muligt at starte kommandoen efter at være kommet ud af sandbox-isoleringen. Sårbarheden er blevet rettet i udgivelsen af Vim v9.2.0272. Eksempel på en linje, der medfører udførelse af "id"-kommandoen og sender output til filen "\/tmp\/calif-vim-rce-poc": /* vim: set showtabpanel=2 tabpanel=%{%autocmd_add([{‘event’\:’SafeStateAgain’,’pattern’\:’*’,’cmd’\:’!id>\/tmp\/calif-vim-rce-poc’,’once’\:1}])%}: */

Sårbarheden i Emacs skyldes automatisk håndtering af indholdet i kataloget .git\/ når det ligger i samme katalog som den åbnede fil. I dette tilfælde kører Emacs ved åbning af filen kommandoerne "git ls-files" og "git status", som udføres i konteksten af indholdet i ".git\/". For at muliggøre kørsel af kode er det tilstrækkeligt at åbne en fil i Emacs fra et katalog, hvor der findes en underkatalog .git\/ med konfigurationsfilen "config", der indeholder optionen "core.fsmonitor" med den angivne angribers kommando til kørsel. De ansvarlige for GNU Emacs har nægtet at fjerne sårbarheden og peger på, at problemet ligger i Git.

Yderligere kan der nævnes to yderligere sårbarheder:

  • CVE-2026-33150 — hukommelsesadgang efter frigivelse i io_uring-handleren fra libfuse-biblioteket, hvilket potentielt muliggør udførelse af kode ved opbrug af tilgængelige ressourcer under arbejde med filsystemer implementeret via FUSE (Filesystem in Userspace).
  • CVE-2026-34743 — buffer-overløb i implementeringen af funktionen lzma_index_append() fra liblzma-biblioteket. Problemet opstår ved brug af funktionen lzma_index_decoder() til at dekode et indeks, der ikke indeholder poster, hvilket resulterer i tildeling af en buffer, der er mindre end nødvendig. Det bemærkes, at det lavniveau API lzma_index* sjældent bruges i applikationer, og det er usandsynligt, at der findes applikationer, hvor de nødvendige betingelser for udnyttelse af indekset opfyldes. Sårbarheden er blevet løst i opdateringen XZ Utils 5.8.3.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster