CVE-2026-96754: Kodeinjektion i orval @orval/hono
Sårbarhed i udviklerværktøjet orval (CVE-2026-96754) kan give kodeinjektion via OpenAPI-dokumenter. Opdatér til 8.29.0.
Hvad er det?
orval er et udviklerværktøj, der automatisk genererer TypeScript-kode ud fra OpenAPI-specifikationer, altså dokumenter der beskriver et API’s endpoints og datastrukturer. CVE-2026-96754 sidder i modulet @orval/hono, som genererer kode til webframeworket Hono. Fejlen betyder, at værktøjet ikke renser tekst fra OpenAPI-dokumentet korrekt, når stinavne indsættes i den genererede kode. En angriber kan placere et anførselstegn og efterfølgende JavaScript-kode i et statisk sti-segment i OpenAPI-dokumentet. Når udviklingsteamet genererer kode ud fra dette dokument og efterfølgende importerer den genererede fil, bliver den indsatte kode udført som en del af programmet.
Hvem rammer det?
Rammer virksomheder og udviklingsteams, der bruger orval til at generere API-klienter eller serverkode, specifikt med @orval/hono generatoren, i versioner før 8.29.0. Det gælder både softwarevirksomheder og interne udviklingsafdelinger i kommuner og SMV’er, der integrerer mod eksterne API’er via OpenAPI-specifikationer. Risikoen er størst, hvis specifikationerne kommer fra eksterne kilder som leverandører, partnere eller offentligt tilgængelige API-beskrivelser, som teamet ikke selv kontrollerer fuldt ud.
Hvad kan ske?
Hvis en angriber kan levere eller ændre et OpenAPI-dokument, som et udviklingsteam bruger til kodegenerering, for eksempel som ekstern leverandør eller ved at kompromittere en placering, hvorfra dokumentet hentes, kan de få vilkårlig JavaScript-kode til at køre på udviklerens maskine eller i byggepipelinen. Det kan bruges til at stjæle adgangskoder, tokens og nøgler fra udviklingsmiljøet, indsætte bagdøre i den færdige software eller sprede sig videre i CI/CD-pipelinen, som ofte har adgang til produktionsmiljøer.
Hvor alvorligt er det?
CVSS-score er 9,8 ud af 10, kritisk. Angrebet kræver ikke login og ingen brugerinteraktion ud over at importere den fil, orval har genereret. Kompleksiteten er lav, og både fortrolighed, integritet og tilgængelighed vurderes ramt fuldt ud. Forudsætningen er, at angriberen kan påvirke det OpenAPI-dokument, som ligger til grund for kodegenereringen. Der er ikke oplysninger om aktiv udnyttelse i det offentlige materiale pr. offentliggørelsesdatoen.
Hvad gør jeg nu?
Sådan lukker I hullet og begrænser risikoen:
- Opdatér orval og @orval/hono til version 8.29.0 eller nyere, inden I kører kodegenerering igen.
- Gennemgå alle OpenAPI-dokumenter, der er brugt til kodegenerering, for mistænkelige tegn som anførselstegn i sti-segmenter.
- Tjek versionshistorik på genererede filer i jeres kodebase for uventede eller ukendte ændringer.
- Begræns hvilke kilder, interne som eksterne, der må levere OpenAPI-specifikationer til jeres kodegenereringsproces.
- Kør kodegenerering i et afgrænset miljø uden adgang til produktionshemmeligheder, hvis I modtager specifikationer fra tredjepart.
- Kontakt en sikkerhedsrådgiver, hvis I har brugt orval mod eksterne eller ikke fuldt betroede OpenAPI-specifikationer og er i tvivl om jeres eksponering.
Opdatér inden næste kodegenerering
Vi anbefaler, at I opdaterer orval til 8.29.0 med det samme, hvis I bruger @orval/hono generatoren i jeres udviklingsflow. Bruger I udelukkende interne og fuldt betroede OpenAPI-specifikationer, kan opdateringen vente til næste planlagte vedligeholdelse, men vi anbefaler at tage den med som en fast del af jeres almindelige opdateringsrutine, da eksterne integrationer sjældent er statiske.
Tidslinje
Konkrete eksempler
Ondsindet API-specifikation fra leverandør
En dansk softwarevirksomhed bruger orval til at generere en klient mod en leverandørs API ud fra leverandørens OpenAPI-dokument. Leverandørens system bliver kompromitteret, og dokumentet ændres, så et sti-segment indeholder skjult JavaScript-kode. Udviklerteamet genererer koden som normalt og importerer filen i deres projekt, hvorved koden bliver udført på udviklerens maskine med adgang til interne systemer og nøgler.
Ofte stillede spørgsmål
Er vi ramt af denne sårbarhed?
Kun hvis jeres udviklingsteam bruger orval med @orval/hono generatoren til at generere TypeScript-kode ud fra OpenAPI-specifikationer, og I kører en version før 8.29.0.
Hvordan tjekker vi, om vi bruger den sårbare version?
Tjek package.json og lockfilen i jeres projekter for orval og @orval/hono, og se om den installerede version er lavere end 8.29.0. Se også jeres orval-konfiguration for, om hono-generatoren er i brug.
Kan vi vente til weekenden med at opdatere?
Ja, hvis I udelukkende genererer kode ud fra interne, fuldt betroede OpenAPI-dokumenter. Bruger I specifikationer fra eksterne leverandører eller partnere, bør opdateringen ske, inden I kører kodegenerering igen.
Skal vi anmelde hændelsen til myndighederne?
Kun hvis I kan konstatere, at sårbarheden faktisk er blevet udnyttet, og at persondata eller kritiske systemer er kompromitteret. Selve opdateringen af et udviklerværktøj kræver ikke anmeldelse.
Er sårbarheden udnyttet i praksis?
Der er ikke oplysninger om aktiv udnyttelse i det offentligt tilgængelige materiale pr. offentliggørelsesdatoen den 23. september 2026.
Hvad koster det at vente med at opdatere?
Så længe I bruger eksterne eller delvist ukontrollerede OpenAPI-specifikationer, risikerer I, at en ondsindet specifikation fører til kodekørsel på udviklermaskiner eller i byggepipelinen, med adgang til hemmeligheder og produktionsmiljøer til følge.
CVSS-detaljer
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWE-svaghedstyper
Original NVD-beskrivelse (engelsk)
orval versions before 8.29.0 contain a code injection vulnerability in the @orval/hono generator that fails to escape OpenAPI path values in single-quoted route literals. Attackers can craft an OpenAPI document with an apostrophe in a static path segment to inject arbitrary JavaScript code that executes when the generated TypeScript module is imported.
Referencer & kilder
Eksterne kilder
Brug for hjælp med jeres sikkerhed?
Vi hjælper SMV’er med at omsætte trusler som denne til konkrete handlingsplaner.