On Mon, Feb 05, 2024 at 10:14:53AM +0530, Ajay Kaher wrote: > From: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > > commit c301f0981fdd3fd1ffac6836b423c4d7a8e0eb63 upstream. > > The problem is in nft_byteorder_eval() where we are iterating through a > loop and writing to dst[0], dst[1], dst[2] and so on... On each > iteration we are writing 8 bytes. But dst[] is an array of u32 so each > element only has space for 4 bytes. That means that every iteration > overwrites part of the previous element. > > I spotted this bug while reviewing commit caf3ef7468f7 ("netfilter: > nf_tables: prevent OOB access in nft_byteorder_eval") which is a related > issue. I think that the reason we have not detected this bug in testing > is that most of time we only write one element. > > Fixes: ce1e7989d989 ("netfilter: nft_byteorder: provide 64bit le/be conversion") > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > Signed-off-by: Pablo Neira Ayuso <pablo@xxxxxxxxxxxxx> > Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx> > [Ajay: Modified to apply on v5.4.y] > Signed-off-by: Ajay Kaher <ajay.kaher@xxxxxxxxxxxx> > --- All now queued up, thanks. greg k-h