[Focal, Jammy, OEM-5.17, Kinetic, OEM-6.0, OEM-6.1, Lunar 1/1] net/sched: flower: fix possible OOB write in fl_set_geneve_opt()
Thadeu Lima de Souza Cascardo
cascardo at canonical.com
Mon Jun 12 17:42:12 UTC 2023
- Previous message (by thread): [Focal, Jammy, OEM-5.17, Kinetic, OEM-6.0, OEM-6.1, Lunar 0/1] LP: #2023577
- Next message (by thread): ACK: [Focal, Jammy, OEM-5.17, Kinetic, OEM-6.0, OEM-6.1, Lunar 0/1] LP: #2023577
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
From: Hangyu Hua <hbh25y at gmail.com>
BugLink: https://bugs.launchpad.net/bugs/2023577
If we send two TCA_FLOWER_KEY_ENC_OPTS_GENEVE packets and their total
size is 252 bytes(key->enc_opts.len = 252) then
key->enc_opts.len = opt->length = data_len / 4 = 0 when the third
TCA_FLOWER_KEY_ENC_OPTS_GENEVE packet enters fl_set_geneve_opt. This
bypasses the next bounds check and results in an out-of-bounds.
Fixes: 0a6e77784f49 ("net/sched: allow flower to match tunnel options")
Signed-off-by: Hangyu Hua <hbh25y at gmail.com>
Reviewed-by: Simon Horman <simon.horman at corigine.com>
Reviewed-by: Pieter Jansen van Vuuren <pieter.jansen-van-vuuren at amd.com>
Link: https://lore.kernel.org/r/20230531102805.27090-1-hbh25y@gmail.com
Signed-off-by: Paolo Abeni <pabeni at redhat.com>
(cherry picked from commit 4d56304e5827c8cc8cc18c75343d283af7c4825c)
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo at canonical.com>
---
net/sched/cls_flower.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c
index 007fbc199352..63f53aa8460a 100644
--- a/net/sched/cls_flower.c
+++ b/net/sched/cls_flower.c
@@ -870,6 +870,9 @@ static int fl_set_geneve_opt(const struct nlattr *nla, struct fl_flow_key *key,
if (option_len > sizeof(struct geneve_opt))
data_len = option_len - sizeof(struct geneve_opt);
+ if (key->enc_opts.len > FLOW_DIS_TUN_OPTS_MAX - 4)
+ return -ERANGE;
+
opt = (struct geneve_opt *)&key->enc_opts.data[key->enc_opts.len];
memset(opt, 0xff, option_len);
opt->length = data_len / 4;
--
2.34.1
- Previous message (by thread): [Focal, Jammy, OEM-5.17, Kinetic, OEM-6.0, OEM-6.1, Lunar 0/1] LP: #2023577
- Next message (by thread): ACK: [Focal, Jammy, OEM-5.17, Kinetic, OEM-6.0, OEM-6.1, Lunar 0/1] LP: #2023577
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the kernel-team
mailing list