CVE-2026-23416 PUBLISHED

mm/mseal: update VMA end correctly on merge

Assigner: Linux
Reserved: 13.01.2026 Published: 02.04.2026 Updated: 02.04.2026

In the Linux kernel, the following vulnerability has been resolved:

mm/mseal: update VMA end correctly on merge

Previously we stored the end of the current VMA in curr_end, and then upon iterating to the next VMA updated curr_start to curr_end to advance to the next VMA.

However, this doesn't take into account the fact that a VMA might be updated due to a merge by vma_modify_flags(), which can result in curr_end being stale and thus, upon setting curr_start to curr_end, ending up with an incorrect curr_start on the next iteration.

Resolve the issue by setting curr_end to vma->vm_end unconditionally to ensure this value remains updated should this occur.

While we're here, eliminate this entire class of bug by simply setting const curr_[start/end] to be clamped to the input range and VMAs, which also happens to simplify the logic.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 6c2da14ae1e0a0146587381594559027bd46c059 to 40b3f4700e5535fbe74738cebb9379a40ec66bed (excl.)
  • affected from 6c2da14ae1e0a0146587381594559027bd46c059 to 83737e34b83a23b2a9bcf586b058b2c2a54c7c6b (excl.)
  • affected from 6c2da14ae1e0a0146587381594559027bd46c059 to 2697dd8ae721db4f6a53d4f4cbd438212a80f8dc (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 6.17 is affected
  • unaffected from 0 to 6.17 (excl.)
  • unaffected from 6.18.21 to 6.18.* (incl.)
  • unaffected from 6.19.11 to 6.19.* (incl.)
  • unaffected from 7.0-rc6 to * (incl.)

References