diff mbox series

[SRU,Trusty,1/1] video: fbdev: aty: do not leak uninitialized padding in clk to userspace

Message ID 20171207135017.4754-2-kleber.souza@canonical.com
State New
Headers show
Series Fix for CVE-2017-14156 | expand

Commit Message

Kleber Sacilotto de Souza Dec. 7, 2017, 1:50 p.m. UTC
From: Vladis Dronov <vdronov@redhat.com>

'clk' is copied to a userland with padding byte(s) after 'vclk_post_div'
field unitialized, leaking data from the stack. Fix this ensuring all of
'clk' is initialized to zero.

References: https://github.com/torvalds/linux/pull/441
Reported-by: sohu0106 <sohu0106@126.com>
Signed-off-by: Vladis Dronov <vdronov@redhat.com>
Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>

CVE-2017-14156
(backported from commit 8e75f7a7a00461ef6d91797a60b606367f6e344d)
[klebers: adapted file path, which has been moved by f7018c213502 upstream]
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
---
 drivers/video/aty/atyfb_base.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Colin Ian King Dec. 7, 2017, 1:52 p.m. UTC | #1
On 07/12/17 13:50, Kleber Sacilotto de Souza wrote:
> From: Vladis Dronov <vdronov@redhat.com>
> 
> 'clk' is copied to a userland with padding byte(s) after 'vclk_post_div'
> field unitialized, leaking data from the stack. Fix this ensuring all of
> 'clk' is initialized to zero.
> 
> References: https://github.com/torvalds/linux/pull/441
> Reported-by: sohu0106 <sohu0106@126.com>
> Signed-off-by: Vladis Dronov <vdronov@redhat.com>
> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> 
> CVE-2017-14156
> (backported from commit 8e75f7a7a00461ef6d91797a60b606367f6e344d)
> [klebers: adapted file path, which has been moved by f7018c213502 upstream]
> Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
> ---
>  drivers/video/aty/atyfb_base.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c
> index 28fafbf864a5..fc17085ae1f7 100644
> --- a/drivers/video/aty/atyfb_base.c
> +++ b/drivers/video/aty/atyfb_base.c
> @@ -1852,7 +1852,7 @@ static int atyfb_ioctl(struct fb_info *info, u_int cmd, u_long arg)
>  #if defined(DEBUG) && defined(CONFIG_FB_ATY_CT)
>  	case ATYIO_CLKR:
>  		if (M64_HAS(INTEGRATED)) {
> -			struct atyclk clk;
> +			struct atyclk clk = { 0 };
>  			union aty_pll *pll = &par->pll;
>  			u32 dsp_config = pll->ct.dsp_config;
>  			u32 dsp_on_off = pll->ct.dsp_on_off;
> 

Looks OK to me.

Acked-by: Colin Ian King <colin.king@canonical.com>
Stefan Bader Dec. 12, 2017, 9:49 a.m. UTC | #2
On 07.12.2017 13:50, Kleber Sacilotto de Souza wrote:
> From: Vladis Dronov <vdronov@redhat.com>
> 
> 'clk' is copied to a userland with padding byte(s) after 'vclk_post_div'
> field unitialized, leaking data from the stack. Fix this ensuring all of
> 'clk' is initialized to zero.
> 
> References: https://github.com/torvalds/linux/pull/441
> Reported-by: sohu0106 <sohu0106@126.com>
> Signed-off-by: Vladis Dronov <vdronov@redhat.com>
> Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
> 
> CVE-2017-14156
> (backported from commit 8e75f7a7a00461ef6d91797a60b606367f6e344d)
> [klebers: adapted file path, which has been moved by f7018c213502 upstream]
> Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>

> ---
>  drivers/video/aty/atyfb_base.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c
> index 28fafbf864a5..fc17085ae1f7 100644
> --- a/drivers/video/aty/atyfb_base.c
> +++ b/drivers/video/aty/atyfb_base.c
> @@ -1852,7 +1852,7 @@ static int atyfb_ioctl(struct fb_info *info, u_int cmd, u_long arg)
>  #if defined(DEBUG) && defined(CONFIG_FB_ATY_CT)
>  	case ATYIO_CLKR:
>  		if (M64_HAS(INTEGRATED)) {
> -			struct atyclk clk;
> +			struct atyclk clk = { 0 };
>  			union aty_pll *pll = &par->pll;
>  			u32 dsp_config = pll->ct.dsp_config;
>  			u32 dsp_on_off = pll->ct.dsp_on_off;
>
Thadeu Lima de Souza Cascardo Dec. 12, 2017, 4:19 p.m. UTC | #3
Applied to trusty master-next branch.

Thanks.
Cascardo.

Applied-to: trusty/master-next
diff mbox series

Patch

diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c
index 28fafbf864a5..fc17085ae1f7 100644
--- a/drivers/video/aty/atyfb_base.c
+++ b/drivers/video/aty/atyfb_base.c
@@ -1852,7 +1852,7 @@  static int atyfb_ioctl(struct fb_info *info, u_int cmd, u_long arg)
 #if defined(DEBUG) && defined(CONFIG_FB_ATY_CT)
 	case ATYIO_CLKR:
 		if (M64_HAS(INTEGRATED)) {
-			struct atyclk clk;
+			struct atyclk clk = { 0 };
 			union aty_pll *pll = &par->pll;
 			u32 dsp_config = pll->ct.dsp_config;
 			u32 dsp_on_off = pll->ct.dsp_on_off;