[U-Boot] [PATCH v2 5/5] CVE-2019-14196: nfs: fix unbounded memcpy with a failed length check at nfs_lookup_reply //RE: [PATCH 5/5] CVE-2019-14196: nfs: fix unbounded memcpy with a failed length check at nfs_lookup_reply

Changes in v2: - Add reported-by tag for patch 5/5 -------------------------------------------------------------------------------------------------------------- CVE-2019-14196: nfs: fix unbounded memcpy with a failed length check at nfs_lookup_reply
This patch adds a check to rpc_pkt.u.reply.data at nfs_lookup_reply.
Signed-off-by: Cheng Liu liucheng32@huawei.com Reported-by: Fermín Serna fermin@semmle.com --- net/nfs.c | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/net/nfs.c b/net/nfs.c index 915acd9..89952ae 100644 --- a/net/nfs.c +++ b/net/nfs.c @@ -566,11 +566,15 @@ static int nfs_lookup_reply(uchar *pkt, unsigned len) }
if (supported_nfs_versions & NFSV2_FLAG) { + if (((uchar *)&(rpc_pkt.u.reply.data[0]) - (uchar *)(&rpc_pkt) + NFS_FHSIZE) > len) + return -NFS_RPC_DROP; memcpy(filefh, rpc_pkt.u.reply.data + 1, NFS_FHSIZE); } else { /* NFSV3_FLAG */ filefh3_length = ntohl(rpc_pkt.u.reply.data[1]); if (filefh3_length > NFS3_FHSIZE) filefh3_length = NFS3_FHSIZE; + if (((uchar *)&(rpc_pkt.u.reply.data[0]) - (uchar *)(&rpc_pkt) + filefh3_length) > len) + return -NFS_RPC_DROP; memcpy(filefh, rpc_pkt.u.reply.data + 2, filefh3_length); }

On Thu, Aug 29, 2019 at 8:49 AM liucheng (G) liucheng32@huawei.com wrote:
Changes in v2:
- Add reported-by tag for patch 5/5
CVE-2019-14196: nfs: fix unbounded memcpy with a failed length check at nfs_lookup_reply
This patch adds a check to rpc_pkt.u.reply.data at nfs_lookup_reply.
Signed-off-by: Cheng Liu liucheng32@huawei.com Reported-by: Fermín Serna fermin@semmle.com
Acked-by: Joe Hershberger joe.hershberger@ni.com

Hi liucheng,
https://patchwork.ozlabs.org/patch/1155276/ was applied to http://git.denx.de/?p=u-boot/u-boot-net.git
Thanks! -Joe
participants (2)
-
Joe Hershberger
-
liucheng (G)