There’s a big difference between “ssl private key” and “certificate”. So far we know that SSL private keys can be obtained. Please correct me if I’m wrong, but I assume that SSL uses a new private key for every session. (Whether that’s a TCP connection or a higher level session, I’m not sure, but I suspect it’s higher level: you get a new session each time you log in. If I’m correct on this, a session could last for a couple weeks at many sites, and only for hours or less on others.)
That would not leak your password.
I’m not quite sure what it would permit a hacker to do. If the hacker could also intercept (monitor) your traffic to and from the server, he could decode the messages. However, if I’m guessing correctly, your password would have been used earlier (and never sent in the clear, and sent only in a way that allows the server to check “good vs bad”).
I don’t think it would permit the hacker to pose as the server, without also hacking the network to intercept traffic to the server’s IP address (or to masquerade as the server by hacking DNS, on a subsequent TCP connection to the same server after long enough for your DNS entry to time out.)
I think it’s prudent to assume the worst, though.
My knowledge of security is limited to studying the basic mechanisms and their applications to network layer security, in the late 90’s, as the principle engineer on a project that my company bid on and won but our customers did not win their bids, so I never got to find out how right or wrong I was in my estimates. I’m sure I’ve forgotten and misremembered a lot since then. I’d appreciate anyone with a practical knowledge of security mechanisms and especially SSL to shed more light on this.
BTW, one of the quotes above mentions “stack data”. This is a heap attack, and will not expose any stack data, so whoever wrote that was mistaken, or I’m missing something myself.
Stack vs. Heap: Heap is when your program asks for and gets a specific sized segment of memory to use temporarily and return (though, you can keep it as long as you want, as long as you don’t routinely lose it and ask for another.) Stack is where a function or procedure’s local variables are stored, if they don’t fit in the CPU registers. It’s also where the contexts of calling procedures or functions are stored when calling a new procedure or function. Lots of data can naturally appear in either place, but buffers for received packets are very rarely – maybe never – allocated on the stack.