[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <ilu4xp2mqm2z2gocul5nyntu4c7eiw5wl3rzli5lmptf3hexea@2uuhuupxp35c>
Date: Tue, 31 Dec 2024 01:52:40 +0200
From: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
To: Stephan Gerhold <stephan.gerhold@...aro.org>
Cc: Bjorn Andersson <andersson@...nel.org>,
Konrad Dybcio <konradybcio@...nel.org>, Vinod Koul <vkoul@...nel.org>, linux-arm-msm@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH] soc: qcom: socinfo: Avoid out of bounds read of serial
number
On Mon, Dec 30, 2024 at 08:59:35PM +0100, Stephan Gerhold wrote:
> On MSM8916 devices, the serial number exposed in sysfs is constant and does
> not change across individual devices. It's always:
>
> db410c:/sys/devices/soc0$ cat serial_number
> 2644893864
>
> The firmware used on MSM8916 exposes SOCINFO_VERSION(0, 8), which does not
> have support for the serial_num field in the socinfo struct. There is an
> existing check to avoid exposing the serial number in that case, but it's
> not correct: When checking the item_size returned by SMEM, we need to make
> sure the *end* of the serial_num is within bounds, instead of comparing
> with the *start* offset. The serial_number currently exposed on MSM8916
> devices is just an out of bounds read of whatever comes after the socinfo
> struct in SMEM.
>
> Fix this by changing offsetof() to offsetofend(), so that the size of the
> field is also taken into account.
>
> Cc: stable@...r.kernel.org
> Fixes: efb448d0a3fc ("soc: qcom: Add socinfo driver")
> Signed-off-by: Stephan Gerhold <stephan.gerhold@...aro.org>
> ---
> drivers/soc/qcom/socinfo.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@...aro.org>
--
With best wishes
Dmitry
Powered by blists - more mailing lists