44 lines
1.3 KiB
Diff
44 lines
1.3 KiB
Diff
Th AF_ALG socket was missing a security label (e.g. SELinux)
|
|
which means that socket was in "unlabeled" state.
|
|
|
|
This was recently demonstrated in the cryptsetup package
|
|
(cryptsetup v1.6.5 and later.)
|
|
See https://bugzilla.redhat.com/show_bug.cgi?id=1115120
|
|
|
|
This patch clones the sock's label from the parent sock
|
|
and resolves the issue (similar to AF_BLUETOOTH protocol family).
|
|
|
|
Cc: stable@vger.kernel.org
|
|
Signed-off-by: Milan Broz <gmazyland@gmail.com>
|
|
---
|
|
crypto/af_alg.c | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
diff --git a/crypto/af_alg.c b/crypto/af_alg.c
|
|
index 966f893..6a3ad80 100644
|
|
--- a/crypto/af_alg.c
|
|
+++ b/crypto/af_alg.c
|
|
@@ -21,6 +21,7 @@
|
|
#include <linux/module.h>
|
|
#include <linux/net.h>
|
|
#include <linux/rwsem.h>
|
|
+#include <linux/security.h>
|
|
|
|
struct alg_type_list {
|
|
const struct af_alg_type *type;
|
|
@@ -243,6 +244,7 @@ int af_alg_accept(struct sock *sk, struct socket *newsock)
|
|
|
|
sock_init_data(newsock, sk2);
|
|
sock_graft(sk2, newsock);
|
|
+ security_sk_clone(sk, sk2);
|
|
|
|
err = type->accept(ask->private, sk2);
|
|
if (err) {
|
|
--
|
|
2.0.1
|
|
|
|
_______________________________________________
|
|
Selinux mailing list
|
|
Selinux@tycho.nsa.gov
|
|
To unsubscribe, send email to Selinux-leave@tycho.nsa.gov.
|
|
To get help, send an email containing "help" to Selinux-request@tycho.nsa.gov.
|