CVE-2014-0160

Heartbleed

Severity
Critical
CVSS
7.5
Published
2014-04-07
Category
Memory disclosure

Summary

Chyba v TLS heartbeat rozhraní umožnila vzdálenému útočníkovi číst paměť procesu OpenSSL a odhalovat klíče, cookies nebo jiné citlivé údaje.

Writeup

Heartbleed vznikl v implementaci TLS heartbeat v OpenSSL. Server po přijetí Heartbeat requestu poslal zpět právě tolik bajtů, kolik bylo deklarováno v délce, aniž by ověřil, zda skutečně odpovídá délce dat v payloadu. To umožnilo útočníkovi poslat záměrně nepravdivý údaj o délce a získat obsah z paměti aplikace, která běžela v procesu OpenSSL. V praxi to vedlo k exfiltraci privátních klíčů, session IDs, hesel a dalších dat, která běžně zůstávají v heapu. Pro úspěch útoku nebylo nutné získat přístup k hostitelskému systému; stačilo zaslat požadavek přes internet. Z pohledu bezpečnosti byl problém mimořádně zákeřný, protože nebyl přímý RCE ani exploitable bug v aplikační logice, ale důsledek špatné bounds checking v nízkoúrovňové knihovně. To z něj udělalo typický případ 'memory disclosure', který postihl velké množství webových služeb a vyžádal si rychlé patchování a rotaci klíčů.

Impact

Útočník mohl číst obsah paměti procesu, ukrást TLS klíče, autentizační cookies, hesla a další citlivé údaje. V důsledku toho bylo nutné rotovat certifikáty a ověřovat kompromitaci serverů i po patchu.

Affected products

References