From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Ilya Dryomov <idryomov@gmail.com>,
Sage Weil <sage@redhat.com>,
Ben Hutchings <ben.hutchings@codethink.co.uk>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 4.14 017/146] libceph: add authorizer challenge
Date: Tue, 4 Dec 2018 11:48:23 +0100 [thread overview]
Message-ID: <20181204103727.492194188@linuxfoundation.org> (raw)
In-Reply-To: <20181204103726.750894136@linuxfoundation.org>
4.14-stable review patch. If anyone has any objections, please let me know.
------------------
commit 6daca13d2e72bedaaacfc08f873114c9307d5aea upstream.
When a client authenticates with a service, an authorizer is sent with
a nonce to the service (ceph_x_authorize_[ab]) and the service responds
with a mutation of that nonce (ceph_x_authorize_reply). This lets the
client verify the service is who it says it is but it doesn't protect
against a replay: someone can trivially capture the exchange and reuse
the same authorizer to authenticate themselves.
Allow the service to reject an initial authorizer with a random
challenge (ceph_x_authorize_challenge). The client then has to respond
with an updated authorizer proving they are able to decrypt the
service's challenge and that the new authorizer was produced for this
specific connection instance.
The accepting side requires this challenge and response unconditionally
if the client side advertises they have CEPHX_V2 feature bit.
This addresses CVE-2018-1128.
Link: http://tracker.ceph.com/issues/24836
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Reviewed-by: Sage Weil <sage@redhat.com>
Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
fs/ceph/mds_client.c | 11 ++++++
include/linux/ceph/auth.h | 8 ++++
include/linux/ceph/messenger.h | 3 ++
include/linux/ceph/msgr.h | 2 +-
net/ceph/auth.c | 16 ++++++++
net/ceph/auth_x.c | 72 +++++++++++++++++++++++++++++++---
net/ceph/auth_x_protocol.h | 7 ++++
net/ceph/messenger.c | 17 +++++++-
net/ceph/osd_client.c | 11 ++++++
9 files changed, 140 insertions(+), 7 deletions(-)
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
index bf378ddca4db..a48984dd6426 100644
--- a/fs/ceph/mds_client.c
+++ b/fs/ceph/mds_client.c
@@ -4079,6 +4079,16 @@ static struct ceph_auth_handshake *get_authorizer(struct ceph_connection *con,
return auth;
}
+static int add_authorizer_challenge(struct ceph_connection *con,
+ void *challenge_buf, int challenge_buf_len)
+{
+ struct ceph_mds_session *s = con->private;
+ struct ceph_mds_client *mdsc = s->s_mdsc;
+ struct ceph_auth_client *ac = mdsc->fsc->client->monc.auth;
+
+ return ceph_auth_add_authorizer_challenge(ac, s->s_auth.authorizer,
+ challenge_buf, challenge_buf_len);
+}
static int verify_authorizer_reply(struct ceph_connection *con)
{
@@ -4142,6 +4152,7 @@ static const struct ceph_connection_operations mds_con_ops = {
.put = con_put,
.dispatch = dispatch,
.get_authorizer = get_authorizer,
+ .add_authorizer_challenge = add_authorizer_challenge,
.verify_authorizer_reply = verify_authorizer_reply,
.invalidate_authorizer = invalidate_authorizer,
.peer_reset = peer_reset,
diff --git a/include/linux/ceph/auth.h b/include/linux/ceph/auth.h
index e931da8424a4..6728c2ee0205 100644
--- a/include/linux/ceph/auth.h
+++ b/include/linux/ceph/auth.h
@@ -64,6 +64,10 @@ struct ceph_auth_client_ops {
/* ensure that an existing authorizer is up to date */
int (*update_authorizer)(struct ceph_auth_client *ac, int peer_type,
struct ceph_auth_handshake *auth);
+ int (*add_authorizer_challenge)(struct ceph_auth_client *ac,
+ struct ceph_authorizer *a,
+ void *challenge_buf,
+ int challenge_buf_len);
int (*verify_authorizer_reply)(struct ceph_auth_client *ac,
struct ceph_authorizer *a);
void (*invalidate_authorizer)(struct ceph_auth_client *ac,
@@ -118,6 +122,10 @@ void ceph_auth_destroy_authorizer(struct ceph_authorizer *a);
extern int ceph_auth_update_authorizer(struct ceph_auth_client *ac,
int peer_type,
struct ceph_auth_handshake *a);
+int ceph_auth_add_authorizer_challenge(struct ceph_auth_client *ac,
+ struct ceph_authorizer *a,
+ void *challenge_buf,
+ int challenge_buf_len);
extern int ceph_auth_verify_authorizer_reply(struct ceph_auth_client *ac,
struct ceph_authorizer *a);
extern void ceph_auth_invalidate_authorizer(struct ceph_auth_client *ac,
diff --git a/include/linux/ceph/messenger.h b/include/linux/ceph/messenger.h
index 9056077c023f..18fbe910ed55 100644
--- a/include/linux/ceph/messenger.h
+++ b/include/linux/ceph/messenger.h
@@ -31,6 +31,9 @@ struct ceph_connection_operations {
struct ceph_auth_handshake *(*get_authorizer) (
struct ceph_connection *con,
int *proto, int force_new);
+ int (*add_authorizer_challenge)(struct ceph_connection *con,
+ void *challenge_buf,
+ int challenge_buf_len);
int (*verify_authorizer_reply) (struct ceph_connection *con);
int (*invalidate_authorizer)(struct ceph_connection *con);
diff --git a/include/linux/ceph/msgr.h b/include/linux/ceph/msgr.h
index 73ae2a926548..9e50aede46c8 100644
--- a/include/linux/ceph/msgr.h
+++ b/include/linux/ceph/msgr.h
@@ -91,7 +91,7 @@ struct ceph_entity_inst {
#define CEPH_MSGR_TAG_SEQ 13 /* 64-bit int follows with seen seq number */
#define CEPH_MSGR_TAG_KEEPALIVE2 14 /* keepalive2 byte + ceph_timespec */
#define CEPH_MSGR_TAG_KEEPALIVE2_ACK 15 /* keepalive2 reply */
-
+#define CEPH_MSGR_TAG_CHALLENGE_AUTHORIZER 16 /* cephx v2 doing server challenge */
/*
* connection negotiation
diff --git a/net/ceph/auth.c b/net/ceph/auth.c
index dbde2b3c3c15..fbeee068ea14 100644
--- a/net/ceph/auth.c
+++ b/net/ceph/auth.c
@@ -315,6 +315,22 @@ int ceph_auth_update_authorizer(struct ceph_auth_client *ac,
}
EXPORT_SYMBOL(ceph_auth_update_authorizer);
+int ceph_auth_add_authorizer_challenge(struct ceph_auth_client *ac,
+ struct ceph_authorizer *a,
+ void *challenge_buf,
+ int challenge_buf_len)
+{
+ int ret = 0;
+
+ mutex_lock(&ac->mutex);
+ if (ac->ops && ac->ops->add_authorizer_challenge)
+ ret = ac->ops->add_authorizer_challenge(ac, a, challenge_buf,
+ challenge_buf_len);
+ mutex_unlock(&ac->mutex);
+ return ret;
+}
+EXPORT_SYMBOL(ceph_auth_add_authorizer_challenge);
+
int ceph_auth_verify_authorizer_reply(struct ceph_auth_client *ac,
struct ceph_authorizer *a)
{
diff --git a/net/ceph/auth_x.c b/net/ceph/auth_x.c
index 722791f45b2a..ce28bb07d8fd 100644
--- a/net/ceph/auth_x.c
+++ b/net/ceph/auth_x.c
@@ -295,7 +295,8 @@ bad:
* authorizer. The first part (ceph_x_authorize_a) should already be
* encoded.
*/
-static int encrypt_authorizer(struct ceph_x_authorizer *au)
+static int encrypt_authorizer(struct ceph_x_authorizer *au,
+ u64 *server_challenge)
{
struct ceph_x_authorize_a *msg_a;
struct ceph_x_authorize_b *msg_b;
@@ -308,16 +309,28 @@ static int encrypt_authorizer(struct ceph_x_authorizer *au)
end = au->buf->vec.iov_base + au->buf->vec.iov_len;
msg_b = p + ceph_x_encrypt_offset();
- msg_b->struct_v = 1;
+ msg_b->struct_v = 2;
msg_b->nonce = cpu_to_le64(au->nonce);
+ if (server_challenge) {
+ msg_b->have_challenge = 1;
+ msg_b->server_challenge_plus_one =
+ cpu_to_le64(*server_challenge + 1);
+ } else {
+ msg_b->have_challenge = 0;
+ msg_b->server_challenge_plus_one = 0;
+ }
ret = ceph_x_encrypt(&au->session_key, p, end - p, sizeof(*msg_b));
if (ret < 0)
return ret;
p += ret;
- WARN_ON(p > end);
- au->buf->vec.iov_len = p - au->buf->vec.iov_base;
+ if (server_challenge) {
+ WARN_ON(p != end);
+ } else {
+ WARN_ON(p > end);
+ au->buf->vec.iov_len = p - au->buf->vec.iov_base;
+ }
return 0;
}
@@ -382,7 +395,7 @@ static int ceph_x_build_authorizer(struct ceph_auth_client *ac,
le64_to_cpu(msg_a->ticket_blob.secret_id));
get_random_bytes(&au->nonce, sizeof(au->nonce));
- ret = encrypt_authorizer(au);
+ ret = encrypt_authorizer(au, NULL);
if (ret) {
pr_err("failed to encrypt authorizer: %d", ret);
goto out_au;
@@ -664,6 +677,54 @@ static int ceph_x_update_authorizer(
return 0;
}
+static int decrypt_authorize_challenge(struct ceph_x_authorizer *au,
+ void *challenge_buf,
+ int challenge_buf_len,
+ u64 *server_challenge)
+{
+ struct ceph_x_authorize_challenge *ch =
+ challenge_buf + sizeof(struct ceph_x_encrypt_header);
+ int ret;
+
+ /* no leading len */
+ ret = __ceph_x_decrypt(&au->session_key, challenge_buf,
+ challenge_buf_len);
+ if (ret < 0)
+ return ret;
+ if (ret < sizeof(*ch)) {
+ pr_err("bad size %d for ceph_x_authorize_challenge\n", ret);
+ return -EINVAL;
+ }
+
+ *server_challenge = le64_to_cpu(ch->server_challenge);
+ return 0;
+}
+
+static int ceph_x_add_authorizer_challenge(struct ceph_auth_client *ac,
+ struct ceph_authorizer *a,
+ void *challenge_buf,
+ int challenge_buf_len)
+{
+ struct ceph_x_authorizer *au = (void *)a;
+ u64 server_challenge;
+ int ret;
+
+ ret = decrypt_authorize_challenge(au, challenge_buf, challenge_buf_len,
+ &server_challenge);
+ if (ret) {
+ pr_err("failed to decrypt authorize challenge: %d", ret);
+ return ret;
+ }
+
+ ret = encrypt_authorizer(au, &server_challenge);
+ if (ret) {
+ pr_err("failed to encrypt authorizer w/ challenge: %d", ret);
+ return ret;
+ }
+
+ return 0;
+}
+
static int ceph_x_verify_authorizer_reply(struct ceph_auth_client *ac,
struct ceph_authorizer *a)
{
@@ -816,6 +877,7 @@ static const struct ceph_auth_client_ops ceph_x_ops = {
.handle_reply = ceph_x_handle_reply,
.create_authorizer = ceph_x_create_authorizer,
.update_authorizer = ceph_x_update_authorizer,
+ .add_authorizer_challenge = ceph_x_add_authorizer_challenge,
.verify_authorizer_reply = ceph_x_verify_authorizer_reply,
.invalidate_authorizer = ceph_x_invalidate_authorizer,
.reset = ceph_x_reset,
diff --git a/net/ceph/auth_x_protocol.h b/net/ceph/auth_x_protocol.h
index 32c13d763b9a..24b0b74564d0 100644
--- a/net/ceph/auth_x_protocol.h
+++ b/net/ceph/auth_x_protocol.h
@@ -70,6 +70,13 @@ struct ceph_x_authorize_a {
struct ceph_x_authorize_b {
__u8 struct_v;
__le64 nonce;
+ __u8 have_challenge;
+ __le64 server_challenge_plus_one;
+} __attribute__ ((packed));
+
+struct ceph_x_authorize_challenge {
+ __u8 struct_v;
+ __le64 server_challenge;
} __attribute__ ((packed));
struct ceph_x_authorize_reply {
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index 0b121327d32f..ad33baa2008d 100644
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@ -2052,9 +2052,24 @@ static int process_connect(struct ceph_connection *con)
if (con->auth) {
/*
* Any connection that defines ->get_authorizer()
- * should also define ->verify_authorizer_reply().
+ * should also define ->add_authorizer_challenge() and
+ * ->verify_authorizer_reply().
+ *
* See get_connect_authorizer().
*/
+ if (con->in_reply.tag == CEPH_MSGR_TAG_CHALLENGE_AUTHORIZER) {
+ ret = con->ops->add_authorizer_challenge(
+ con, con->auth->authorizer_reply_buf,
+ le32_to_cpu(con->in_reply.authorizer_len));
+ if (ret < 0)
+ return ret;
+
+ con_out_kvec_reset(con);
+ __prepare_write_connect(con);
+ prepare_read_connect(con);
+ return 0;
+ }
+
ret = con->ops->verify_authorizer_reply(con);
if (ret < 0) {
con->error_msg = "bad authorize reply";
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
index 2814dba5902d..53ea2d48896c 100644
--- a/net/ceph/osd_client.c
+++ b/net/ceph/osd_client.c
@@ -5292,6 +5292,16 @@ static struct ceph_auth_handshake *get_authorizer(struct ceph_connection *con,
return auth;
}
+static int add_authorizer_challenge(struct ceph_connection *con,
+ void *challenge_buf, int challenge_buf_len)
+{
+ struct ceph_osd *o = con->private;
+ struct ceph_osd_client *osdc = o->o_osdc;
+ struct ceph_auth_client *ac = osdc->client->monc.auth;
+
+ return ceph_auth_add_authorizer_challenge(ac, o->o_auth.authorizer,
+ challenge_buf, challenge_buf_len);
+}
static int verify_authorizer_reply(struct ceph_connection *con)
{
@@ -5341,6 +5351,7 @@ static const struct ceph_connection_operations osd_con_ops = {
.put = put_osd_con,
.dispatch = dispatch,
.get_authorizer = get_authorizer,
+ .add_authorizer_challenge = add_authorizer_challenge,
.verify_authorizer_reply = verify_authorizer_reply,
.invalidate_authorizer = invalidate_authorizer,
.alloc_msg = alloc_msg,
--
2.17.1
next prev parent reply other threads:[~2018-12-04 10:48 UTC|newest]
Thread overview: 166+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-04 10:48 [PATCH 4.14 000/146] 4.14.86-stable review Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 001/146] mm/huge_memory: rename freeze_page() to unmap_page() Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 002/146] mm/huge_memory.c: reorder operations in __split_huge_page_tail() Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 003/146] mm/huge_memory: splitting set mapping+index before unfreeze Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 004/146] mm/huge_memory: fix lockdep complaint on 32-bit i_size_read() Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 005/146] mm/khugepaged: collapse_shmem() stop if punched or truncated Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 006/146] mm/khugepaged: fix crashes due to misaccounted holes Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 007/146] mm/khugepaged: collapse_shmem() remember to clear holes Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 008/146] mm/khugepaged: minor reorderings in collapse_shmem() Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 009/146] mm/khugepaged: collapse_shmem() without freezing new_page Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 010/146] mm/khugepaged: collapse_shmem() do not crash on Compound Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 011/146] media: em28xx: Fix use-after-free when disconnecting Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 012/146] ubi: Initialize Fastmap checkmapping correctly Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 013/146] libceph: store ceph_auth_handshake pointer in ceph_connection Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 014/146] libceph: factor out __prepare_write_connect() Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 015/146] libceph: factor out __ceph_x_decrypt() Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 016/146] libceph: factor out encrypt_authorizer() Greg Kroah-Hartman
2018-12-04 10:48 ` Greg Kroah-Hartman [this message]
2018-12-04 10:48 ` [PATCH 4.14 018/146] libceph: implement CEPHX_V2 calculation mode Greg Kroah-Hartman
2018-12-04 12:06 ` Ilya Dryomov
2018-12-04 13:41 ` Greg KH
2018-12-04 10:48 ` [PATCH 4.14 019/146] bpf: Prevent memory disambiguation attack Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 020/146] tls: Add function to update the TLS socket configuration Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 021/146] tls: Fix TLS ulp context leak, when TLS_TX setsockopt is not used Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 022/146] tls: Avoid copying crypto_info again after cipher_type check Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 023/146] tls: dont override sk_write_space if tls_set_sw_offload fails Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 024/146] tls: Use correct sk->sk_prot for IPV6 Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 025/146] net/tls: Fixed return value when tls_complete_pending_work() fails Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 026/146] wil6210: missing length check in wmi_set_ie Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 027/146] btrfs: validate type when reading a chunk Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 028/146] btrfs: Verify that every chunk has corresponding block group at mount time Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 029/146] btrfs: Refactor check_leaf function for later expansion Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 030/146] btrfs: Check if item pointer overlaps with the item itself Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 031/146] btrfs: Add sanity check for EXTENT_DATA when reading out leaf Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 032/146] btrfs: Add checker for EXTENT_CSUM Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 033/146] btrfs: Move leaf and node validation checker to tree-checker.c Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 034/146] btrfs: tree-checker: Enhance btrfs_check_node output Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 035/146] btrfs: tree-checker: Fix false panic for sanity test Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 036/146] btrfs: tree-checker: Add checker for dir item Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 037/146] btrfs: tree-checker: use %zu format string for size_t Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 038/146] btrfs: tree-check: reduce stack consumption in check_dir_item Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 039/146] btrfs: tree-checker: Verify block_group_item Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 040/146] btrfs: tree-checker: Detect invalid and empty essential trees Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 041/146] btrfs: Check that each block group has corresponding chunk at mount time Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 042/146] btrfs: tree-checker: Check level for leaves and nodes Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 043/146] btrfs: tree-checker: Fix misleading group system information Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 044/146] f2fs: check blkaddr more accuratly before issue a bio Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 045/146] f2fs: sanity check on sit entry Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 046/146] f2fs: enhance sanity_check_raw_super() to avoid potential overflow Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 047/146] f2fs: clean up with is_valid_blkaddr() Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 048/146] f2fs: introduce and spread verify_blkaddr Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 049/146] f2fs: fix to do sanity check with secs_per_zone Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 050/146] f2fs: Add sanity_check_inode() function Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 051/146] f2fs: fix to do sanity check with extra_attr feature Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 052/146] f2fs: fix to do sanity check with user_block_count Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.14 053/146] f2fs: fix to do sanity check with node footer and iblocks Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 054/146] f2fs: fix to do sanity check with block address in main area Greg Kroah-Hartman
2018-12-04 20:27 ` Sudip Mukherjee
2018-12-05 6:59 ` Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 055/146] f2fs: fix to do sanity check with i_extra_isize Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 056/146] f2fs: fix to do sanity check with cp_pack_start_sum Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 057/146] xfs: dont fail when converting shortform attr to long form during ATTR_REPLACE Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 058/146] Revert "wlcore: Add missing PM call for wlcore_cmd_wait_for_event_or_timeout()" Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 059/146] net: skb_scrub_packet(): Scrub offload_fwd_mark Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 060/146] net: thunderx: set xdp_prog to NULL if bpf_prog_add fails Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 061/146] virtio-net: disable guest csum during XDP set Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 062/146] virtio-net: fail XDP set if guest csum is negotiated Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 063/146] net: thunderx: set tso_hdrs pointer to NULL in nicvf_free_snd_queue Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 064/146] packet: copy user buffers before orphan or clone Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 065/146] rapidio/rionet: do not free skb before reading its length Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 066/146] s390/qeth: fix length check in SNMP processing Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 067/146] usbnet: ipheth: fix potential recvmsg bug and recvmsg bug 2 Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 068/146] sched/core: Fix cpu.max vs. cpuhotplug deadlock Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 069/146] x86/bugs: Add AMDs variant of SSB_NO Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 070/146] x86/bugs: Add AMDs SPEC_CTRL MSR usage Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 071/146] x86/bugs: Switch the selection of mitigation from CPU vendor to CPU features Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 072/146] x86/bugs: Update when to check for the LS_CFG SSBD mitigation Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 073/146] x86/bugs: Fix the AMD SSBD usage of the SPEC_CTRL MSR Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 074/146] x86/speculation: Enable cross-hyperthread spectre v2 STIBP mitigation Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 075/146] x86/speculation: Apply IBPB more strictly to avoid cross-process data leak Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 076/146] x86/speculation: Propagate information about RSB filling mitigation to sysfs Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 077/146] x86/speculation: Add RETPOLINE_AMD support to the inline asm CALL_NOSPEC variant Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 078/146] x86/retpoline: Make CONFIG_RETPOLINE depend on compiler support Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 079/146] x86/retpoline: Remove minimal retpoline support Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 080/146] x86/speculation: Update the TIF_SSBD comment Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 081/146] x86/speculation: Clean up spectre_v2_parse_cmdline() Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 082/146] x86/speculation: Remove unnecessary ret variable in cpu_show_common() Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 083/146] x86/speculation: Move STIPB/IBPB string conditionals out of cpu_show_common() Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 084/146] x86/speculation: Disable STIBP when enhanced IBRS is in use Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 085/146] x86/speculation: Rename SSBD update functions Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 086/146] x86/speculation: Reorganize speculation control MSRs update Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 087/146] sched/smt: Make sched_smt_present track topology Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 088/146] x86/Kconfig: Select SCHED_SMT if SMP enabled Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 089/146] sched/smt: Expose sched_smt_present static key Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 090/146] x86/speculation: Rework SMT state change Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 091/146] x86/l1tf: Show actual SMT state Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 092/146] x86/speculation: Reorder the spec_v2 code Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 093/146] x86/speculation: Mark string arrays const correctly Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 094/146] x86/speculataion: Mark command line parser data __initdata Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 095/146] x86/speculation: Unify conditional spectre v2 print functions Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 096/146] x86/speculation: Add command line control for indirect branch speculation Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 097/146] x86/speculation: Prepare for per task indirect branch speculation control Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 098/146] x86/process: Consolidate and simplify switch_to_xtra() code Greg Kroah-Hartman
2018-12-04 11:14 ` Thomas Gleixner
2018-12-04 13:39 ` Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 099/146] x86/speculation: Avoid __switch_to_xtra() calls Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 100/146] x86/speculation: Prepare for conditional IBPB in switch_mm() Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 101/146] ptrace: Remove unused ptrace_may_access_sched() and MODE_IBRS Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 102/146] x86/speculation: Split out TIF update Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 103/146] x86/speculation: Prevent stale SPEC_CTRL msr content Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 104/146] x86/speculation: Prepare arch_smt_update() for PRCTL mode Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 105/146] x86/speculation: Add prctl() control for indirect branch speculation Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 106/146] x86/speculation: Enable prctl mode for spectre_v2_user Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 107/146] x86/speculation: Add seccomp Spectre v2 user space protection mode Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 108/146] x86/speculation: Provide IBPB always command line options Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 109/146] kvm: mmu: Fix race in emulated page table writes Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 110/146] kvm: svm: Ensure an IBPB on all affected CPUs when freeing a vmcb Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 111/146] KVM: x86: Fix kernel info-leak in KVM_HC_CLOCK_PAIRING hypercall Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 112/146] KVM: X86: Fix scan ioapic use-before-initialization Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.14 113/146] xtensa: enable coprocessors that are being flushed Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 114/146] xtensa: fix coprocessor context offset definitions Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 115/146] xtensa: fix coprocessor part of ptrace_{get,set}xregs Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 116/146] Btrfs: ensure path name is null terminated at btrfs_control_ioctl Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 117/146] btrfs: relocation: set trans to be NULL after ending transaction Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 118/146] PCI: layerscape: Fix wrong invocation of outbound window disable accessor Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 119/146] arm64: dts: rockchip: Fix PCIe reset polarity for rk3399-puma-haikou Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 120/146] x86/MCE/AMD: Fix the thresholding machinery initialization order Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 121/146] x86/fpu: Disable bottom halves while loading FPU registers Greg Kroah-Hartman
2018-12-05 16:26 ` Jari Ruusu
2018-12-05 19:00 ` Borislav Petkov
2018-12-06 10:54 ` Greg Kroah-Hartman
2018-12-21 16:23 ` [PATCH v4.9 STABLE] " Sebastian Andrzej Siewior
2018-12-21 16:29 ` Greg Kroah-Hartman
2018-12-21 16:38 ` Sebastian Andrzej Siewior
2018-12-04 10:50 ` [PATCH 4.14 122/146] perf/x86/intel: Move branch tracing setup to the Intel-specific source file Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 123/146] perf/x86/intel: Add generic branch tracing check to intel_pmu_has_bts() Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 124/146] fs: fix lost error code in dio_complete Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 125/146] ALSA: wss: Fix invalid snd_free_pages() at error path Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 126/146] ALSA: ac97: Fix incorrect bit shift at AC97-SPSA control write Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 127/146] ALSA: control: Fix race between adding and removing a user element Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 128/146] ALSA: sparc: Fix invalid snd_free_pages() at error path Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 129/146] ALSA: hda/realtek - Support ALC300 Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 130/146] ALSA: hda/realtek - fix headset mic detection for MSI MS-B171 Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 131/146] ext2: fix potential use after free Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 132/146] ARM: dts: rockchip: Remove @0 from the veyron memory node Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 133/146] dmaengine: at_hdmac: fix memory leak in at_dma_xlate() Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 134/146] dmaengine: at_hdmac: fix module unloading Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 135/146] btrfs: release metadata before running delayed refs Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 136/146] staging: vchiq_arm: fix compat VCHIQ_IOC_AWAIT_COMPLETION Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 137/146] staging: rtl8723bs: Add missing return for cfg80211_rtw_get_station Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 138/146] USB: usb-storage: Add new IDs to ums-realtek Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 139/146] usb: core: quirks: add RESET_RESUME quirk for Cherry G230 Stream series Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 140/146] Revert "usb: dwc3: gadget: skip Set/Clear Halt when invalid" Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 141/146] iio:st_magn: Fix enable device after trigger Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 142/146] lib/test_kmod.c: fix rmmod double free Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 143/146] mm: use swp_offset as key in shmem_replace_page() Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 144/146] Drivers: hv: vmbus: check the creation_status in vmbus_establish_gpadl() Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 145/146] misc: mic/scif: fix copy-paste error in scif_create_remote_lookup Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.14 146/146] binder: fix race that allows malicious free of live buffer Greg Kroah-Hartman
2018-12-04 17:32 ` [PATCH 4.14 000/146] 4.14.86-stable review kernelci.org bot
2018-12-04 21:42 ` Guenter Roeck
2018-12-05 5:18 ` Naresh Kamboju
2018-12-05 7:41 ` Greg Kroah-Hartman
2018-12-05 9:31 ` Jon Hunter
2018-12-05 9:45 ` Greg Kroah-Hartman
2018-12-05 23:53 ` shuah
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181204103727.492194188@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=ben.hutchings@codethink.co.uk \
--cc=idryomov@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=sage@redhat.com \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).