aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAris Adamantiadis <aris@0xbadc0de.be>2014-02-05 21:24:12 +0100
committerAris Adamantiadis <aris@0xbadc0de.be>2014-03-04 09:55:02 +0100
commit3fdd82f2a8a776650f10f30c33546ce2dd42f073 (patch)
treebca8b517f5d952e72cb7a7d87c87028d7d2316a6 /include
parent6cd94a63ff09f67d4f06102cd35470068fee88a6 (diff)
downloadlibssh-3fdd82f2a8a776650f10f30c33546ce2dd42f073.tar.gz
libssh-3fdd82f2a8a776650f10f30c33546ce2dd42f073.tar.xz
libssh-3fdd82f2a8a776650f10f30c33546ce2dd42f073.zip
security: fix for vulnerability CVE-2014-0017
When accepting a new connection, a forking server based on libssh forks and the child process handles the request. The RAND_bytes() function of openssl doesn't reset its state after the fork, but simply adds the current process id (getpid) to the PRNG state, which is not guaranteed to be unique. This can cause several children to end up with same PRNG state which is a security issue.
Diffstat (limited to 'include')
-rw-r--r--include/libssh/wrapper.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/libssh/wrapper.h b/include/libssh/wrapper.h
index 7374a88a..e8ff32c1 100644
--- a/include/libssh/wrapper.h
+++ b/include/libssh/wrapper.h
@@ -70,5 +70,6 @@ int crypt_set_algorithms_server(ssh_session session);
struct ssh_crypto_struct *crypto_new(void);
void crypto_free(struct ssh_crypto_struct *crypto);
+void ssh_reseed(void);
#endif /* WRAPPER_H_ */