Sårbarhet i Docker

Publisert: 21.06.2018

Sårbarheten åpner for at vilkårlige klienter kan koble til tjenesten og utføre handlinger i systemet.

Det er en kritisk sårbarhet i Docker-versjoner eldre enn 17.06, der Docker-tjenesten er eksponert via TCP. Det er etablert at tilgang til Docker-tjenesten tilsvarer full administratortilgang på maskinen den kjører på [1].

Vi i NSM NorCERT er ikke kjent med at sårbarheten blir aktivt utnyttet, men erfarer at sårbare instanser av Docker fortsatt finnes i bruk. Kjente og enkle verktøy for å utnytte sårbarheten eksisterer.

Sårbare versjoner:

  • Docker 17.04 og tidligere

Fikset versjoner:

  • Docker 17.06 og senere

Docker sikrer forbindelser mellom klient og server med TLS, og ønsker man autentisering av klienter gjøres dette med klientsertifikater. Sårbarheten ligger i måten Docker laster rotsertifikater på. Selv om rot-CA for validering av klientsertifikater spesifiseres med - --tlscacert=<sertifikatfil> som parameter til dockerd, legges også alle systemets rotsertifikater til som godkjente utstedere. Dette innebærer at et klientsertifikat utstedt fra en hvilken som helst av disse vil gi tilgang til tjenesten.

Vi har verifisert at eget klientsertifikat, anskaffet fra en kommersiell utsteder, kan gi tilgang til sårbare versjoner. Sårbarheten vurderes som kritisk, og det anbefales å snarlig oppgradere eller sperre tilgang til sårbare Docker-instanser.

Brukere som ønsker å sjekke egne Docker-installasjoner kan bruke verktøy fra OpenSSL for å verifisere at kun ønskede CA-er tillates:

openssl s_client -showcerts -connect <IP-adresse>:2376

Tillatte CA-er listes da opp under «Acceptable client certificate CA names».

Sårbarheten har ikke fått en CVE enda, men Docker bedt om å få en tildelt.

Referanser:

  1.  https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface