The keyfile settings backend in GNOME GLib (aka glib2.0) before 2.60.0 creates directories using gfilemakedirectorywithparents (kfsb->dir, NULL, NULL) and files using gfilereplacecontents (kfsb->file, contents, length, NULL, FALSE, GFILECREATEREPLACEDESTINATION, NULL, NULL, NULL). Consequently, it does not properly restrict directory (and file) permissions. Instead, for directories, 0777 permissions are used; for files, default file permissions are used. This is similar to CVE-2019-12450.
[
{
"id": "CVE-2019-13012-20d86715",
"source": "https://gitlab.gnome.org/GNOME/glib@5e4da714f00f6bfb2ccd6d73d61329c6f3a08429",
"digest": {
"length": 297.0,
"function_hash": "206605126152140042186476457105825432619"
},
"target": {
"file": "gio/gkeyfilesettingsbackend.c",
"function": "g_keyfile_settings_backend_keyfile_write"
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function"
},
{
"id": "CVE-2019-13012-e5ed4a77",
"source": "https://gitlab.gnome.org/GNOME/glib@5e4da714f00f6bfb2ccd6d73d61329c6f3a08429",
"digest": {
"length": 917.0,
"function_hash": "35504247401058893049625118715721596264"
},
"target": {
"file": "gio/gkeyfilesettingsbackend.c",
"function": "g_keyfile_settings_backend_constructed"
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function"
},
{
"id": "CVE-2019-13012-e6c09a32",
"source": "https://gitlab.gnome.org/GNOME/glib@5e4da714f00f6bfb2ccd6d73d61329c6f3a08429",
"digest": {
"line_hashes": [
"52113572213279302410160458986699814866",
"224404247974226898390717468373307870903",
"142114796797454760707182356979768609955",
"154898358861433275861779533176990407539",
"75167872904641019238416415385927650658",
"215833425520010456987160222434244676289",
"36439815861384971731409604690581811993",
"226039682951575096948201118831603433131"
],
"threshold": 0.9
},
"target": {
"file": "gio/gkeyfilesettingsbackend.c"
},
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line"
}
]