A flaw was found in GLib2. When g_file_replace() is used with G_FILE_CREATE_REPLACE_DESTINATION and creating the .goutputstream-XXXXXX temporary file fails, the library unlinks the destination and recreates it without exclusive creation or symlink protection. A local attacker who can write to the destination directory can win that race and redirect the write to another file.
https://gitlab.gnome.org/GNOME/glib/-/work_items/4044
https://gitlab.gnome.org/GNOME/glib/-/blob/main/gio/glocalfileoutputstream.c