From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 11BC7366569 for ; Fri, 3 Apr 2026 18:41:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775241684; cv=none; b=nYPIv8L2RbR8pB7KcEDxRi9kYSyFJGC3qGejQin+8PRiVOzZQHnhiS5KRtStD7ZjjOaqJxFDw/zm+wNekUHiqf3a4IZysAH1GcYzErdW592e3dA3PbOI+UyGZWgC35PwYjZMGA80axIyrQFE73N9byd88BXvE2F+8NpSx+qYA8o= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775241684; c=relaxed/simple; bh=R/G/pygqdNBDL83F9sP3q5F4LHOFKaPYbxGcfjti1q4=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=V/JnVB3ev0kEDk8rbkHUZBrrX2VX1wf0Fn8L954b83wskxs/4TkxPqR81/NSJewBHHDck4u2xfLF/L7qPk9smqzrbj1ySIRWm9vLrngrOOLSHI3sHnDIkN61Y4i+JzYuvkpEfnldL2BYpUNlt2Ul5hjp+w9nJa+Hb5FV7+5UHys= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=KvPv3BAq; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=EyD+ToBX; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="KvPv3BAq"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="EyD+ToBX" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1775241682; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=/pkxQv8Zx0QU1qKF94RTpNcNIriqGqgTPjn5xnCC+lY=; b=KvPv3BAq3tXwS5YqVyyPD+CEngy1OOB3Y2yqh3H7gBRW2i46zBgKICqIrm8vwoDsBwkOnZ VGFcibZBEn2rdgEJWPY3vJOD3VY0JQfvxwpB05VBhhJ+XcCZceCe41mr2BKg1wzsyKmCT4 VajkaxtLgUxEY0rRNRhVNR423XXb5Sw= Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-74-nP6hajnvOKS9_U1oizu0XQ-1; Fri, 03 Apr 2026 14:41:20 -0400 X-MC-Unique: nP6hajnvOKS9_U1oizu0XQ-1 X-Mimecast-MFC-AGG-ID: nP6hajnvOKS9_U1oizu0XQ_1775241680 Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-509219f94b0so66837461cf.3 for ; Fri, 03 Apr 2026 11:41:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1775241680; x=1775846480; darn=vger.kernel.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=/pkxQv8Zx0QU1qKF94RTpNcNIriqGqgTPjn5xnCC+lY=; b=EyD+ToBX2kMmyhU2qzG8lwfztQMIA3KyEzPMIlFUQ5EztHBWgDddedArot5a3UWxal Re5gjAY/o5ftG5MFdjbTpatoYrgn/jMsFKSWgC8H1ouvS0O/gEEu12IX6IEHFO4IszXK HhYFUDs68WQuQHqnWXV9vRXcA2ir6Cf1sRJSQN1j8QcDkb+BNxJhUZaH9xFkNoyZgY3t gdP4z4aAEsGK0SV/tWkxNkIO9R039sq+992zWpD6qgUhztK8mm+ExmDbGgnniBVXAE+Q FhlvVQcFWvs66HqAS6vxvWDh/Y31COXRPnypiXRycoH/4kkvqzACSA8Fky8G8sR/+Bav cllA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775241680; x=1775846480; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=/pkxQv8Zx0QU1qKF94RTpNcNIriqGqgTPjn5xnCC+lY=; b=DzpmYuXF0t6cra0PaZA39qqbahuZXPyxvZ4oRxykv8HDUyParnmGRUXhwOqP89PYZY abTQKkAeVGLHxnEhc+rFajBfvyaC4EB0Y4zIKdR30DyIvCK75CNuJJdf9mfm2dZWGL7O NOZpzriz/mGdkbJGHK+evZ115eKdtqgKdDtB+m1HVeWfxrlDcmSYKU+4nJDZAdDRfDfy 6oBBmIRxKEm3uBjaT3rPWxPEMYKd1wPNx608QVXKYUFN0tZ287tJ2zj1zG0eVJT2RIwX /DRxqvfVP7VZaFFv55GptdZkDPa0eOLCXSKKdnsJYk9hfOIjU6IThxcnAmgQxZ1m+6Ff UUSQ== X-Forwarded-Encrypted: i=1; AJvYcCUSp8qm8npMjq9m9eO1hTQQiOMqrwFRQ3Kkn/sA64BmYrrn7z5m4TYQXe3kTVIl2h4LLtfLTmyFq4FcznU=@vger.kernel.org X-Gm-Message-State: AOJu0YxAJN0pcyI69nymzuo+6WE8ga931xW79nev07vkZlTtYvcrLi34 joLEQPojcOsg4Hk8FpioREfV0Iz928fgQyEoKffzHaFab6++/HPjGIwrH8L7G6KfGMwoDoGe8sB pmMglKYcMPIL9/hHaGdBwgtBGWEYIbi6aTxjxRpaTYCw3gOENV3VA7ScRfCvjPZtcLA== X-Gm-Gg: ATEYQzwujayTF3YFxdWH8P0cKcR7tBM596t6koVxlTX3JBYSG2uz5dJeOLa0YnNuDCH n7fvFMheCdNb/CQ0O6pXXkX00Aj8rSZjtBsX+xb5sv9xF7QxFLa4scBAwR2lnqrHJPS+0nUvSDW kN3QOyyIG6Qa5kWbeNbUET3DvmbhOOcdWxjhF5FmqGPHZMB1fIOYukgfTfEwZP3lpXBQpxgoaey qhls1zQ1B5ez3cIQVHtpjAIMjtrbKyNePPEKSTB3rAOAuTFnvcbC8G/YDIHF5zB6Zx4LtvPSEj/ BPZzC2IU5eujj2+R2eeQLpM8rLJAa3VN44idlE61ggKszQeBqXiPw6pixoNn74dN0a6ULH4he21 hKzczTW7hob02+W4GclbMK2L6SRWLYwZHj+aXgWv+4Ns/4NI= X-Received: by 2002:a05:622a:5e8f:b0:50b:567a:e915 with SMTP id d75a77b69052e-50d62b7069emr52453631cf.64.1775241680324; Fri, 03 Apr 2026 11:41:20 -0700 (PDT) X-Received: by 2002:a05:622a:5e8f:b0:50b:567a:e915 with SMTP id d75a77b69052e-50d62b7069emr52453311cf.64.1775241679789; Fri, 03 Apr 2026 11:41:19 -0700 (PDT) Received: from x1.local ([142.189.10.167]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-8a593908b47sm62337136d6.11.2026.04.03.11.41.18 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 03 Apr 2026 11:41:19 -0700 (PDT) Date: Fri, 3 Apr 2026 14:41:18 -0400 From: Peter Xu To: "Denis M. Karpov" Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Mike Rapoport , Andrea Arcangeli Subject: Re: [BUG] userfaultfd: UFFDIO_REGISTER fails on low addresses despite CAP_SYS_RAWIO Message-ID: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: On Fri, Apr 03, 2026 at 02:24:05PM +0300, Denis M. Karpov wrote: > Hello, Hello, Denis, > I am seeing an inconsistency between mmap() and userfaultfd's UFFDIO_REGISTER > logic regarding low memory addresses. > Kernel: 6.12.63+deb13-amd64 (Debian 6.12.63-1) > Description: > As root (or with CAP_SYS_RAWIO), it is possible to mmap() the low-address area > (below mmap_min_addr). However, UFFDIO_REGISTER fails with -EINVAL for these > same ranges. The issue appears to be in fs/userfaultfd.c:validate_range(): > if (start < mmap_min_addr) > return -EINVAL; > > While mmap() uses cap_mmap_addr() to allow privileged access to these areas, > userfaultfd performs a hard check against mmap_min_addr without considering > capabilities. This prevents binary translators/compilers from using UFFD on > valid memory areas mapped by the application. Indeed. I believe the current behavior existed since Andrea introduced userfaultfd, and it makes a lot of sense when starting from a stricter semantics with a new system call like it. When there's an explicit demand of using it under mmap_min_addr, I don't see an issue why we can't consider enabling that, as long as we do at least the same level of security check similarly to mmap() here. So to me, it looks all reasonable to replace that check with cap_mmap_addr(). I can't think of any bad side effect except starting to enable your use case which seems a valid one. IMHO you prepare an RFC patch and copy some more people to collect feedbacks. I would suggest at least the ones listed in MEMORY MAPPING section of the maintainers file. Btw, Mike Rapoport is now the official maintainer for userfaultfd, please remember to copy him too when sending. PS: it's holiday window (Good Friday) so please expect delays for replies. Thanks, -- Peter Xu