Model Comparison
Model Editorial Structural Class Conf SETL Theme
@cf/meta/llama-4-scout-17b-16e-instruct lite 0.00 ND Neutral 1.00 0.00 Data Protection
@cf/meta/llama-3.3-70b-instruct-fp8-fast lite 0.00 ND Neutral 0.80 0.00 Digital Security
claude-haiku-4-5-20251001 +0.24 +0.13 Mild positive 0.35 0.20 Privacy & Security
claude-haiku-4-5 lite +0.48 ND Moderate positive 0.85 0.00 Privacy and digital security
meta-llama/llama-3.3-70b-instruct:free lite ND ND
Section @cf/meta/llama-4-scout-17b-16e-instruct lite @cf/meta/llama-3.3-70b-instruct-fp8-fast lite claude-haiku-4-5-20251001 claude-haiku-4-5 lite meta-llama/llama-3.3-70b-instruct:free lite
Preamble ND ND 0.08 ND ND
Article 1 ND ND 0.00 ND ND
Article 2 ND ND 0.00 ND ND
Article 3 ND ND 0.26 ND ND
Article 4 ND ND ND ND ND
Article 5 ND ND ND ND ND
Article 6 ND ND ND ND ND
Article 7 ND ND 0.00 ND ND
Article 8 ND ND 0.26 ND ND
Article 9 ND ND ND ND ND
Article 10 ND ND ND ND ND
Article 11 ND ND ND ND ND
Article 12 ND ND 0.65 ND ND
Article 13 ND ND ND ND ND
Article 14 ND ND ND ND ND
Article 15 ND ND ND ND ND
Article 16 ND ND ND ND ND
Article 17 ND ND 0.16 ND ND
Article 18 ND ND ND ND ND
Article 19 ND ND 0.26 ND ND
Article 20 ND ND ND ND ND
Article 21 ND ND ND ND ND
Article 22 ND ND ND ND ND
Article 23 ND ND ND ND ND
Article 24 ND ND ND ND ND
Article 25 ND ND 0.16 ND ND
Article 26 ND ND 0.29 ND ND
Article 27 ND ND 0.21 ND ND
Article 28 ND ND 0.21 ND ND
Article 29 ND ND 0.21 ND ND
Article 30 ND ND ND ND ND
+0.24 The Heartbleed Bug (heartbleed.com S:+0.13 )
1768 points by tptacek 4346 days ago | 528 comments on HN | Mild positive Contested Editorial · v3.7 · 2026-02-28 07:33:04 0
Summary Privacy & Security Advocates
Heartbleed.com documents CVE-2014-0160, a critical OpenSSL vulnerability that compromises privacy and security across the internet. The site strongly advocates for privacy protection through technical remediation, transparent disclosure, public education, and coordinated international response, empowering individuals and institutions to understand threats and fulfill their recovery responsibilities.
Article Heatmap
Preamble: +0.08 — Preamble P Article 1: 0.00 — Freedom, Equality, Brotherhood 1 Article 2: 0.00 — Non-Discrimination 2 Article 3: +0.26 — Life, Liberty, Security 3 Article 4: ND — No Slavery Article 4: No Data — No Slavery 4 Article 5: ND — No Torture Article 5: No Data — No Torture 5 Article 6: ND — Legal Personhood Article 6: No Data — Legal Personhood 6 Article 7: 0.00 — Equality Before Law 7 Article 8: +0.26 — Right to Remedy 8 Article 9: ND — No Arbitrary Detention Article 9: No Data — No Arbitrary Detention 9 Article 10: ND — Fair Hearing Article 10: No Data — Fair Hearing 10 Article 11: ND — Presumption of Innocence Article 11: No Data — Presumption of Innocence 11 Article 12: +0.65 — Privacy 12 Article 13: ND — Freedom of Movement Article 13: No Data — Freedom of Movement 13 Article 14: ND — Asylum Article 14: No Data — Asylum 14 Article 15: ND — Nationality Article 15: No Data — Nationality 15 Article 16: ND — Marriage & Family Article 16: No Data — Marriage & Family 16 Article 17: +0.16 — Property 17 Article 18: ND — Freedom of Thought Article 18: No Data — Freedom of Thought 18 Article 19: +0.26 — Freedom of Expression 19 Article 20: ND — Assembly & Association Article 20: No Data — Assembly & Association 20 Article 21: ND — Political Participation Article 21: No Data — Political Participation 21 Article 22: ND — Social Security Article 22: No Data — Social Security 22 Article 23: ND — Work & Equal Pay Article 23: No Data — Work & Equal Pay 23 Article 24: ND — Rest & Leisure Article 24: No Data — Rest & Leisure 24 Article 25: +0.16 — Standard of Living 25 Article 26: +0.29 — Education 26 Article 27: +0.21 — Cultural Participation 27 Article 28: +0.21 — Social & International Order 28 Article 29: +0.21 — Duties to Community 29 Article 30: ND — No Destruction of Rights Article 30: No Data — No Destruction of Rights 30
Negative Neutral Positive No Data
Aggregates
Editorial Mean +0.24 Structural Mean +0.13
Weighted Mean +0.21 Unweighted Mean +0.20
Max +0.65 Article 12 Min 0.00 Article 1
Signal 14 No Data 17
Volatility 0.16 (Medium)
Negative 0 Channels E: 0.6 S: 0.4
SETL +0.20 Editorial-dominant
FW Ratio 60% 34 facts · 23 inferences
Evidence 35% coverage
6H 8M 17 ND
Theme Radar
Foundation Security Legal Privacy & Movement Personal Expression Economic & Social Cultural Order & Duties Foundation: 0.03 (3 articles) Security: 0.26 (1 articles) Legal: 0.13 (2 articles) Privacy & Movement: 0.65 (1 articles) Personal: 0.16 (1 articles) Expression: 0.26 (1 articles) Economic & Social: 0.16 (1 articles) Cultural: 0.25 (2 articles) Order & Duties: 0.21 (2 articles)
HN Discussion 20 top-level · 30 replies
cheald 2014-04-07 20:31 UTC link
What a great writeup. Comprehensive without being overly verbose, answers to "what does this mean?" and "does this affect me?", and clear calls to action.

While I'm not happy at having to spend my Monday patching a kajillion machines, I welcome more vulnerability writeups in this vein.

zmillman 2014-04-07 20:47 UTC link
Does anyone know how Amazon's Elastic Load Balancers are affected? I can't find anything on the AWS site
iso8859-1 2014-04-07 20:52 UTC link
Here's the patch/commit, I don't know why it's not linked form the OpenSSL changelog or heartbleed.com. A suspicious lack of transparency.

http://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=...

gojomo 2014-04-07 21:03 UTC link
Does SSH (specifically sshd) on major OSes use affected versions of OpenSSL? [answer pulled up from replies below: since sshd doesn't use TLS protocol, it isn't affected by this bug, even if it does use affected OpenSSL versions]

What's the quickest check to see if sshd, or any other listening process, is vulnerable?

(For example, if "lsof | grep ssl" only shows 0.9.8-ish version numbers, is that a good sign?)

MartinMond 2014-04-07 21:05 UTC link
As of now (21:04 UTC) this isn't fixed in Debian https://security-tracker.debian.org/tracker/CVE-2014-0160 nor Ubuntu http://people.canonical.com/~ubuntu-security/cve/2014/CVE-20...

Got a long night ahead :/

halter73 2014-04-07 21:14 UTC link
> Recovery from this bug could benefit if the new version of the OpenSSL would both fix the bug and disable heartbeat temporarily until some future version... If only vulnerable versions of OpenSSL would continue to respond to the heartbeat for next few months then large scale coordinated response to reach owners of vulnerable services would become more feasible.

This sounds risky to me. I'm afraid attackers would benefit more from this decision than coordinated do-gooders.

chomp 2014-04-07 21:18 UTC link
How did Cloudflare get access to this bug a week before it was made public, yet no distro has a package ready?

How's that for responsible disclosure?

oskarth 2014-04-07 21:23 UTC link
This thing has been in the wild for two years. What are the odds it hasn't been systematically abused? And what does this imply?

To me it sounds kind of like finding out the fence in your backyard was cut open two years ago. Except in this case the backyard is two thirds of the internet.

lawl 2014-04-07 21:32 UTC link
Holy shit. That seems worse than the debian openssl debacle.

If i got that right ALL openssl private keys are now potentially compromised.

I hope vendors push fixes soon, and then I guess I'm busy for a few days regenerating private keys.

phillmv 2014-04-07 21:35 UTC link
Given the severity of this bug, the UX of the site is failing anyone who isn't a fulltime sysadmin.

Suggestion: big, bold TLDR ("The sky is falling. Check your OpenSSL version right now") with a link on what to do sorted by OS vendor.

Step 1: Here's a command to spit out your OpenSSL version. If it is the following string, go to step 2.

Step 2: Here's how to update your OpenSSL. Here are links to guides on reissuing keys.

Probably OK the whole remediation bit links to a wiki that gets updated as the various vendors push their patches.

whyleyc 2014-04-07 21:36 UTC link
This doesn't sound like "responsible disclosure" to me - how can Codenomicon dump this news when all the major Linux vendors don't have patches ready to go ?
yaakov34 2014-04-07 22:02 UTC link
There was a discussion here a few years ago (https://news.ycombinator.com/item?id=2686580) about memory vulnerabilities in C. Some people tried to argue back then that various protections offered by modern OSs and runtimes, such as address space randomization, and the availability of tools like Valgrind for finding memory access bugs, mitigates this. I really recommend re-reading that discussion.

My opinion, then and now, is that C and other languages without memory checks are unsuitable for writing secure code. Plainly unsuitable. They need to be restricted to writing a small core system, preferably small enough that it can be checked using formal (proof-based) methods, and all the rest, including all application logic, should be written using managed code (such as C#, Java, or whatever - I have no preference).

This vulnerability is the result of yet another missing bound check. It wasn't discovered by Valgrind or some such tool, since it is not normally triggered - it needs to be triggered maliciously or by a testing protocol which is smart enough to look for it (a very difficult thing to do, as I explained on the original thread).

The fact is that no programmer is good enough to write code which is free from such vulnerabilities. Programmers are, after all, trained and skilled in following the logic of their program. But in languages without bounds checks, that logic can fall away as the computer starts reading or executing raw memory, which is no longer connected to specific variables or lines of code in your program. All non-bounds-checked languages expose multiple levels of the computer to the program, and you are kidding yourself if you think you can handle this better than the OpenSSL team.

We can't end all bugs in software, but we can plug this seemingly endless source of bugs which has been affecting the Internet since the Morris worm. It has now cost us a two-year window in which 70% of our internet traffic was potentially exposed. It will cost us more before we manage to end it.

mattparlane 2014-04-07 23:34 UTC link
What worries me about this is that the commit that fixes it [0] doesn't include any tests. Is that normal in crypto? If I committed a fix to a show-stopper bug without any tests at my day job I'd feel very amateur.

[0] http://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=...

IgorPartola 2014-04-08 00:18 UTC link
What are the chances that the NSA is having a field day with this in the 24-48 hours that it will take everyone to respond? Also, is it possible that CA's have been compromised to the point where root certs should not be trusted?
dkarapetyan 2014-04-08 00:24 UTC link
Honestly, why aren't the formal verification people jumping on this? I keep hearing about automatic code generation from proof systems like Coq and Agda but it's always some toy example like iterative version of fibonacci from the recursive version or something else just as mundane. Wouldn't cryptography be a perfect playground for making new discoveries? At the end of the day all crypto is just number theory and number theory is as formal a system as it gets. Why don't we have formal proofs for correct functionality of OpenSSL? Instead of a thousand eyes looking at pointers and making sure they all point to the right places why don't we formally prove it? I don't mean me but maybe some grad student.
FiloSottile 2014-04-08 01:02 UTC link
I've built a web tester for this bug, find it at

http://filippo.io/Heartbleed/

It actually exploit the bug, since it was quite trivial, and echo some memory.

It's written in Go, no more than 100 lines. I'll release code in some time.

userbinator 2014-04-08 02:47 UTC link
I think the summary is a bit too sensationalistic in terms of what the actual security implications are:

The Heartbleed bug allows anyone on the Internet to read the memory of the systems protected by the vulnerable versions of the OpenSSL software.

Yes, while that's true, it's not a "read the whole process' memory" vulnerability which would definitely be cause for panic. The details are subtle:

Can attacker access only 64k of the memory? There is no total of 64 kilobytes limitation to the attack, that limit applies only to a single heartbeat. Attacker can either keep reconnecting or during an active TLS connection keep requesting arbitrary number of 64 kilobyte chunks of memory content until enough secrets are revealed.

The address space of a process is normally far bigger than 64KB, and while the bug does allow an arbitrary number of 64KB reads, it is important to note that the attacker cannot directly control where that 64KB will come from. If you're lucky, you'll get a whole bunch of keys. If you're unlucky, you might get unencrypted data you sent/received, which you would have anyway. If you're really unlucky, you get 64KB of zero bytes every time.

Then there's also the question of knowing exactly what/where the actual secrets are. Encryption keys (should) look like random data, and there's a lot of other random-looking stuff in crypto libraries' state. Even supposing you know that there is a key, of some type, somewhere in a 64KB block of random-looking data, you still need to find where inside that data the key is, what type of key it is, and more importantly, whose traffic it protects before you can do anything malicious.

Without using any privileged information or credentials we were able steal from ourselves the secret keys

It really helps when looking for keys, if you already know what the keys are.

In other words, while this is a cause for concern, it's not anywhere near "everything is wide open", and that is probably the reason why it has remained undiscovered for so long.

Edit: downvotes. Care to explain?

perturbation 2014-04-08 04:17 UTC link
Node.js sort-of dodged a bullet here. It includes a version of openssl that it links against when building the crypto module (and, I would think, the tls module). Node.js v0.10.26 uses OpenSSL 1.0.1e 11 Feb 2013.

However (in openssl.gyp): https://github.com/joyent/node/blob/master/deps/openssl/open...

It disables the heartbeat with the compile time option due to a workaround for Microsoft's IIS, of all things.

So the affected window for node would have been Sep 11, 2012 to Mar 27, 2013 (based on the commit history).

Gygash 2014-04-08 05:42 UTC link
Found a Python PoC: http://s3.jspenguin.org/ssltest.py

Edit: and just used it to dump 64K from a known-vulnerable device we control. Got a session cookie. Jeez.

Donch 2014-04-08 11:20 UTC link

  ./bin/Heartbleed openssl.org:443
  2014/04/08 12:15:44 ([]uint8) {
   00000000  02 00 79 68 65 61 72 74  62 6c 65 65 64 2e 66 69  |..yheartbleed.fi|
   00000010  6c 69 70 70 6f 2e 69 6f  59 45 4c 4c 4f 57 20 53  |lippo.ioYELLOW S|
   00000020  55 42 4d 41 52 49 4e 45  47 69 05 e8 90 a6 60 d6  |UBMARINEGi....`.|
   00000030  b4 18 c3 f0 4a 20 40 3a  ef dd 06 8b 87 32 42 00  |....J @:.....2B.|
   00000040  00 00 10 00 0e 00 00 0b  6f 70 65 6e 73 73 6c 2e  |........openssl.|
   00000050  6f 72 67 00 05 00 05 01  00 00 00 00 00 0a 00 08  |org.............|
   00000060  00 06 00 17 00 18 00 19  00 0b 00 02 01 00 00 0d  |................|
   00000070  00 0a 00 08 04 01 04 03  02 01 02 03 09 14 ce 7c  |...............||
   00000080  6d 0c f5 a0 3b cc 16 aa  3b d4 b1 b8              |m...;...;...|
  }

  2014/04/08 12:15:44 openssl.org:443 - VULNERABLE
tptacek 2014-04-07 21:11 UTC link
The bug is in the handling of the TLS protocol itself (actually, in a little-used extension of TLS, the TLS Record Layer Heartbeat Protocol), and isn't exposed in applications that just use TLS for crypto primitives.
ams6110 2014-04-07 21:16 UTC link
Writeup was too long. We need to know the short and sweet of what to fix.
NelsonMinar 2014-04-07 21:16 UTC link
I'm very curious to see the change that introduced the bug in the first place. According to the announcement it was introduced in 1.0.1. That's the version that added Heartbeat support, so maybe it was a bug from the beginning.
stu_k 2014-04-07 21:19 UTC link
Thanks for the links. The big thing heartbleed.com is missing is what to do!
earless1 2014-04-07 21:29 UTC link
That is my concern as well. We are still running CentOS 6.4 which does not have the affected version of OpenSSL, but we terminate SSL at the ELB so if they are affected then are keys are not safe.

Edit: I've posted on the support forum, hopefully they get back to us https://forums.aws.amazon.com/thread.jspa?threadID=149690

ams6110 2014-04-07 21:31 UTC link
Worse, it's retroactively unfixable: Even doing all this [revoking certs, new secret keys, new certificates] will still leave any traffic intercepted by the attacker in the past still vulnerable to decryption.

So it would be a good idea to change all your passwords to critical services like email and banks, once they have issued new certs and updated their openssl.

MattHeard 2014-04-07 21:35 UTC link
Should the priority on the ubuntu-security page be higher than "Medium"?
earless1 2014-04-07 21:36 UTC link
On my CentOS boxes I ran 'yum list | grep openssl'
personjerry 2014-04-07 21:38 UTC link
Agreed. They should reorder their headings, first should be What is it? and second should be How to stop it?
mappu 2014-04-07 21:42 UTC link
1.0.1e-2+deb7u5 appearing now on security.debian.org.
gsnedders 2014-04-07 21:45 UTC link
Because it was already disclosed the instant the OpenSSL release went out and the fix was public.
mfwoods 2014-04-07 21:45 UTC link
I just installed update openssl_1.0.1e-2+deb7u5 and libssl1.0.0_1.0.1e-2+deb7u5 on debian wheezy, so it seems the fix is now available.
lawl 2014-04-07 21:51 UTC link
Agree. This needs a big fat the world is coming to an end stlye of warning.

I've just shut down the webservers running SSL that I can control. If you are vuln and don't want to build openssl from source and can afford the outage. I'd reccomend to do the same.

OTHERWISE BUILD FROM SOURCE IMMEDIATELY, PATCH, AND GET NEW KEYS!

Let's hope CA's don't get swamped by all the CSR's. Or rather let's hope they do so we see people are doing something...

For me right now these are just my hobby projects. So I don't care if they're down. But I imagine it will be fun tomorrow.

And when it's fixed, get new keys.

Btw: I'm a dev. Not a sysadmin though :P

Edit: Debian is patched. I'm online again \o/

rincebrain 2014-04-07 22:04 UTC link
I believe the reason they got access was one of their customers found it and reported it to them, and they reported it to OpenSSL, and then it somehow leaked (either with the OSSL release, or someone else) and then they posted their now-public writeups of it.
drv 2014-04-07 22:12 UTC link
From a quick reading of the TLS heartbeat RFC and the patched code, here's my understanding of the cause of the bug.

TLS heartbeat consists of a request packet including a payload; the other side reads and sends a response containing the same payload (plus some other padding).

In the code that handles TLS heartbeat requests, the payload size is read from the packet controlled by the attacker:

  n2s(p, payload);
  pl = p;
Here, p is a pointer to the request packet, and payload is the expected length of the payload (read as a 16-bit short integer: this is the origin of the 64K limit per request).

pl is the pointer to the actual payload in the request packet.

Then the response packet is constructed:

  /* Enter response type, length and copy payload */
  *bp++ = TLS1_HB_RESPONSE;
  s2n(payload, bp);
  memcpy(bp, pl, payload);
The payload length is stored into the destination packet, and then the payload is copied from the source packet pl to the destination packet bp.

The bug is that the payload length is never actually checked against the size of the request packet. Therefore, the memcpy() can read arbitrary data beyond the storage location of the request by sending an arbitrary payload length (up to 64K) and an undersized payload.

I find it hard to believe that the OpenSSL code does not have any better abstraction for handling streams of bytes; if the packets were represented as a (pointer, length) pair with simple wrapper functions to copy from one stream to another, this bug could have been avoided. C makes this sort of bug easy to write, but careful API design would make it much harder to do by accident.

azth 2014-04-07 22:13 UTC link
That's why I have high hopes for Rust. We really need to move away from C for critical infrastructure. Perhaps C++ as well, though the latter does have more ways to mitigate certain memory issues.

Incidentally, someone on the mailing list brought up the issue of having a compiler flag to disable bounds checking. However, the Rust authors were strictly against it.

neo2001 2014-04-07 22:21 UTC link
brown9-2 2014-04-07 22:37 UTC link
if (1 + 2 + 16 > s->s3->rrec.length)

I don't know C well - why write 19 like this?

imsofuture 2014-04-07 23:54 UTC link
Likewise, same question for Rackspace's Cloud LBs.
pbsd 2014-04-08 00:22 UTC link
This sort of argument is becoming something of a fashion statement amongst some security people. It's not a strictly wrong argument: writing code in languages that make screwing up easy will invariably result in screwups.

But it's a disingenuous one. It ignores the realities of systems. The reality is that there is currently no widely available memory-safe language that is usable for something like OpenSSL. .NET and Java (and all the languages running on top of them) are not an option, as they are not everywhere and/or are not callable from other languages. Go could be a good candidate, but without proper dynamic linking it cannot serve as a library callable from other languages either. Rust has a lot of promise, but even now it keeps changing every other week, so it will be years before it can even be considered for something like this.

Additionally, although the parsing portions of OpenSSL need not deal with the hardware directly, the crypto portions do. So your memory-safe language needs some first-class escape hatch to unsafe code. A few of them do have this, others not so much.

It's fun to say C is inadequate, but the space it occupies does not have many competitors. That needs to change first.

jcalvinowens 2014-04-08 00:23 UTC link
> C and other languages without memory checks are unsuitable for writing secure code

I vehemently disagree. Well-written C is very easy to audit. Much much moreso than languages like C# and Java, where something I could do with 200 lines in a single C source file requires 5 different classes in 5 different files. The problem with C is that a lot of people don't write it well.

Have you looked at the OpenSSL source? It's an ungodly f-cking disaster: it's very very difficult to understand and audit. THAT, I think, is the problem. BIND, the DNS server, used to have huge security issues all the time. They did a ground-up rewrite for version 9, and that by and large solved the problem: you don't read about BIND vulnerabilities that often anymore.

OpenSSL is the new BIND; and we desperately need it to be fixed.

(If I'm wrong about BIND, please correct me, but AFICS the only non-DOS vulnerability they've had since version 9 is CVE-2008-0122)

> but we can plug this seemingly endless source of bugs which has been affecting the Internet since the Morris worm.

If we're playing the blame game, blame the x86 architecture, not the C language. If x86 stacks grew up in memory (that is, from lower to higher addresses), almost all "stack smashing" attacks would be impossible, and a whole lot of big security bugs over the last 20 years could never have happened.

(The SSL bug is not a stack-smashing attack, but several of the exploits leveraged by the Morris worm were)

rst 2014-04-08 00:45 UTC link
What are the odds that the NSA didn't already know about it? Even if you don't think they would have deliberately monkeywrenched OpenSSL (as they are widely believed to have done with RSA's BSAFE), they certainly have qualified people poring over widely used crypto libraries, looking for missing bounds checks and all manner of other faults --- quite likely with automated tooling.

As to CAs, there have been enough compromises already from other causes that serious crypto geeks like Moxie Marlinspike are trying to change the trust model to minimize the consequences --- see http://tack.io

dfa0 2014-04-08 01:20 UTC link
On a linux box: [For each set of certs used for each of your public facing sites...]

1. Open a terminal[cd into] /etc/path_to_ssl_certs_folder[per site].

Ex. /etc/ssl/nginx

2. Regen the certs [example nginx mail server]

openssl req -x509 -sha256 -nodes -days 3650 -newkey rsa:4096 -keyout mailkey.pem -out mailcert.pem

[this command generates a private key and server cert and outputs to pem's] [Note also the key sizes are 4096, you may want 2048. AND I use -sha256, as sha1 is considered too weak nowadays. These certs are valid for 3650 days...10 years]

Since the command overwrites certs/keys in the current directory of the same name as the outfiles...that's it...you're done. Just restart nginx.

If you change a self-signed cert, like above, expect a new warning from the client on the next connection...this is just your new cert being encountered. Click permantly accept..blah blah.

------------------------------------------------------------------------

On a Windows box:

1. open an admin cmd window and run 'mmc'.

2. Add a new snap-in for Certificates as local machine.

3. Find and 'Disable all purposes for this cert'.

4. Import your new certs from your 3rd party or that you rolled yourself from your enterprise CA.

5. Test new cert.

6. Delete old cert.

[If you run your own CA, you should already know what to do...]

AnthonyMouse 2014-04-08 01:42 UTC link
In addition to that, it obviously disables the TLS heartbeat extension, which would break existing code that uses it.
sp332 2014-04-08 02:28 UTC link
Oh it's even worse, basically every secret you had in your server processes' RAM was potentially read in real-time by an attacker for the last 2 years.
userbinator 2014-04-08 02:50 UTC link
> And what does this imply?

To me, this implies that it's not too easy to exploit, or we would've seen it fixed much sooner.

chirayuk 2014-04-08 03:27 UTC link
Would love to see the code and test it against a rebuilt a patched nginx.
felixhandte 2014-04-08 05:03 UTC link
It's not hard to screen what's returned for chunks that look like they could be keys (you know the private key's size by looking at the target's certificate, you know it's not all zeros, etc.) and then simply exhaustively check chunks against their public key.

I just looked at one of my running apache processes, it only has 3MB of heap mapped (looked at /proc/12345/maps). That's not a whole lot of space to hide the keys in.

atomicUpdate 2014-04-08 05:17 UTC link
I agree entirely with your post, and I can't quite understand the hysteria in this thread. The odds of getting a key using this technique are incredibly low to begin with, let alone being able to recognize you have one, and how to correlate it with any useful encrypted data.

Supposing you do hit the lottery and get a key somewhere in your packet, you now have to find the starting byte for it, which means having data to attempt to decrypt it with. However, now you get bit by the fact that you don't have any privileged information or credentials, so you have no idea where decryptable information lives.

Assuming you are even able to intercept some traffic that's encrypted, you now have to try every word-aligned 256B(?) string of data you collected from the server, and hope you can decrypt the data. The amount of storage and processing time for this is already ridiculous, since you have to manually check if the data looks "good" or not.

The odds of all of these things lining up is infinitesimal for anything worth being worried about (banks, credit cards, etc.), so the effort involved far outweighs the payoffs (you only get 1 person's information after all of that). This is especially true when compared with traditional means of collecting this data through more generic viruses and social engineering.

So, while I'll be updating my personal systems, I'm not going to jump on to the "the sky is falling" train just yet, until someone can give a good example of how this could be practically exploited.

orblivion 2014-04-08 05:38 UTC link
You may be interested in Quark, which is a browser kernel written using Coq http://goto.ucsd.edu/quark/
Editorial Channel
What the content says
+0.85
Article 12 Privacy
High Advocacy Framing Coverage Practice
Editorial
+0.85
SETL
+0.65

The entire page is devoted to documenting privacy breaches and advocating for privacy protection. Privacy is framed as a fundamental right under threat.

+0.35
Article 26 Education
High Advocacy Coverage Practice
Editorial
+0.35
SETL
+0.23

The page is explicitly educational, using Q&A format and accessible explanations to educate readers about a complex security vulnerability.

+0.30
Article 3 Life, Liberty, Security
High Advocacy Framing Coverage
Editorial
+0.30
SETL
+0.17

The site explicitly addresses security threats and advocates for security restoration through detailed remediation procedures.

+0.30
Article 8 Right to Remedy
High Advocacy Framing Coverage
Editorial
+0.30
SETL
+0.17

The site provides detailed, categorized recovery procedures enabling affected individuals to pursue remedies for privacy breaches.

+0.30
Article 19 Freedom of Expression
High Advocacy Framing Coverage
Editorial
+0.30
SETL
+0.17

The site freely expresses detailed technical information about the vulnerability without withholding or obfuscating details, advocating for transparent reporting.

+0.25
Article 27 Cultural Participation
Medium Advocacy Framing Coverage
Editorial
+0.25
SETL
+0.16

The site acknowledges OpenSSL's scientific importance and explicitly calls for supporting its continued development.

+0.25
Article 28 Social & International Order
Medium Advocacy Framing Coverage
Editorial
+0.25
SETL
+0.16

The site describes coordinated international response to the vulnerability, demonstrating commitment to social and international order.

+0.25
Article 29 Duties to Community
Medium Advocacy Coverage
Editorial
+0.25
SETL
+0.16

The site explicitly describes community duties of vendors, service providers, users, and security community.

+0.20
Article 17 Property
Medium Advocacy Coverage
Editorial
+0.20
SETL
+0.14

The site discusses protection of intellectual property (encryption keys and certificates) as valuable assets requiring protection and recovery.

+0.20
Article 25 Standard of Living
Medium Advocacy Coverage
Editorial
+0.20
SETL
+0.14

The site recognizes that the vulnerability threatens individuals' access to essential services and advocates for securing that access.

+0.10
Preamble Preamble
High Advocacy Framing Coverage
Editorial
+0.10
SETL
+0.07

The site documents a serious vulnerability threatening human dignity and security, treating the topic with seriousness and commitment to public awareness.

0.00
Article 1 Freedom, Equality, Brotherhood
Medium
Editorial
0.00
SETL
ND

The page treats the vulnerability's impact and recovery procedures universally, without discrimination based on status or resources.

0.00
Article 2 Non-Discrimination
Medium
Editorial
0.00
SETL
ND

No discriminatory framing or language observed in discussion of the vulnerability or its impacts.

0.00
Article 7 Equality Before Law
Medium
Editorial
0.00
SETL
ND

The site addresses protection without discrimination; all users and services discussed equally.

ND
Article 4 No Slavery

ND
Article 5 No Torture

ND
Article 6 Legal Personhood

ND
Article 9 No Arbitrary Detention

ND
Article 10 Fair Hearing

ND
Article 11 Presumption of Innocence

ND
Article 13 Freedom of Movement

ND
Article 14 Asylum

ND
Article 15 Nationality

ND
Article 16 Marriage & Family

ND
Article 18 Freedom of Thought

ND
Article 20 Assembly & Association

ND
Article 21 Political Participation

ND
Article 22 Social Security

ND
Article 23 Work & Equal Pay

ND
Article 24 Rest & Leisure

ND
Article 30 No Destruction of Rights

Structural Channel
What the site does
+0.35
Article 12 Privacy
High Advocacy Framing Coverage Practice
Structural
+0.35
Context Modifier
ND
SETL
+0.65

The site itself demonstrates privacy-protective practices: minimal tracking, static information access, no surveillance mechanisms.

+0.20
Article 3 Life, Liberty, Security
High Advocacy Framing Coverage
Structural
+0.20
Context Modifier
ND
SETL
+0.17

The page structure itself is secure (static, no vulnerabilities); information is clearly organized for security decision-making.

+0.20
Article 8 Right to Remedy
High Advocacy Framing Coverage
Structural
+0.20
Context Modifier
ND
SETL
+0.17

Recovery information is clearly organized and accessible; separate guidance for different stakeholders enables effective action.

+0.20
Article 19 Freedom of Expression
High Advocacy Framing Coverage
Structural
+0.20
Context Modifier
ND
SETL
+0.17

Technical information is publicly accessible without restriction; source attribution is transparent.

+0.20
Article 26 Education
High Advocacy Coverage Practice
Structural
+0.20
Context Modifier
ND
SETL
+0.23

The site structure (Q&A, progressive disclosure, linked references) enables learning and informed decision-making.

+0.15
Article 27 Cultural Participation
Medium Advocacy Framing Coverage
Structural
+0.15
Context Modifier
ND
SETL
+0.16

The site provides references to OpenSSL project and development information.

+0.15
Article 28 Social & International Order
Medium Advocacy Framing Coverage
Structural
+0.15
Context Modifier
ND
SETL
+0.16

Multiple international CERT organizations are referenced and linked.

+0.15
Article 29 Duties to Community
Medium Advocacy Coverage
Structural
+0.15
Context Modifier
ND
SETL
+0.16

Clear guidance enables stakeholders to understand and fulfill their responsibilities.

+0.10
Article 17 Property
Medium Advocacy Coverage
Structural
+0.10
Context Modifier
ND
SETL
+0.14

Recovery procedures protect stakeholders' property rights through key revocation and reissuing.

+0.10
Article 25 Standard of Living
Medium Advocacy Coverage
Structural
+0.10
Context Modifier
ND
SETL
+0.14

Recovery information supports individuals' ability to safely access services.

+0.05
Preamble Preamble
High Advocacy Framing Coverage
Structural
+0.05
Context Modifier
ND
SETL
+0.07

The site provides clear, accessible information structure; no barriers to understanding the threat and remediation.

0.00
Article 1 Freedom, Equality, Brotherhood
Medium
Structural
0.00
Context Modifier
ND
SETL
ND

Information is presented equally to all users; no structural discrimination observed.

0.00
Article 2 Non-Discrimination
Medium
Structural
0.00
Context Modifier
ND
SETL
ND

No structural discrimination in access or information presentation.

0.00
Article 7 Equality Before Law
Medium
Structural
0.00
Context Modifier
ND
SETL
ND

Information access is equal; no structural barriers based on protected status.

ND
Article 4 No Slavery

ND
Article 5 No Torture

ND
Article 6 Legal Personhood

ND
Article 9 No Arbitrary Detention

ND
Article 10 Fair Hearing

ND
Article 11 Presumption of Innocence

ND
Article 13 Freedom of Movement

ND
Article 14 Asylum

ND
Article 15 Nationality

ND
Article 16 Marriage & Family

ND
Article 18 Freedom of Thought

ND
Article 20 Assembly & Association

ND
Article 21 Political Participation

ND
Article 22 Social Security

ND
Article 23 Work & Equal Pay

ND
Article 24 Rest & Leisure

ND
Article 30 No Destruction of Rights

Supplementary Signals
How this content communicates, beyond directional lean. Learn more
Epistemic Quality
How well-sourced and evidence-based is this content?
0.79 medium claims
Sources
0.8
Evidence
0.8
Uncertainty
0.8
Purpose
0.9
Propaganda Flags
No manipulative rhetoric detected
0 techniques detected
Emotional Tone
Emotional character: positive/negative, intensity, authority
urgent
Valence
-0.5
Arousal
0.8
Dominance
0.6
Transparency
Does the content identify its author and disclose interests?
0.50
✓ Author ✗ Conflicts
More signals: context, framing & audience
Solution Orientation
Does this content offer solutions or only describe problems?
0.85 solution oriented
Reader Agency
0.8
Stakeholder Voice
Whose perspectives are represented in this content?
0.50 6 perspectives
Speaks: institutiongovernment
About: individualscorporationgovernment
Temporal Framing
Is this content looking backward, at the present, or forward?
mixed immediate
Geographic Scope
What geographic area does this content cover?
global
Finland, Austria, Luxembourg, France, Japan, Sweden, China, Canada, Lithuania, Mexico, Singapore, Qatar, United States
Complexity
How accessible is this content to a general audience?
moderate medium jargon general
Longitudinal · 7 evals
+1 0 −1 HN
Audit Trail 23 entries
2026-02-28 09:39 model_divergence Cross-model spread 0.48 exceeds threshold (4 models) - -
2026-02-28 09:39 eval_success Light evaluated: Neutral (0.00) - -
2026-02-28 09:39 eval Evaluated by llama-4-scout-wai: 0.00 (Neutral) 0.00
reasoning
ED, neutral tech info on Heartbleed bug
2026-02-28 09:39 rater_validation_warn Light validation warnings for model llama-4-scout-wai: 0W 1R - -
2026-02-28 09:39 model_divergence Cross-model spread 0.48 exceeds threshold (3 models) - -
2026-02-28 09:39 eval_success Light evaluated: Neutral (0.00) - -
2026-02-28 09:39 eval Evaluated by llama-3.3-70b-wai: 0.00 (Neutral) 0.00
reasoning
Technical explanation of bug
2026-02-28 09:39 rater_validation_warn Light validation warnings for model llama-3.3-70b-wai: 0W 1R - -
2026-02-28 07:33 model_divergence Cross-model spread 0.27 exceeds threshold (2 models) - -
2026-02-28 07:33 eval Evaluated by claude-haiku-4-5-20251001: +0.21 (Mild positive)
2026-02-28 00:00 eval_success Light evaluated: Neutral (0.00) - -
2026-02-28 00:00 eval Evaluated by llama-3.3-70b-wai: 0.00 (Neutral)
reasoning
Technical explanation of bug
2026-02-27 23:34 eval_success Evaluated: Strong positive (0.64) - -
2026-02-27 23:34 eval Evaluated by deepseek-v3.2: +0.64 (Strong positive) 12,229 tokens
2026-02-27 23:16 rater_validation_fail Parse failure for model deepseek-v3.2: Error: Failed to parse OpenRouter JSON: SyntaxError: Expected ',' or ']' after array element in JSON at position 16487 (line 326 column 6). Extracted text starts with: { "schema_version": "3.7", " - -
2026-02-27 23:16 eval_retry OpenRouter output truncated at 4096 tokens - -
2026-02-27 22:59 dlq Dead-lettered after 1 attempts: The Heartbleed Bug - -
2026-02-27 22:58 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-27 22:57 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-27 22:56 eval_success Light evaluated: Neutral (0.00) - -
2026-02-27 22:56 eval Evaluated by llama-4-scout-wai: 0.00 (Neutral)
reasoning
ED, neutral tech info on Heartbleed bug
2026-02-27 22:55 rate_limit OpenRouter rate limited (429) model=llama-3.3-70b - -
2026-02-27 22:44 eval Evaluated by claude-haiku-4-5: +0.48 (Moderate positive)