CVE-2024-58354: Kritisk sårbarhed i cal.com
Kritisk sårbarhed i cal.com lader angribere overtage GitHub-repository via ondsindet pull request – ingen patch tilgængelig.
Hvad er det?
Cal.com (også kendt som cal.diy) er et open source-kalender- og bookingsystem. En kritisk sårbarhed i systemets automatiserede udviklingsværktøjer (GitHub Actions) gør det muligt for en angriber at køre vilkårlige kommandoer i systemet blot ved at indsende en kodeændring (pull request). Fejlen skyldes, at en arbejdsgang (workflow) ukritisk henter og udfører kode fra fremmede bidragydere, mens den har fuld skriveadgang til repository’et. Det svarer til at lade en ukendt håndværker låse sig ind i din virksomhed, fordi han sendte et brev med en nøglegudformning. Ingen officiel rettelse er frigivet.
Hvem rammer det?
Sårbarheden rammer primært virksomheder og udviklere, der:
- Selv hoster eller vedligeholder en instans af cal.com / cal.diy via GitHub.
- Har et aktivt, offentligt eller privat GitHub-repository baseret på cal.com-kodebasen.
- Bruger de berørte GitHub Actions-workflows uden at have deaktiveret dem manuelt.
Virksomheder der udelukkende bruger den hostede cloud-version på cal.com er potentielt mindre direkte eksponerede, men bør stadig følge udviklingen nøje.
Hvad kan ske?
En angriber med en simpel GitHub-konto kan åbne en pull request med ondsindet kode. Når den automatiserede arbejdsgang kører, kan angriberen:
- Skubbe nye commits direkte til main-branchen (hoveddelen af din kodebase).
- Slette eller overskrive eksisterende branches og kode.
- Manipulere eller godkende pull requests uden din viden.
- Indsætte bagdøre eller ondsindet kode i dit system.
- Stjæle hemmeligheder (API-nøgler, adgangskoder) der er gemt i repository’et.
Det kan resultere i et fuldt kompromitteret system, datatyveri og tab af fortrolige kundedata.
Hvor alvorligt er det?
CVSS-scoren er 9.9 ud af 10 – Kritisk. Det er den næsthøjest mulige alvorlighedsvurdering. Angrebsvektoren er netværksbaseret, kompleksiteten er lav, og angriberen behøver kun en helt almindelig brugerkonto. Der kræves ingen hjælp fra dig som offer. Konsekvenserne for integritet og tilgængelighed er vurderet som høje, og angrebet kan sprede sig ud over det direkte ramte repository (scope changed). Kombinationen af lav angrebsbarriere og alvorlige konsekvenser gør dette til en meget alvorlig trussel.
Hvad gør jeg nu?
Da der endnu ikke findes en officiel patch, skal du handle proaktivt for at beskytte dit repository:
- Identificér eksponering: Tjek om du bruger cal.com / cal.diy med GitHub Actions aktiveret – åbn repository’et og kig i mappen
.github/workflows/efter filenpr.yml. - Deaktivér eller begræns de berørte workflows: Slå workflowsne
pr.ymlogcheck-types.ymlfra, eller begræns triggerenpull_request_targettil kun betroede bidragydere. - Kræv godkendelse af pull requests: Sæt dit repository op til at kræve manuel godkendelse, før nogen arbejdsgang kører på kode fra eksterne bidragydere.
- Gennemgå GITHUB_TOKEN-tilladelser: Skift standard-rettigheder for GITHUB_TOKEN til kun læseadgang (read-only) i repository-indstillingerne.
- Tjek for kompromittering: Gennemse commit-historikken og arbejdsgangs-logs for usædvanlig aktivitet, særligt fra ukendte brugere.
- Hold øje med opdateringer: Følg cal.com’s officielle GitHub-side for en kommende patch og installér den straks, når den frigives.
Handl inden for 24-48 timer
Vi anbefaler, at du straks deaktiverer de berørte GitHub Actions-workflows, hvis du driver en selvhostet cal.com-installation. Da der ikke er en officiel patch tilgængelig, er manuelle begrænsninger din eneste forsvarslinje lige nu. Kontakt din IT-ansvarlige eller en sikkerhedskonsulent i dag, og opsæt et fast review-tidspunkt, så snart cal.com udgiver en rettelse.
Tidslinje
Konkrete eksempler
Angriber indsætter bagdør via pull request
En angriber opretter en GitHub-konto og åbner et tilsyneladende harmløst pull request til dit cal.com-repository – f.eks. med en lille sprogrettelse. I baggrunden indeholder koden et ondsindet script, der automatisk kører, når den berørte workflow starter. Scriptet udnytter GITHUB_TOKEN til at tilføje angribers SSH-nøgle til repository’et, og giver dermed permanent bagdørsadgang til al din kode og hemmeligheder.
Tyveri af API-nøgler og adgangskoder
Via det ondsindede pull request kører angriberen et script, der scanner repository’ets miljøvariabler og konfigurationsfiler for API-nøgler, databaseadgangskoder og integrationstoken – f.eks. til din betalingsudbyder eller dit CRM-system. Nøglerne sendes automatisk til en ekstern server styret af angriberen, som herefter kan tilgå dine systemer og kundedata uden din viden.
Sletning af kode og sabotage af drift
En angriber bruger sårbarheden til at force-pushe en tom eller korrupt commit til main-branchen, hvilket effektivt sletter eller ødelægger al produktionskode. Resultatet er, at din bookingplatform går ned, og dine kunder ikke kan booke tider. Uden en sikkerhedskopi kan genetablering tage dage, med direkte tab af omsætning og kundernes tillid til følge.
Ofte stillede spørgsmål
Bruger jeg cal.com på en måde, der gør mig sårbar?
Du er direkte sårbar, hvis du selv vedligeholder kildekoden til cal.com i et GitHub-repository med GitHub Actions aktiveret. Bruger du udelukkende cal.coms færdige cloud-tjeneste og ikke koden selv, er risikoen anderledes – men du bør stadig tjekke med din leverandør, om deres infrastruktur er berørt.
Hvad er et 'pull request', og hvorfor er det farligt her?
Et pull request er en anmodning om at tilføje kode til et projekt – typisk fra en ekstern bidragyder. I dette tilfælde er problemet, at cal.coms automatiserede system automatisk henter og kører koden i pull requestet, mens det har fuld skriveadgang til hele projektet. Det er som at lade en fremmed persons USB-nøgle køre automatisk i din computer, så snart den sættes i.
Hvad er GITHUB_TOKEN, og hvorfor er det et problem?
GITHUB_TOKEN er en automatisk genereret adgangsnøgle, som GitHub giver til workflows, så de kan udføre opgaver som at opdatere kode. Problemet er, at denne nøgle her er konfigureret med fuld skriveadgang og overdrages til kode fra en potentiel angriber – det svarer til at give en ukendt håndværker hovednøglen til din virksomhed.
Er mine kundedata i fare?
Potentielt ja. Hvis en angriber kompromitterer dit repository, kan vedkommende indsætte kode, der stjæler API-nøgler, databaseadgangskoder og andre følsomme oplysninger, der er gemt i repository’et. Det kan i næste omgang give adgang til de systemer og data, som disse nøgler beskytter, herunder kundeoplysninger og bookingdata.
Hvornår kan jeg forvente en patch?
Der er på nuværende tidspunkt ingen officiel patch tilgængelig fra cal.com. Hold øje med projektets officielle GitHub-side og eventuelle sikkerhedsmeddelelser. Indtil en patch frigives, er manuelle begrænsninger som deaktivering af de berørte workflows den eneste beskyttelse.
Skal jeg anmelde et brud til Datatilsynet?
Kun hvis der faktisk har fundet en kompromittering sted, og persondata er eller kan være berørt. Tjek dine logs grundigt. Hvis du finder tegn på misbrug, og det involverer personoplysninger, skal du inden for 72 timer vurdere, om det udløser en anmeldelsespligt efter GDPR. Kontakt din databeskyttelsesrådgiver (DPO) ved tvivl.
CVSS-detaljer
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:H/A:H
CWE-svaghedstyper
Original NVD-beskrivelse (engelsk)
cal.com (calcom repository, later renamed cal.diy) is affected by a repository takeover vulnerability in its GitHub Actions workflows. The workflow pr.yml uses the pull_request_target trigger with the repository’s default write permissions and passes them down to check-types.yml. check-types.yml then performs a ‘dangerous’ checkout of the attacker-submitted pull request code (via the dangerous-git-checkout action) and subsequently executes it (through yarn install and package.json scripts). An attacker can open a pull request whose code runs arbitrary commands with the repository’s write-scoped GITHUB_TOKEN, allowing them to push commits, merge or mutate pull requests, add or delete comments, and delete or force-push branches, thereby compromising the repository. The main branch is affected; no patched version is available.
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.