Linux: clocksource/drivers/timer-sun4i: Advertise a real minimum delta
What fixes it
- 0cc4b14d7401d50e53a01f1554147ee075ee6943LinuxCVE List
- 53a3bc024b8e5d284468cce84957cded5f859f98LinuxCVE List
- 753a220084dfc4d737f2ab9eaddc9a01a397edd7LinuxCVE List
- 151eb52f8712017c8f7b00bb2305e8916cb9e3dcLinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
clocksource/drivers/timer-sun4i: Advertise a real minimum delta
sun4i_clkevt_next_event() compensates for the timer stop/start synchronization delay by programming evt - TIMER_SYNC_TICKS into the hardware interval register. The clockevent device currently advertises TIMER_SYNC_TICKS as min_delta_ticks, so the clockevents core is allowed to call set_next_event() with evt == TIMER_SYNC_TICKS.
That programs a zero-tick interval. With oneshot/highres/nohz timer operation this can leave the next event stuck, which was observed as a boot hang on Allwinner D1 after the clockevents core started reusing forced minimum-delta events.
Advertise one extra tick instead, so the smallest event accepted by the core still programs at least one hardware tick after the synchronization compensation.
Text from CVE List
Affected versions 18
- Linuxaffected: 12e1480bcb4920c1b02b3793cb48756497919a60 before 0cc4b14d7401d50e53a01f1554147ee075ee6943CVE List
- Linuxaffected: 12e1480bcb4920c1b02b3793cb48756497919a60 before 53a3bc024b8e5d284468cce84957cded5f859f98CVE List
- Linuxaffected: 12e1480bcb4920c1b02b3793cb48756497919a60 before 753a220084dfc4d737f2ab9eaddc9a01a397edd7CVE List
- Linuxaffected: 12e1480bcb4920c1b02b3793cb48756497919a60 before ebba4d0aeba0e8eb3a9676380fc2652de8ab1c44CVE List
- Linuxaffected: 12e1480bcb4920c1b02b3793cb48756497919a60 before 151eb52f8712017c8f7b00bb2305e8916cb9e3dcCVE List
- Linuxaffected: 12e1480bcb4920c1b02b3793cb48756497919a60 before bf38be01d43c4e4ca903aff7236d8486a950a252CVE List
- Linuxaffected: 12e1480bcb4920c1b02b3793cb48756497919a60 before f0efafcdf6eec1f3361bfd8c811420198f55c8bbCVE List
- Linuxaffected: 12e1480bcb4920c1b02b3793cb48756497919a60 before d21808328225ab8cee46885bf9a0dffcefbe630eCVE List
- Linuxaffected: 3.13CVE List
- Linuxunaffected: all versions before 3.13CVE List
- Linuxunaffected: 5.10.270 through 5.10.*CVE List
- Linuxunaffected: 5.15.221 through 5.15.*CVE List
- Linuxunaffected: 6.1.188 through 6.1.*CVE List
- Linuxunaffected: 6.6.157 through 6.6.*CVE List
- Linuxunaffected: 6.12.109 through 6.12.*CVE List
- Linuxunaffected: 6.18.50 through 6.18.*CVE List
- Linuxunaffected: 7.2.4 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 8
- git.kernel.org/stable/c/0cc4b14d7401d50e53a01f1554147ee075ee6943Referencevia CVE List
- git.kernel.org/stable/c/53a3bc024b8e5d284468cce84957cded5f859f98Referencevia CVE List
- git.kernel.org/stable/c/753a220084dfc4d737f2ab9eaddc9a01a397edd7Referencevia CVE List
- git.kernel.org/stable/c/ebba4d0aeba0e8eb3a9676380fc2652de8ab1c44Referencevia CVE List
- git.kernel.org/stable/c/151eb52f8712017c8f7b00bb2305e8916cb9e3dcReferencevia CVE List
- git.kernel.org/stable/c/bf38be01d43c4e4ca903aff7236d8486a950a252Referencevia CVE List
- git.kernel.org/stable/c/f0efafcdf6eec1f3361bfd8c811420198f55c8bbReferencevia CVE List
- git.kernel.org/stable/c/d21808328225ab8cee46885bf9a0dffcefbe630eReferencevia CVE List