Activity log
- Created & dismissed (max. allowed matches exceeded) suggestion
libceph: Fix multiplication overflow in decode_new_up_state_weight()
In the Linux kernel, the following vulnerability has been resolved: libceph: Fix multiplication overflow in decode_new_up_state_weight() If a message of type CEPH_MSG_OSD_MAP contains a (maliciously) corrupted osdmap, out-of-bounds memory accesses may occur in decode_new_up_state_weight(). This happens because the bounds check for the new_state part is based on calculating its length depending on a len value read from the incoming message. This calculation may overflow leading to an incorrect bounds check. Subsequently, out-of-bounds reads may occur when decoding this part. This patch switches the multiplication to use check_mul_overflow() to abort processing the osdmap if an overflow occurred. Therefore, osdmaps/messages containing large values for len that result in a multiplication overflow are treated as invalid. [ idryomov: rename new_state_len -> new_state_item_size, formatting ]
References
Affected products
- ==14877928f10667a5606383885d004f7185f33718
- <3.17
- =<*
- =<6.6.*
- <3.19
- =<7.1.*
- ==1196c36fd53c3b1615eb02f986cb727b1dfc1047
- <98917a499ec7064c14fc56d180a4fd636fc2784c
- ==6831c98ce0b8a3e88db64aa224372effd0dcc694
- <05c90e059269f087becfcce23348496085835c29
- ==bbc3aa6b0e6050b2b2e04a08dd4d6423d576b196
- <4.7
- ==8777c9f654637d56f4c4ca54eb1bc7c609b70085
- <3.15
- =<6.18.*
- <1732d89dfcd74f6fde9ce70900d316c4a151c153
- <4.5
- ==4.7
- =<6.12.*
- <4.7
- <3.11
- <4.2
- ==7405d73cea0d0e6c541f5c534078feeb46188844
- <143ba49ead77ec483c0326f8aaad8649874e99c4
- <3.13
- ==6b96b2d473701b45df3fea8dd9796b6ec39e6d54
- <bee4b5b53e7bff0467fd916cc44c9b190733c6bd
- ==032951d32c13b7564dfba82758260cb7aa1149d2