Subject: Re: Bypassing Directory Ownership Check in PostgreSQL 16.6 with Secure z/OS NFS (AT-TLS)

From: Benjamin Wang <[email-masked]>
Date: Mon, 14 Jul 2025 20:02:27 +0100

I am not sure whether PostgreSQL depends on system call `fsyncdata` to
 sync data to disk. If yes, then I don't think it's safe to use NFS.
When `fsyncdata` returns success, it doesn't mean the data has
really been synced to disk. But if PostgreSQL crashes right after
it returns success to clients. Eventually it breaks the D (Durability) of
ACID.

Benjamin

On Mon, Jul 14, 2025 at 7:31 PM Tom Lane <[email-masked]> wrote:

> "Peter J. Holzer" <[email-masked]> writes:
> > On 2025-07-14 10:07:20 -0400, Tom Lane wrote:
> >> That is primarily for safety reasons: if for some reason the
> >> filesystem gets dismounted, or hasn't come on-line yet during
> >> a reboot, you do not want Postgres to be able to write on the
> >> underlying mount-point directory.
>
> > Be careful: There are two different directorys involved in a mount
> > point. The one in the parent filesystem and the one in the mounted file
> > system.
>
> True, and the safety requirement really is only that the parent
> filesystem's mount-point directory not be writable by us.
> But normal practice is that both directories are root-owned,
> or at least owned by highly privileged users.
>
> (I have a vague idea that there are system-level security hazards,
> not specific to Postgres, if mount-point directories are publicly
> writable.  Don't feel like researching that though.)
>
>                         regards, tom lane
>
>
>

---

From: "David G. Johnston" <[email-masked]>
Date: Mon, 14 Jul 2025 12:08:26 -0700

On Mon, Jul 14, 2025 at 12:02 PM Benjamin Wang <[email-masked]>
wrote:

>  sync data to disk.

https://www.postgresql.org/docs/current/runtime-config-wal.html#GUC-WAL-SYNC-METHOD

David J.

---

From: Tom Lane <[email-masked]>
Date: Mon, 14 Jul 2025 15:10:45 -0400

>  sync data to disk. If yes, then I don't think it's safe to use NFS.

Well, that's a whole other discussion.  The point about mount
directories applies to any sort of dismountable storage.

(But I too would not use Postgres-over-NFS for any critical data.
Too many moving parts.  It's tough enough to ensure crash safety
with local storage.)

			regards, tom lane