lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YgFTsot6DUQptjWk@zeniv-ca.linux.org.uk>
Date:   Mon, 7 Feb 2022 17:15:30 +0000
From:   Al Viro <viro@...iv.linux.org.uk>
To:     Jakub Kicinski <kuba@...nel.org>
Cc:     davem@...emloft.net, netdev@...r.kernel.org, borisp@...dia.com,
        john.fastabend@...il.com, daniel@...earbox.net,
        vfedorenko@...ek.ru, kernel-team@...com, axboe@...nel.dk
Subject: Re: [PATCH net-next] tls: cap the output scatter list to something
 reasonable

On Wed, Feb 02, 2022 at 02:20:31PM -0800, Jakub Kicinski wrote:
> TLS recvmsg() passes user pages as destination for decrypt.
> The decrypt operation is repeated record by record, each
> record being 16kB, max. TLS allocates an sg_table and uses
> iov_iter_get_pages() to populate it with enough pages to
> fit the decrypted record.
> 
> Even though we decrypt a single message at a time we size
> the sg_table based on the entire length of the iovec.
> This leads to unnecessarily large allocations, risking
> triggering OOM conditions.
> 
> Use iov_iter_truncate() / iov_iter_reexpand() to construct
> a "capped" version of iov_iter_npages(). Alternatively we
> could parametrize iov_iter_npages() to take the size as
> arg instead of using i->count, or do something else..

Er...  Would simply passing 16384/PAGE_SIZE instead of MAX_INT work
for your purposes?

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ