{"id":"CVE-2026-102598","aliases":["AZL-105654","AZL-105681","AZL-105921","CLSA-2026-1791363861","CLSA-2026-1791365297","CLSA-2026-1791366853","EUVD-2026-88980","GHSA-g6x2-hccm-hh4m","PYSEC-2026-4312","UBUNTU-CVE-2026-102598","openSUSE-SU-2026:11943-1"],"status":"published","title":"Werkzeug safe_join() allows Windows special device names","description":"Werkzeug is a comprehensive WSGI web application library. Prior to 3.1.9, the safe_join function used by send_from_directory can allow a NUL: special-device path because safe_join checks the Windows device name without first removing an empty NTFS ADS marker. The trigger is that an application runs on Windows with NTFS and serves a user-specified path ending in a special device name such as NUL:. The attack mechanism is that a requested path ends in a Windows special device name with an empty ADS marker. The impact is that the special device opens successfully and the file read hangs indefinitely. This issue is fixed in version 3.1.9.","severity":{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-12","score":0.0037,"percentile":0.31336,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-67"],"published":"2026-09-29T15:16:28Z","modified":"2026-10-28T02:30:53Z","fixes":[{"ecosystem":"PyPI","package":"werkzeug","fixed_in":["3.1.9"],"sources":["ghsa","osv"]},{"ecosystem":"TuxCare:PyPI","package":"werkzeug","fixed_in":["2.3.8.post4+tuxcare","1.0.1.post7+tuxcare"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"werkzeug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.1.9"}]}]},{"source":"osv","ecosystem":"Azure Linux:3","package":"python-tensorboard","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.16.2-6"}]}]},{"source":"osv","ecosystem":"Azure Linux:3","package":"python-werkzeug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"3.0.3-2"}]}]},{"source":"osv","ecosystem":"Azure Linux:3","package":"tensorflow","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"last_affected":"2.16.1-11"}]}]},{"source":"osv","ecosystem":"TuxCare:PyPI","package":"werkzeug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.3.8"},{"fixed":"2.3.8.post4+tuxcare"}]}],"versions":["2.3.8","2.3.8.post1+tuxcare","2.3.8.post2+tuxcare","2.3.8.post3+tuxcare"]},{"source":"osv","ecosystem":"TuxCare:PyPI","package":"werkzeug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"2.2.3"},{"fixed":"2.2.3.post6+tuxcare"}]}],"versions":["2.2.3","2.2.3.post1+tuxcare","2.2.3.post3+tuxcare","2.2.3.post4+tuxcare","2.2.3.post5+tuxcare"],"bundled":2},{"source":"osv","ecosystem":"TuxCare:PyPI","package":"werkzeug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"1.0.1"},{"fixed":"1.0.1.post7+tuxcare"}]}],"versions":["1.0.1","1.0.1.post1+tuxcare","1.0.1.post2+tuxcare","1.0.1.post3+tuxcare","1.0.1.post4+tuxcare","1.0.1.post5+tuxcare","1.0.1.post6+tuxcare"]},{"source":"osv","ecosystem":"PyPI","package":"werkzeug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.1.9"}]}],"versions":["0.1","0.10","0.10.1","0.10.2","0.10.3","0.10.4","0.11","0.11.1","0.11.10","0.11.11","0.11.12","0.11.13","0.11.14","0.11.15","0.11.2","0.11.3","0.11.4","0.11.5","0.11.6","0.11.7","0.11.8","0.11.9","0.12","0.12.1","0.12.2","0.13","0.14","0.14.1","0.15.0","0.15.1","0.15.2","0.15.3","0.15.4","0.15.5","0.15.6","0.16.0","0.16.1","0.2","0.3","0.3.1","0.4","0.4.1","0.5","0.5.1","0.6","0.6.1","0.6.2","0.7","0.7.1","0.7.2","0.8","0.8.1","0.8.2","0.8.3","0.9","0.9.1","0.9.2","0.9.3","0.9.4","0.9.5","0.9.6","1.0.0","1.0.0rc1","1.0.1","2.0.0","2.0.0rc1","2.0.0rc2","2.0.0rc3","2.0.0rc4","2.0.0rc5","2.0.1","2.0.2","2.0.3","2.1.0","2.1.1","2.1.2","2.2.0","2.2.0a1","2.2.1","2.2.2","2.2.3","2.3.0","2.3.1","2.3.2","2.3.3","2.3.4","2.3.5","2.3.6","2.3.7","2.3.8","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.0.6","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","3.1.5","3.1.6","3.1.7","3.1.8"]},{"source":"osv","ecosystem":"PyPI","package":"werkzeug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.1.9"}]}],"versions":["0.1","0.10","0.10.1","0.10.2","0.10.3","0.10.4","0.11","0.11.1","0.11.10","0.11.11","0.11.12","0.11.13","0.11.14","0.11.15","0.11.2","0.11.3","0.11.4","0.11.5","0.11.6","0.11.7","0.11.8","0.11.9","0.12","0.12.1","0.12.2","0.13","0.14","0.14.1","0.15.0","0.15.1","0.15.2","0.15.3","0.15.4","0.15.5","0.15.6","0.16.0","0.16.1","0.2","0.3","0.3.1","0.4","0.4.1","0.5","0.5.1","0.6","0.6.1","0.6.2","0.7","0.7.1","0.7.2","0.8","0.8.1","0.8.2","0.8.3","0.9","0.9.1","0.9.2","0.9.3","0.9.4","0.9.5","0.9.6","1.0.0","1.0.0rc1","1.0.1","2.0.0","2.0.0rc1","2.0.0rc2","2.0.0rc3","2.0.0rc4","2.0.0rc5","2.0.1","2.0.2","2.0.3","2.1.0","2.1.1","2.1.2","2.2.0","2.2.0a1","2.2.1","2.2.2","2.2.3","2.3.0","2.3.1","2.3.2","2.3.3","2.3.4","2.3.5","2.3.6","2.3.7","2.3.8","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.0.6","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","3.1.5","3.1.6","3.1.7","3.1.8"]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"python-werkzeug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.10.4+dfsg1-1ubuntu1","0.10.4+dfsg1-1ubuntu1.1","0.10.4+dfsg1-1ubuntu1.2","0.10.4+dfsg1-1ubuntu1.2+esm1","0.10.4+dfsg1-1ubuntu1.2+esm2"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"python-werkzeug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.12.2+dfsg1-2","0.13+dfsg1-1","0.14.1+dfsg1-1","0.14.1+dfsg1-1ubuntu0.1","0.14.1+dfsg1-1ubuntu0.2","0.14.1+dfsg1-1ubuntu0.2+esm1"]},{"source":"osv","ecosystem":"Ubuntu:20.04:LTS","package":"python-werkzeug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["0.14.1+dfsg1-4","0.15.6+dfsg1-1","0.16.0+dfsg1-1","0.16.1+dfsg1-1ubuntu1","0.16.1+dfsg1-2","0.16.1+dfsg1-2ubuntu0.1","0.16.1+dfsg1-2ubuntu0.2"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"python-werkzeug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.0.1+dfsg1-2","2.0.2+dfsg1-1","2.0.2+dfsg1-1ubuntu0.22.04.1","2.0.2+dfsg1-1ubuntu0.22.04.2","2.0.2+dfsg1-1ubuntu0.22.04.3"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"python-werkzeug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["2.2.2-3","3.0.1-1","3.0.1-2","3.0.1-3","3.0.1-3ubuntu0.1","3.0.1-3ubuntu0.2"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"python-werkzeug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.1.5-1","3.1.8-1"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"python-werkzeug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["3.1.3-2","3.1.4-1","3.1.5-1"]},{"source":"osv","ecosystem":"openSUSE:Tumbleweed","package":"python-Werkzeug","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"3.1.9-1.1"}]}],"bundled":6}],"products":[{"vendor":"pallets","product":"werkzeug"}],"references":[{"url":"https://github.com/pallets/werkzeug/security/advisories/GHSA-g6x2-hccm-hh4m","tags":["x_refsource_CONFIRM","advisory","web","report"]},{"url":"https://github.com/pallets/werkzeug/pull/3309","tags":["x_refsource_MISC","fix","web","report"]},{"url":"https://github.com/pallets/werkzeug/commit/8d77320bcdf3a34941ec06dcf16b03c065cd21b6","tags":["x_refsource_MISC","fix","web","report"]},{"url":"https://github.com/pallets/werkzeug/releases/tag/3.1.9","tags":["x_refsource_MISC","web","report"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-102598","tags":["web","advisory"]},{"url":"https://github.com/advisories/GHSA-g6x2-hccm-hh4m","tags":["advisory"]},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/102xxx/CVE-2026-102598.json","tags":["advisory"]},{"url":"https://github.com/pallets/werkzeug","tags":["package"]},{"url":"https://pypi.org/project/werkzeug","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2026-102598","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-102598","tags":["report"]},{"url":"","tags":["advisory"]},{"url":"https://www.suse.com/security/cve/CVE-2019-14806","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2023-25577","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2023-46136","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2024-34069","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2024-49767","tags":["web"]},{"url":"https://www.suse.com/security/cve/CVE-2026-102598","tags":["web"]}],"sources":{"cve":[{"id":"CVE-2026-102598","title":"Werkzeug safe_join() allows Windows special device names","description":"Werkzeug is a comprehensive WSGI web application library. Prior to 3.1.9, the safe_join function used by send_from_directory can allow a NUL: special-device path because safe_join checks the Windows device name without first removing an empty NTFS ADS marker. The trigger is that an application runs on Windows with NTFS and serves a user-specified path ending in a special device name such as NUL:. The attack mechanism is that a requested path ends in a Windows special device name with an empty ADS marker. The impact is that the special device opens successfully and the file read hangs indefinitely. This issue is fixed in version 3.1.9.","status":"published","published":"2026-09-29T15:16:28.9Z","modified":"2026-09-29T15:44:10.657Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium","assessor":"cna"}],"cwes":["CWE-67"],"updated_at":"2026-11-02T13:38:54.394896Z"}],"euvd":[{"id":"EUVD-2026-88980","description":"Werkzeug is a comprehensive WSGI web application library. Prior to 3.1.9, the safe_join function used by send_from_directory can allow a NUL: special-device path because safe_join checks the Windows device name without first removing an empty NTFS ADS marker. The trigger is that an application runs on Windows with NTFS and serves a user-specified path ending in a special device name such as NUL:. The attack mechanism is that a requested path ends in a Windows special device name with an empty ADS marker. The impact is that the special device opens successfully and the file read hangs indefinitely. This issue is fixed in version 3.1.9.","status":"published","published":"2026-09-29T15:16:28Z","modified":"2026-09-29T15:44:10Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium"}],"updated_at":"2026-11-02T17:27:51.995341Z"}],"ghsa":[{"id":"GHSA-g6x2-hccm-hh4m","title":"Werkzeug safe_join() allows Windows special device names","description":"Werkzeug's `safe_join` function allows Windows device names as filenames when they have an empty ADS marker on NTFS.\n\nThis was previously reported as https://github.com/pallets/werkzeug/security/advisories/GHSA-hgf8-39gv-g3f2, but the added filtering failed to account for the fact Windows allows special device names with an empty ADS marker, such as `NUL:`.\n\n`send_from_directory` uses `safe_join` to safely serve files at user-specified paths under a directory. If the application is running on Windows and NTFS, and the requested path ends with a special device name, the file will be opened successfully, but reading will hang indefinitely.","status":"published","published":"2026-10-05T23:48:39Z","modified":"2026-10-05T23:48:40Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-67"],"updated_at":"2026-11-02T14:41:27.036917Z"}],"nvd":[{"id":"CVE-2026-102598","description":"Werkzeug is a comprehensive WSGI web application library. Prior to 3.1.9, the safe_join function used by send_from_directory can allow a NUL: special-device path because safe_join checks the Windows device name without first removing an empty NTFS ADS marker. The trigger is that an application runs on Windows with NTFS and serves a user-specified path ending in a special device name such as NUL:. The attack mechanism is that a requested path ends in a Windows special device name with an empty ADS marker. The impact is that the special device opens successfully and the file read hangs indefinitely. This issue is fixed in version 3.1.9.","status":"published","published":"2026-09-29T16:17:06.01Z","modified":"2026-09-30T19:38:27.293Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"medium","assessor":"secondary"}],"cwes":["CWE-67"],"updated_at":"2026-11-02T14:12:52.413234Z"}],"osv":[{"id":"CVE-2026-102598","title":"Werkzeug safe_join() allows Windows special device names","description":"Werkzeug is a comprehensive WSGI web application library. Prior to 3.1.9, the safe_join function used by send_from_directory can allow a NUL: special-device path because safe_join checks the Windows device name without first removing an empty NTFS ADS marker. The trigger is that an application runs on Windows with NTFS and serves a user-specified path ending in a special device name such as NUL:. The attack mechanism is that a requested path ends in a Windows special device name with an empty ADS marker. The impact is that the special device opens successfully and the file read hangs indefinitely. This issue is fixed in version 3.1.9.","status":"published","published":"2026-09-29T15:16:28.9Z","modified":"2026-10-28T02:30:53.945484783Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-67"],"updated_at":"2026-11-02T15:44:53.83521Z"},{"id":"GHSA-g6x2-hccm-hh4m","title":"Werkzeug safe_join() allows Windows special device names","description":"Werkzeug's `safe_join` function allows Windows device names as filenames when they have an empty ADS marker on NTFS.\n\nThis was previously reported as https://github.com/pallets/werkzeug/security/advisories/GHSA-hgf8-39gv-g3f2, but the added filtering failed to account for the fact Windows allows special device names with an empty ADS marker, such as `NUL:`.\n\n`send_from_directory` uses `safe_join` to safely serve files at user-specified paths under a directory. If the application is running on Windows and NTFS, and the requested path ends with a special device name, the file will be opened successfully, but reading will hang indefinitely.","status":"published","published":"2026-10-05T23:48:39Z","modified":"2026-10-15T14:56:11.020811348Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium"}],"cwes":["CWE-67"],"updated_at":"2026-11-02T15:46:47.472172Z"},{"id":"PYSEC-2026-4312","title":"Werkzeug safe_join() allows Windows special device names","description":"Werkzeug's `safe_join` function allows Windows device names as filenames when they have an empty ADS marker on NTFS.\n\nThis was previously reported as https://github.com/pallets/werkzeug/security/advisories/GHSA-hgf8-39gv-g3f2, but the added filtering failed to account for the fact Windows allows special device names with an empty ADS marker, such as `NUL:`.\n\n`send_from_directory` uses `safe_join` to safely serve files at user-specified paths under a directory. If the application is running on Windows and NTFS, and the requested path ends with a special device name, the file will be opened successfully, but reading will hang indefinitely.","status":"published","published":"2026-10-15T10:22:46.33269Z","modified":"2026-10-15T14:45:14.716393013Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium"}],"updated_at":"2026-11-02T15:52:57.671918Z"},{"id":"UBUNTU-CVE-2026-102598","description":"Werkzeug is a comprehensive WSGI web application library. Prior to 3.1.9, the safe_join function used by send_from_directory can allow a NUL: special-device path because safe_join checks the Windows device name without first removing an empty NTFS ADS marker. The trigger is that an application runs on Windows with NTFS and serves a user-specified path ending in a special device name such as NUL:. The attack mechanism is that a requested path ends in a Windows special device name with an empty ADS marker. The impact is that the special device opens successfully and the file read hangs indefinitely. This issue is fixed in version 3.1.9.","status":"published","published":"2026-09-29T16:17:00Z","modified":"2026-10-17T12:59:43.677206435Z","cvss":[{"version":"4.0","score":6.3,"vector":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N","level":"medium"}],"updated_at":"2026-11-02T16:55:58.519486Z"},{"id":"AZL-105654","title":"CVE-2026-102598 affecting package python-tensorboard 2.16.2-6","description":"Werkzeug is a comprehensive WSGI web application library. Prior to 3.1.9, the safe_join function used by send_from_directory can allow a NUL: special-device path because safe_join checks the Windows device name without first removing an empty NTFS ADS marker. The trigger is that an application runs on Windows with NTFS and serves a user-specified path ending in a special device name such as NUL:. The attack mechanism is that a requested path ends in a Windows special device name with an empty ADS marker. The impact is that the special device opens successfully and the file read hangs indefinitely. This issue is fixed in version 3.1.9.","status":"published","published":"2026-09-29T16:17:06Z","modified":"2026-10-15T05:37:09Z","updated_at":"2026-11-02T15:28:01.09948Z"},{"id":"AZL-105681","title":"CVE-2026-102598 affecting package python-werkzeug 3.0.3-2","description":"Werkzeug is a comprehensive WSGI web application library. Prior to 3.1.9, the safe_join function used by send_from_directory can allow a NUL: special-device path because safe_join checks the Windows device name without first removing an empty NTFS ADS marker. The trigger is that an application runs on Windows with NTFS and serves a user-specified path ending in a special device name such as NUL:. The attack mechanism is that a requested path ends in a Windows special device name with an empty ADS marker. The impact is that the special device opens successfully and the file read hangs indefinitely. This issue is fixed in version 3.1.9.","status":"published","published":"2026-09-29T16:17:06Z","modified":"2026-10-15T05:37:09Z","updated_at":"2026-11-02T15:28:01.09948Z"},{"id":"AZL-105921","title":"CVE-2026-102598 affecting package tensorflow 2.16.1-11","description":"Werkzeug is a comprehensive WSGI web application library. Prior to 3.1.9, the safe_join function used by send_from_directory can allow a NUL: special-device path because safe_join checks the Windows device name without first removing an empty NTFS ADS marker. The trigger is that an application runs on Windows with NTFS and serves a user-specified path ending in a special device name such as NUL:. The attack mechanism is that a requested path ends in a Windows special device name with an empty ADS marker. The impact is that the special device opens successfully and the file read hangs indefinitely. This issue is fixed in version 3.1.9.","status":"published","published":"2026-09-29T16:17:06Z","modified":"2026-10-15T05:37:09Z","updated_at":"2026-11-02T15:28:01.09948Z"},{"id":"CLSA-2026-1791363861","title":"TuxCare security update for werkzeug (1 CVE)","description":"TuxCare rebuilt werkzeug to address 1 CVE. Fixed in 2.3.8.post4+tuxcare.","status":"published","published":"2026-10-07T09:04:21Z","modified":"2026-10-15T09:48:07.307216002Z","updated_at":"2026-11-02T15:43:49.016976Z"},{"id":"CLSA-2026-1791365297","title":"TuxCare security update for werkzeug (2 CVEs)","description":"TuxCare rebuilt werkzeug to address 2 CVEs. Fixed in 2.2.3.post6+tuxcare.","status":"published","published":"2026-10-07T09:28:17Z","modified":"2026-10-15T09:48:07.258413904Z","updated_at":"2026-11-02T15:43:49.016976Z"},{"id":"CLSA-2026-1791366853","title":"TuxCare security update for werkzeug (1 CVE)","description":"TuxCare rebuilt werkzeug to address 1 CVE. Fixed in 1.0.1.post7+tuxcare.","status":"published","published":"2026-10-07T09:54:13Z","modified":"2026-10-15T09:46:21.700639002Z","updated_at":"2026-11-02T15:43:49.016976Z"},{"id":"openSUSE-SU-2026:11943-1","title":"python313-Werkzeug-3.1.9-1.1 on GA media","description":"These are all security issues fixed in the python313-Werkzeug-3.1.9-1.1 package on the GA media of openSUSE Tumbleweed.","status":"published","published":"2026-10-01T00:00:00Z","modified":"2026-10-02T18:23:12.906515335Z","updated_at":"2026-11-02T16:58:40.245664Z"}]}}
