Herbert Xu
6603523bf5
crypto: api - Fix use-after-free and race in crypto_spawn_alg
...
There are two problems in crypto_spawn_alg. First of all it may
return spawn->alg even if spawn->dead is set. This results in a
double-free as detected by syzbot.
Secondly the setting of the DYING flag is racy because we hold
the read-lock instead of the write-lock. We should instead call
crypto_shoot_alg in a safe manner by gaining a refcount, dropping
the lock, and then releasing the refcount.
This patch fixes both problems.
Reported-by: syzbot+fc0674cde00b66844470@syzkaller.appspotmail.com
Fixes: 4f87ee118d16 ("crypto: api - Do not zap spawn->alg")
Fixes: 73669cc55646 ("crypto: api - Fix race condition in...")
Cc: <stable@vger.kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2020-04-16 16:49:22 +10:00
..
2019-12-12 23:45:16 +02:00
2019-06-05 17:37:06 +02:00
2019-05-30 11:26:37 -07:00
2019-12-20 14:58:35 +08:00
2020-01-28 15:38:56 -08:00
2020-01-09 11:30:58 +08:00
2020-01-09 11:30:53 +08:00
2019-10-26 02:06:05 +11:00
2019-10-26 02:06:05 +11:00
2019-08-30 18:05:30 +10:00
2020-01-09 11:30:53 +08:00
2019-07-26 14:55:33 +10:00
2020-03-30 11:50:50 +11:00
2020-01-09 11:30:58 +08:00
2020-01-09 11:30:58 +08:00
2020-04-16 16:49:22 +10:00
2020-01-09 11:30:58 +08:00
2019-05-30 11:26:32 -07:00
2020-03-30 11:50:50 +11:00
2018-05-26 09:16:44 +02:00
2019-10-05 01:04:31 +10:00
2019-05-24 17:27:12 +02:00
2020-01-09 11:30:53 +08:00
2020-04-16 16:49:22 +10:00
2019-07-08 20:57:08 -07:00
2020-01-09 11:30:55 +08:00
2020-03-06 12:28:22 +11:00
2020-01-09 11:30:53 +08:00
2020-01-09 11:30:53 +08:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-01-09 11:30:53 +08:00
2019-05-30 11:25:16 -07:00
2020-01-09 11:30:53 +08:00
2019-05-24 17:27:12 +02:00
2019-12-27 18:18:04 +08:00
2020-03-06 12:28:22 +11:00
2019-12-27 18:18:04 +08:00
2020-01-09 11:30:56 +08:00
2019-11-22 18:48:39 +08:00
2020-01-09 11:30:53 +08:00
2020-01-09 11:30:57 +08:00
2019-12-11 16:37:01 +08:00
2020-01-09 11:30:53 +08:00
2020-01-09 11:30:53 +08:00
2013-09-12 15:31:34 +10:00
2019-04-18 22:15:03 +08:00
2020-03-06 12:28:22 +11:00
2019-11-17 09:02:49 +08:00
2019-07-08 20:57:08 -07:00
2019-12-20 14:58:35 +08:00
2019-11-01 13:38:32 +08:00
2020-03-06 12:28:22 +11:00
2020-03-06 12:28:23 +11:00
2019-11-17 09:02:43 +08:00
2019-07-08 20:57:08 -07:00
2020-01-09 11:30:53 +08:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-05-23 14:01:06 +08:00
2019-12-27 18:18:04 +08:00
2019-04-18 22:15:02 +08:00
2019-11-17 09:02:42 +08:00
2019-04-18 22:15:02 +08:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2020-01-09 11:30:57 +08:00
2019-04-18 22:15:02 +08:00
2019-04-18 22:15:02 +08:00
2019-04-18 22:15:02 +08:00
2019-04-18 22:15:02 +08:00
2020-01-28 15:38:56 -08:00
2019-06-13 14:31:39 +08:00
2019-07-26 14:51:57 +10:00
2020-03-06 12:28:23 +11:00
2020-03-06 12:28:23 +11:00
2017-12-22 19:52:40 +11:00
2020-01-09 11:30:53 +08:00
2020-02-18 07:35:49 -05:00
2020-01-09 11:30:57 +08:00
2020-04-16 16:49:22 +10:00
2019-10-18 18:49:40 +11:00
2019-10-18 18:49:40 +11:00
2019-10-18 18:49:40 +11:00
2020-02-05 17:00:57 +08:00
2019-12-27 18:18:04 +08:00
2019-06-13 14:31:39 +08:00
2019-05-30 11:26:32 -07:00
2020-03-06 12:28:23 +11:00
2019-07-08 20:57:08 -07:00
2019-07-08 20:57:08 -07:00
2019-07-08 20:57:08 -07:00
2019-07-08 20:57:08 -07:00
2019-11-17 09:02:49 +08:00
2019-06-13 14:31:39 +08:00
2020-02-28 08:43:21 +08:00
2013-12-09 20:09:12 +08:00
2020-01-09 11:30:53 +08:00
2020-01-16 15:18:12 +08:00
2019-12-27 18:18:04 +08:00
2019-12-27 18:18:04 +08:00
2020-03-06 12:28:24 +11:00
2020-01-16 15:18:12 +08:00
2020-02-13 17:05:26 +08:00
2017-11-02 11:10:55 +01:00
2019-07-08 20:57:08 -07:00
2019-07-08 20:57:08 -07:00
2019-07-08 20:57:08 -07:00
2019-07-08 20:57:08 -07:00
2020-02-13 16:58:09 +08:00
2019-05-30 11:26:32 -07:00
2020-03-06 12:28:24 +11:00
2019-05-24 17:27:11 +02:00
2016-07-05 23:05:26 +08:00
2015-10-14 22:23:16 +08:00
2019-04-18 22:15:03 +08:00
2019-05-30 11:26:32 -07:00
2019-12-20 14:58:35 +08:00
2019-05-30 11:26:32 -07:00
2020-01-09 11:30:57 +08:00
2019-12-11 16:36:54 +08:00
2019-05-30 11:26:32 -07:00
2019-05-30 11:26:32 -07:00
2019-09-05 14:54:54 +10:00
2019-05-24 17:27:12 +02:00
2020-01-09 11:30:58 +08:00
2020-01-09 11:30:53 +08:00
2020-01-09 11:30:58 +08:00
2019-06-19 17:09:07 +02:00
2020-01-09 11:30:53 +08:00
2019-08-15 21:52:14 +10:00
2020-02-13 17:05:26 +08:00
2019-05-30 11:26:32 -07:00
2019-07-08 20:57:08 -07:00
2020-04-01 14:47:40 -07:00
2019-12-11 16:37:01 +08:00
2019-11-15 13:44:17 +08:00
2020-01-09 11:30:53 +08:00
2019-05-21 11:28:45 +02:00
2020-01-09 11:30:57 +08:00
2019-06-13 14:31:39 +08:00
2020-01-09 11:30:57 +08:00
2019-05-24 17:27:13 +02:00
2020-03-06 12:28:24 +11:00
2020-01-09 11:30:53 +08:00
2019-07-08 20:57:08 -07:00