On Mon, Feb 24, 2025 at 10:52:45PM +0000, jeffxu@xxxxxxxxxxxx wrote: > From: Jeff Xu <jeffxu@xxxxxxxxxxxx> > > Provide support to mseal the uprobe mapping. > > Unlike other system mappings, the uprobe mapping is not > established during program startup. However, its lifetime is the same > as the process's lifetime. It could be sealed from creation. > I thought we agreed not to enable this for uprobes for now? What testing have you done to ensure this is functional? I mean is this literally _all_ uprobe mappings now being sealed? I'd really like some more assurances on this one. And what are you mitigating by sealing these? I get VDSO (kinda) but uprobes? You really need to provide more justification here. > Signed-off-by: Jeff Xu <jeffxu@xxxxxxxxxxxx> > --- > kernel/events/uprobes.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c > index 2ca797cbe465..8dcdfa0d306b 100644 > --- a/kernel/events/uprobes.c > +++ b/kernel/events/uprobes.c > @@ -1662,6 +1662,7 @@ static const struct vm_special_mapping xol_mapping = { > static int xol_add_vma(struct mm_struct *mm, struct xol_area *area) > { > struct vm_area_struct *vma; > + unsigned long vm_flags; > int ret; > > if (mmap_write_lock_killable(mm)) > @@ -1682,8 +1683,10 @@ static int xol_add_vma(struct mm_struct *mm, struct xol_area *area) > } > } > > + vm_flags = VM_EXEC|VM_MAYEXEC|VM_DONTCOPY|VM_IO; > + vm_flags |= VM_SEALED_SYSMAP; > vma = _install_special_mapping(mm, area->vaddr, PAGE_SIZE, > - VM_EXEC|VM_MAYEXEC|VM_DONTCOPY|VM_IO, > + vm_flags, > &xol_mapping); > if (IS_ERR(vma)) { > ret = PTR_ERR(vma); > -- > 2.48.1.658.g4767266eb4-goog >