Muistan nähneeni sen suuntaista tekstiä että tunkeutuja voisi sopivan paketin lähettämällä saada palvelimen lähettämään 64k siivuja kirjanpidostaan joka voi sisältää salasanoja ja tunnuksia. Aika erikoista että palvelin lähettää tällaisia kun kyseessä on vain yhteyden keep-alive funktio.
Kyseessä on varatun muistialueen yli lukeminen. Tämä on yleinen bugi C-koodissa, eikä ole sinänsä erikoista, että sieltä vuotaa enemmän tai vähemmän satunnaisia osia prosessin käyttämän muistialueen sisällöstä.
OpenSSL käytti tuunattua muistinvarausta (itse toteutetut malloc- ja free-funktiot), joka esti ongelman havaitsemisen tarkoitukseen suunnitelluilla työkaluilla:
http://article.gmane.org/gmane.os.openbsd.misc/211963Tässähän ei olisi ollut näin isoa ongelmaa esim jos Canonical ottaisi uusia versioita esim openssl:stä samaan tapaan kun Firefoxia
Nythän bugi oli nimenomaan uudemmissa versioissa. Esimerkiksi Ubuntu 10.04:n OpenSSL 0.9.8k:ssa ei ole Heartbleed-haavoittuvuutta, mutta 12.04:n OpenSSL 1.0.1:ssä ja uudemmissa se on riesana.
Sama juttu aiemman GnuTLS-haavoittuvuuden kanssa. Se oli kirjaston kaikissa versioissa vuodesta 2005 lähtien ja paikattiin vasta, kun haavoittuvuus löytyi tänä keväänä.
openssll päivittyisi ja turvallisuus parantuisi ajan myös ja yhtänäistä blokkia ei olsi olemassa.
Eikö tällainen jatkuva päivittäminen nimenomaan tarkoittaisi, että kaikissa Ubuntuissa olisi sama versio OpenSSL:stä, eli yksi yhtenäinen asennuskanta, johon voi kätevästi hyökätä, jos hyödyntää jotain uusiin versioihin ilmaantunutta haavoittuvuutta.
openssll päivittyisi
Onneksi Ubuntun väliversiot päivittyy nopeammin lyhyemmän tuen myötä mutta esim openssh ja openssl versiot ovat iänikuisia 12:4:ssa.
Tuettujen jakeluversioiden main-repositorion ohjelmiin ja kirjastoihin tulee silti tietoturvapäivitykset kaikkiin kriittisiin ongelmiin. Vaikea sanoa, onko turvallisempaa käyttää vanhempaa ja testattua vai uusinta versiota.