From: Jason Gunthorpe <jgg@ziepe.ca>
To: "David Hildenbrand (Arm)" <david@kernel.org>
Cc: Samiullah Khawaja <skhawaja@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
Hugh Dickins <hughd@google.com>,
Baolin Wang <baolin.wang@linux.alibaba.com>,
Muchun Song <muchun.song@linux.dev>,
Oscar Salvador <osalvador@suse.de>,
Jeff Layton <jlayton@kernel.org>, Chuck Lever <cel@kernel.org>,
Alexander Aring <alex.aring@gmail.com>,
Shuah Khan <shuah@kernel.org>, Gerd Hoffmann <kraxel@redhat.com>,
Vivek Kasireddy <vivek.kasireddy@intel.com>,
Jeff Xu <jeffxu@google.com>, David Matlack <dmatlack@google.com>,
Pasha Tatashin <tatashin@google.com>,
linux-mm@kvack.org, linux-api@vger.kernel.org,
linux-fsdevel@vger.kernel.org, linux-kselftest@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/2] mm/memfd: add F_SEAL_PUNCH_HOLE
Date: Fri, 30 Oct 2026 09:11:13 -0300 [thread overview]
Message-ID: <20261030121113.GB3889730@ziepe.ca> (raw)
In-Reply-To: <d4891333-43ea-4d74-9fb9-6ad8dac1a446@kernel.org>
On Fri, Oct 30, 2026 at 11:20:30AM +0100, David Hildenbrand (Arm) wrote:
> On 10/26/26 23:05, Samiullah Khawaja wrote:
> > This series introduces F_SEAL_PUNCH_HOLE, a new memfd seal that prevents
> > holes from being punched into a shmem or hugetlbfs memfd while leaving
> > the file fully writable.
> >
> > Background
> > ==========
> >
> > Drivers such as udmabuf and iommufd (via IOMMU_IOAS_MAP_FILE) use
> > memfd_pin_folios() to pin the folios backing a memfd and hand them to a
> > device for DMA. Pinning keeps those folios allocated, but it does not
> > keep them in the file. If userspace later calls
> > fallocate(FALLOC_FL_PUNCH_HOLE) or madvise(MADV_REMOVE) on the range,
> > the folios are dropped from the page cache while the device continues
> > to use them. The pin holder is never notified, and from that point on
> > the device and the file silently diverge.
>
> We have the exact same situation when userspace maps anonymous folios into vfio
> and then desides to MADV_DONTNEED the pages. Or any other memory backend that is
> used for such purposes.
>
> User space must not zap/punch things that might be pinned elsewhere.
>
> That's not specific to memfd, udmabuf, iommufd or anything else.
>
> I don't see a reason to make userspace (that should not shoot itself into the
> foot) a kernel feature it must activate itself to not shoot itself into the foot.
The issue is live update doesn't preserve those background punched
folios and now we have created an UAF attack on the kernel across
kexec if you don't do something about it.
There was some notion here that with the right sealing flags we could
tell if everything was 'live update compatible' and then know that
these attacks are impossible.
Jason
next prev parent reply other threads:[~2026-10-30 12:11 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-26 22:05 Samiullah Khawaja
2026-10-26 22:05 ` [PATCH 1/2] " Samiullah Khawaja
2026-10-26 22:05 ` [PATCH 2/2] selftests/memfd: add F_SEAL_PUNCH_HOLE tests Samiullah Khawaja
2026-10-26 22:46 ` [PATCH 0/2] mm/memfd: add F_SEAL_PUNCH_HOLE Andy Lutomirski
2026-10-27 22:55 ` Samiullah Khawaja
2026-10-28 3:57 ` Andy Lutomirski
2026-10-29 23:16 ` Samiullah Khawaja
2026-10-30 0:26 ` Andy Lutomirski
2026-10-30 2:11 ` Andy Lutomirski
2026-10-30 12:12 ` Jason Gunthorpe
2026-10-30 14:54 ` Andy Lutomirski
2026-10-30 19:52 ` Andy Lutomirski
2026-10-30 10:20 ` David Hildenbrand (Arm)
2026-10-30 12:11 ` Jason Gunthorpe [this message]
2026-10-30 14:39 ` David Hildenbrand (Arm)
2026-10-30 15:11 ` Jason Gunthorpe
2026-10-30 17:40 ` Samiullah Khawaja
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261030121113.GB3889730@ziepe.ca \
--to=jgg@ziepe.ca \
--cc=akpm@linux-foundation.org \
--cc=alex.aring@gmail.com \
--cc=baolin.wang@linux.alibaba.com \
--cc=cel@kernel.org \
--cc=david@kernel.org \
--cc=dmatlack@google.com \
--cc=hughd@google.com \
--cc=jeffxu@google.com \
--cc=jlayton@kernel.org \
--cc=kraxel@redhat.com \
--cc=linux-api@vger.kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=muchun.song@linux.dev \
--cc=osalvador@suse.de \
--cc=shuah@kernel.org \
--cc=skhawaja@google.com \
--cc=tatashin@google.com \
--cc=vivek.kasireddy@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®