heartbleed - ceho vseho se vlastne tyka
Jan Pechanec
jp at devnull.cz
Fri Apr 11 06:07:31 CEST 2014
On Thu, 10 Apr 2014, Dan Lukes wrote:
> Pokud vim ja, tak chyba spocina v nekontrolovani pripustnych hodnot zaslanych
> parametru, takze klient si dokaze vyzadat odpoved vetsi, nez je na serveru
> buffer na ni vyhrazeny. Ergo zpet dostane nejen tento buffer, ale taky vse, co
> je za nim, az do velikosti 64kB.
dival jsem se po praci na ten changeset. Je to tak. Co se deje
presne je, ze dle RFC ta data, co odesilatel v heartbeat paketu posle, musi
prijemce poslat zpatky, pokud souhlasi "payload_length" se skutecnou
velikosti payloadu, jinak to ma zahodit. A tohle OpenSSL nekontrolovalo.
na strane prijemce dostane heartbeat funkce odkaz na pamet, kde je
skutecny payload. Pak alokuje pamet velikosti toho payload_length fieldu
(ktery mohl lhat), data se zkopiruji a poslou zpatky.
takze kdyz jsem v payload_length rekl, ze posilam 64KB dat (je to
short int), ale do payloadu jsem dal pouze jeden bajt, tak zbylych 64KB-1
bajtu se zkopirovalo do odchoziho paketu z pameti, ktera byla za tim
ulozenym prichozim paketem a patrila necemu jinemu.
je to tak jednoduchy, az z toho fakt mrazi. Divil bych se, kdyby
tohle ruzny instituce nevedely davno. Staci platit par desitek lidi, ktery
budou metodicky zkoumat kazdou zmenu v zakladnich security toolkitech a
programech. A to bude na cely rok stat asi tak jako jeden dva tanky.
--
Jan Pechanec <jp (at) devnull (dot) cz>
http://www.devnull.cz
More information about the Users-l
mailing list