RE: [bug report] out-of-bound array access in drivers/rtc/lib.c rtc_month_days

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi!

> From: Alexandre Belloni <alexandre.belloni@xxxxxxxxxxx>
> Sent: Friday, February 19, 2021 7:35 PM
> To: charley.ashbringer@xxxxxxxxx
> Cc: a.zummo@xxxxxxxxxxxx; linux-rtc@xxxxxxxxxxxxxxx
> Subject: Re: [bug report] out-of-bound array access in drivers/rtc/lib.c
> rtc_month_days
> 
> Hello,
> 
> On 19/02/2021 13:51:12-0500, charley.ashbringer@xxxxxxxxx wrote:
> > Hi Alessandro and Alexandre,
> > Greetings, I'm a 2nd year PhD student who is interested in using UBSan
> > to the kernel.
> > Through some experiment, I found a out-of-bound array access in
> > function rtc_month_days.
> > More specifically, the through the call chain of
> > davinci_rtc_set_time/davinci_rtc_set_alarm -> convert2days ->
> > rtc_month_days, since davinci_rtc_set_time/davinci_rtc_set_alarm are
> > ioctl functions, thus the 2nd parameter, struct rtc_time *tm, is
> > passed in purely from user-space which can be any value.
> 
> This part is not true and is probably what you are missing, the userspace
> input is sanitized by the core, see the rtc_valid_tm calls
> here:
> https://elixir.bootlin.com/linux/v5.11/source/drivers/rtc/interface.c#L130
> and here:
> https://elixir.bootlin.com/linux/v5.11/source/drivers/rtc/interface.c#L457
> 

Thank you so much for pointing this out, 
I didn't notice when probing each individual rtc device, 
there is a devm_rtc_allocate_device which essentially 
sanitized the ioctl input from the core.
This broaden my understanding of how ioctl works a lot, 
thank you so much!

Best regards,
Changming

> --
> Alexandre Belloni, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com




[Index of Archives]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux