Description
In the Linux kernel, the following vulnerability has been resolved: libceph: Reject monmaps advertising zero monitors A message of type CEPH_MSG_MON_MAP contains a monmap that is sent from a monitor to the client. This monmap contains information about the existing monitors in the cluster. Currently, a monmap indicating that there are zero monitors in the cluster is treated as valid. However, it is impossible to have zero monitors in the cluster and still receive a valid monmap from a monitor. Therefore, such a monmap must be corrupted and should be treated as invalid. Furthermore, a monmap with a monitor count of zero can subsequently crash the client when attempting to open a session with a monitor in __open_session(). This happens because the "BUG_ON(monc->monmap->num_mon < 1)" assertion in pick_new_mon() is triggered. This patch extends a check in ceph_monmap_decode() to also reject arriving mon_maps with num_mon == 0 rather than only with num_mon > CEPH_MAX_MON. [ idryomov: drop "log output for unusual values of num_mon" part ]
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
ba75bb98cfb93b62c54af25bf67ff90857264bbe to < ba5f0015bfd376d764163045a61c17be75f44daeaffectedba75bb98cfb93b62c54af25bf67ff90857264bbe to < caf082ef8609a6ac26159ce115f55ab7d00231a3affectedba75bb98cfb93b62c54af25bf67ff90857264bbe to < e3ccd4ecab09b22f507f49cb7ed9990c7158ceabaffectedba75bb98cfb93b62c54af25bf67ff90857264bbe to < 0591a15815b498be628a937146e44487d599ba33affectedba75bb98cfb93b62c54af25bf67ff90857264bbe to < cd0d41bc569632eaaeccde9d2a6bc919ec00c407affectedba75bb98cfb93b62c54af25bf67ff90857264bbe to < e67e8b694872c9bc66996040f9de9242f6236ed9affectedba75bb98cfb93b62c54af25bf67ff90857264bbe to < 3b249546f59c3d6d3592c10657f82bc3f1faa07caffectedba75bb98cfb93b62c54af25bf67ff90857264bbe to < 40480eee361ed9676b3f844d532ac28b47251634affected
Linux Linux
Default version status: affected
2.6.34affected0 to < 2.6.34unaffected5.10.271 to ≤ 5.10.*unaffected5.15.216 to ≤ 5.15.*unaffected6.1.183 to ≤ 6.1.*unaffected6.6.148 to ≤ 6.6.*unaffected6.12.101 to ≤ 6.12.*unaffected6.18.42 to ≤ 6.18.*unaffected7.1.6 to ≤ 7.1.*unaffected7.2 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/ba5f0015bfd376d764163045a61c17be75f44dae ↗
- https://git.kernel.org/stable/c/caf082ef8609a6ac26159ce115f55ab7d00231a3 ↗
- https://git.kernel.org/stable/c/e3ccd4ecab09b22f507f49cb7ed9990c7158ceab ↗
- https://git.kernel.org/stable/c/0591a15815b498be628a937146e44487d599ba33 ↗
- https://git.kernel.org/stable/c/cd0d41bc569632eaaeccde9d2a6bc919ec00c407 ↗
- https://git.kernel.org/stable/c/e67e8b694872c9bc66996040f9de9242f6236ed9 ↗
- https://git.kernel.org/stable/c/3b249546f59c3d6d3592c10657f82bc3f1faa07c ↗
- https://git.kernel.org/stable/c/40480eee361ed9676b3f844d532ac28b47251634 ↗