diff options
| author | sung byeongchan <tjdqudcks0424@naver.com> | 2026-10-08 15:07:14 +0900 |
|---|---|---|
| committer | Ilya Dryomov <idryomov@gmail.com> | 2026-10-26 14:15:47 +0100 |
| commit | 7f702e1703c9648fcb02a217d66c880d00417150 (patch) | |
| tree | 1135f9bfaebeef25f82196ca602f763006a9d6d4 /tools/lib/python/kdoc/parse_data_structs.py | |
| parent | bc418e234e5be14b97dec90e84a680e615b4134e (diff) | |
ceph: bound name skips in ceph_mdsmap_decode() by the message end
ceph_mdsmap_decode() reads two remote u32 name lengths and advances its
parser cursor without checking that either string remains in the message.
On a 32-bit client, a sufficiently large length can wrap the cursor below
`end`. The following numerical bounds check then succeeds and dereferences
the wrapped address.
Use ceph_decode_skip_n() for both names so the remaining bytes are checked
before the cursor advances.
The issue produced a page fault in ceph_mdsmap_decode twice on the tested
i386 baseline. The same frame was rejected without a fault twice after
this change, while a normal MDSMap continued to be accepted.
Cc: stable@vger.kernel.org
Fixes: 2f2dc053404f ("ceph: MDS client")
Assisted-by: LLM
Signed-off-by: sung byeongchan <tjdqudcks0424@naver.com>
Reviewed-by: Alex Markuze <amarkuze@redhat.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Diffstat (limited to 'tools/lib/python/kdoc/parse_data_structs.py')
0 files changed, 0 insertions, 0 deletions
