lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20171211231128.GB48753@gmail.com>
Date:   Mon, 11 Dec 2017 15:11:28 -0800
From:   Eric Biggers <ebiggers3@...il.com>
To:     syzbot 
        <bot+f7b85b77fd8042059586165494cd708475e87fc3@...kaller.appspotmail.com>
Cc:     linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org,
        syzkaller-bugs@...glegroups.com, viro@...iv.linux.org.uk,
        tglx@...utronix.de
Subject: Re: general protection fault in string

On Mon, Dec 11, 2017 at 03:03:05PM -0800, Eric Biggers wrote:
> 
> The bug is that sys_timer_create() allows setting ->it_sigev_notify to almost
> any value, but show_timer() assumes that it has one of a specific set of values.
> Here's a simplified reproducer:
> 
> 	#include <fcntl.h>
> 	#include <signal.h>
> 	#include <time.h>
> 	#include <unistd.h>
> 
> 	int main()
> 	{
> 		struct sigevent e = {
> 			.sigev_signo = 0x1c,
> 			.sigev_notify = 0x100000,
> 		};
> 		timer_t t;
> 		int fd;
> 		char buf[64];
> 
> 		timer_create(CLOCK_MONOTONIC, &e, &t);
> 
> 		fd = open("/proc/self/timers", O_RDONLY);
> 
> 		read(fd, buf, sizeof(buf));
> 	}
> 
> I wonder if anything would break if we made sys_timer_create() return -EINVAL
> for unrecognized values of sigev_notify?  That's what it *should* do, but it
> seems to be the classic "unchecked flags" bug, yet again...
> 

Ah, I see that this was previously reported and a fix was already sent out
(https://marc.info/?l=linux-kernel&m=151204669103208&w=2).  Let's mark this
report as a duplicate:

#syz dup: general protection fault in show_timer

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ