Why does CRYPTO_USER require CAP_NET_ADMIN?
If I'm not mistaken, CRYPTO_USER requires CAP_NET_ADMIN for all requests. Is there any reason for this requirement for read-only requests?
I think read-only requests should not require CAP_NET_ADMIN. An example where this is important is important is AF_ALG. I'm working on AF_ALG support for GnuTLS, encryption and decryption via AF_ALG does not require special capabilities. However, retrieving the cipher priority to determine whether the cipher is hardware accelerated does require CAP_NET_ADMIN.
Regards,
Matthias-Christian
PATCH 1/1 crypto: user - Allow CRYPTO_MSG_GETALG without CAP_NET_ADMIN
CRYPTO_USER requires CAP_NET_ADMIN for all operations. Most information provided by CRYPTO_MSG_GETALG is also accessible through /proc/modules and AF_ALG. CRYPTO_MSG_GETALG should not require CAP_NET_ADMIN so that processes without CAP_NET_ADMIN can use CRYPTO_MSG_GETALG to get cipher details, such as cipher priorities, for AF_ALG.
--- crypto/crypto_user.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
crypto/crypto_user.c +9 -3
@@ -265,6 +265,9 @@ static int crypto_update_alg(struct sk_buff *skb, struct nlmsghdr *nlh,struct nlattr *priority = attrs[CRYPTOCFGA_PRIORITY_VAL ];LIST_HEAD (list); +if (!capable (CAP_NET_ADMIN )) +return -EPERM ; +if (!null_terminated (p->cru_name) || !null_terminated (p->cru_driver_name))return -EINVAL ;
@@ -295,6 +298,9 @@ static int crypto_del_alg(struct sk_buff *skb, struct nlmsghdr *nlh,struct crypto_alg *alg;struct crypto_user_alg *p =nlmsg_data (nlh); +if (!capable (CAP_NET_ADMIN )) +return -EPERM ; +if (!null_terminated (p->cru_name) || !null_terminated (p->cru_driver_name))return -EINVAL ;
@@ -379,6 +385,9 @@ static int crypto_add_alg(struct sk_buff *skb, struct nlmsghdr *nlh,struct crypto_user_alg *p =nlmsg_data (nlh);struct nlattr *priority = attrs[CRYPTOCFGA_PRIORITY_VAL ]; +if (!capable (CAP_NET_ADMIN )) +return -EPERM ; +if (!null_terminated (p->cru_name) || !null_terminated (p->cru_driver_name))return -EINVAL ;
@@ -466,9 +475,6 @@ static int crypto_user_rcv_msg(struct sk_buff *skb, struct nlmsghdr *nlh) type -=CRYPTO_MSG_BASE ; link = &crypto_dispatch[type]; -if (!capable (CAP_NET_ADMIN )) -return -EPERM ; -if ((type == (CRYPTO_MSG_GETALG -CRYPTO_MSG_BASE ) && (nlh->nlmsg_flags &NLM_F_DUMP ))) {struct crypto_alg *alg;
Re: [PATCH] crypto: user - Allow CRYPTO_MSG_GETALG without CAP_NET_ADMIN
Quoted 10 lines · Matthias-Christian Ott
CRYPTO_USERrequiresCAP_NET_ADMINfor all operations. Most information provided byCRYPTO_MSG_GETALGis also accessible through/proc/modulesandAF_ALG.CRYPTO_MSG_GETALGshould not requireCAP_NET_ADMINso that processes withoutCAP_NET_ADMINcan useCRYPTO_MSG_GETALGto get cipher details, such as cipher priorities, forAF_ALG.Signed-off-by Matthias-Christian Ott <[email protected]>--- crypto/crypto_user.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
Can you please submit the patch using git send-email so we can properly review it?
Thank you !
Best regards,
Marek Vasut
Re: [PATCH] crypto: user - Allow CRYPTO_MSG_GETALG without CAP_NET_ADMIN
Quoted 7 lines · Marek Vasut
Quoted 6 lines · Matthias-Christian Ott
CRYPTO_USERrequiresCAP_NET_ADMINfor all operations. Most information provided byCRYPTO_MSG_GETALGis also accessible through/proc/modulesandAF_ALG.CRYPTO_MSG_GETALGshould not requireCAP_NET_ADMINso that processes withoutCAP_NET_ADMINcan useCRYPTO_MSG_GETALGto get cipher details, such as cipher priorities, forAF_ALG.
Quoted 7 lines
Quoted 4 lines
Signed-off-by Matthias-Christian Ott <[email protected]>--- crypto/crypto_user.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)Can you please submit the patch using git send-email so we can properly review it?
git-send-email or more specifically Net::SMTP only works with IPv4. The SMTP server I use for submission only listens IPv6 addresses. Moreover, TLS seems broken. I patched Net::SMTP to use IO::Socket::INET6 but gave up because of the TLS issues and used git format-patch and git imap-send.
Regards,
Matthias-Christian
Re: [PATCH] crypto: user - Allow CRYPTO_MSG_GETALG without CAP_NET_ADMIN
Quoted 14 lines · Matthias-Christian Ott
Quoted 13 lines · Marek Vasut
Quoted 11 lines · Matthias-Christian Ott
CRYPTO_USERrequiresCAP_NET_ADMINfor all operations. Most information provided byCRYPTO_MSG_GETALGis also accessible through/proc/modulesandAF_ALG.CRYPTO_MSG_GETALGshould not requireCAP_NET_ADMINso that processes withoutCAP_NET_ADMINcan useCRYPTO_MSG_GETALGto get cipher details, such as cipher priorities, forAF_ALG.Signed-off-by Matthias-Christian Ott <[email protected]>---
crypto/crypto_user.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)
Quoted 7 lines
Quoted 2 lines
Can you please submit the patch using git send-email so we can properly review it?
git-send-email or more specifically
Net::SMTPonly works with IPv4. The SMTP server I use for submission only listens IPv6 addresses. Moreover, TLS seems broken. I patchedNet::SMTPto useIO::Socket::INET6but gave up because of the TLS issues and used git format-patch and git imap-send.
You can always set up a separate mailserver or use one of the many free-to-use mailservers to follow the agreed-upon submission process, right?
Of course, patches for Net::SMTP are welcome.
Best regards,
Marek Vasut
Re: [PATCH] crypto: user - Allow CRYPTO_MSG_GETALG without CAP_NET_ADMIN
Quoted 18 lines · Marek Vasut
Quoted 17 lines · Matthias-Christian Ott
Quoted 15 lines · Marek Vasut
Quoted 11 lines · Matthias-Christian Ott
CRYPTO_USERrequiresCAP_NET_ADMINfor all operations. Most information provided byCRYPTO_MSG_GETALGis also accessible through/proc/modulesandAF_ALG.CRYPTO_MSG_GETALGshould not requireCAP_NET_ADMINso that processes withoutCAP_NET_ADMINcan useCRYPTO_MSG_GETALGto get cipher details, such as cipher priorities, forAF_ALG.Signed-off-by Matthias-Christian Ott <[email protected]>---
crypto/crypto_user.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-)Can you please submit the patch using git send-email so we can properly review it?
Quoted 7 lines
Quoted 4 lines
git-send-email or more specifically
Net::SMTPonly works with IPv4. The SMTP server I use for submission only listens IPv6 addresses. Moreover, TLS seems broken. I patchedNet::SMTPto useIO::Socket::INET6but gave up because of the TLS issues and used git format-patch and git imap-send.You can always set up a separate mailserver or use one of the many free-to-use mailservers to follow the agreed-upon submission process, right?
I don't comment on this statement to keep this discussion focused (send me a private email if you want to discuss it).
I did try to submit the email directly (with SPF disabled) from git send-email to vger.kernel.org but vger.kernel.org uses greylisting, so I can't help you with that.
Can you simply copy the file that was attached on the first email I sent, save it to the filesystem and simply commit it in git? You would have to do this anyway if I filed a bug in the Kernel Bug Tracker. So there is an “agreed-upon submission process” to commit a file.
Quoted 1 line
Of course, patches for
Net::SMTPare welcome.
I reported the bug and someone who actually knows Perl is working on it.
Herbert Xu
maintainerRe: [PATCH] crypto: user - Allow CRYPTO_MSG_GETALG without CAP_NET_ADMIN
In reply to Matthias-Christian OttQuoted 8 lines · Matthias-Christian Ott
CRYPTO_USERrequiresCAP_NET_ADMINfor all operations. Most information provided byCRYPTO_MSG_GETALGis also accessible through/proc/modulesandAF_ALG.CRYPTO_MSG_GETALGshould not requireCAP_NET_ADMINso that processes withoutCAP_NET_ADMINcan useCRYPTO_MSG_GETALGto get cipher details, such as cipher priorities, forAF_ALG.Signed-off-by Matthias-Christian Ott <[email protected]>
Patch applied.
Signature · 3 lines
Email: Herbert Xu <[email protected]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt