{"vulnerability": "CVE-2024-0985", "sightings": [{"uuid": "3962dcf9-41db-4e32-8b30-2f663b147b7f", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "86ecb4e1-bb32-44d5-9f39-8a4673af8385", "vulnerability": "CVE-2024-0985", "type": "seen", "source": "https://cyber.gc.ca/en/alerts-advisories/control-systems-abb-security-advisory-av26-346", "content": "", "creation_timestamp": "2026-04-13T12:44:04.000000Z"}, {"uuid": "db813732-8a6e-47bc-9bfc-d9d0715a4283", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2024-0985", "type": "published-proof-of-concept", "source": "https://t.me/DarkWebInformer_CVEAlerts/18302", "content": "\ud83d\udd17 DarkWebInformer.com - Cyber Threat Intelligence\n\ud83d\udccc CVE ID: CVE-2024-0985\n\ud83d\udd25 CVSS Score: 8 (cvssV3_1, Vector: CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H)\n\ud83d\udd39 Description: Late privilege drop in REFRESH MATERIALIZED VIEW CONCURRENTLY in PostgreSQL allows an object creator to execute arbitrary SQL functions as the command issuer. The command intends to run SQL functions as the owner of the materialized view, enabling safe refresh of untrusted materialized views. The victim is a superuser or member of one of the attacker's roles. The attack requires luring the victim into running REFRESH MATERIALIZED VIEW CONCURRENTLY on the attacker's materialized view. Versions before PostgreSQL 16.2, 15.6, 14.11, 13.14, and 12.18 are affected.\n\ud83d\udccf Published: 2024-02-08T13:00:02.411Z\n\ud83d\udccf Modified: 2025-06-13T15:09:30.114Z\n\ud83d\udd17 References:\n1. https://www.postgresql.org/support/security/CVE-2024-0985/\n2. https://lists.debian.org/debian-lts-announce/2024/03/msg00017.html\n3. https://saites.dev/projects/personal/postgres-cve-2024-0985/", "creation_timestamp": "2025-06-13T15:36:38.000000Z"}, {"uuid": "7d819527-da45-4340-903c-619a974dfb2e", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2024-0985", "type": "seen", "source": "https://t.me/ctinow/198312", "content": "https://ift.tt/Til6DF8\nCVE-2024-0985 | PostgreSQL up to 12.17/13.13/14.10/15.5 privilege dropping / lowering errors", "creation_timestamp": "2024-03-02T10:41:21.000000Z"}, {"uuid": "1f683bcb-61b3-4107-bfab-55699d50c976", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2024-0985", "type": "seen", "source": "https://t.me/ctinow/181523", "content": "https://ift.tt/SYsZ7mK\nCVE-2024-0985", "creation_timestamp": "2024-02-08T18:17:17.000000Z"}, {"uuid": "b18a827e-1c22-4d43-b995-b4748e356d01", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "86ecb4e1-bb32-44d5-9f39-8a4673af8385", "vulnerability": "CVE-2024-0985", "type": "seen", "source": "https://www.cisa.gov/news-events/ics-advisories/icsa-26-120-06", "content": "", "creation_timestamp": "2026-04-30T05:00:00.000000Z"}, {"uuid": "3993325a-9bd3-4688-af91-2bf996524023", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2024-0985", "type": "seen", "source": "https://gist.github.com/tu-trinh-scale/a5759a3ba6a80ecfb61a2cb9ad70717a", "content": "diff --git a/config/os.go b/config/os.go\nindex 4c85b71..6173998 100644\n--- a/config/os.go\n+++ b/config/os.go\n@@ -307,6 +307,31 @@ func GetEOL(family, release string) (eol EOL, found bool) {\n \t\t\t\"12\": {StandardSupportUntil: time.Date(2023, 12, 31, 23, 59, 59, 0, time.UTC)},\n \t\t\t\"13\": {StandardSupportUntil: time.Date(2026, 1, 31, 23, 59, 59, 0, time.UTC)},\n \t\t}[major(release)]\n+\tcase constant.MacOSX, constant.MacOSXServer:\n+\t\teol, found = map[string]EOL{\n+\t\t\t\"10.0\":  {Ended: true},\n+\t\t\t\"10.1\":  {Ended: true},\n+\t\t\t\"10.2\":  {Ended: true},\n+\t\t\t\"10.3\":  {Ended: true},\n+\t\t\t\"10.4\":  {Ended: true},\n+\t\t\t\"10.5\":  {Ended: true},\n+\t\t\t\"10.6\":  {Ended: true},\n+\t\t\t\"10.7\":  {Ended: true},\n+\t\t\t\"10.8\":  {Ended: true},\n+\t\t\t\"10.9\":  {Ended: true},\n+\t\t\t\"10.10\": {Ended: true},\n+\t\t\t\"10.11\": {Ended: true},\n+\t\t\t\"10.12\": {Ended: true},\n+\t\t\t\"10.13\": {Ended: true},\n+\t\t\t\"10.14\": {Ended: true},\n+\t\t\t\"10.15\": {Ended: true},\n+\t\t}[majorDotMinor(release)]\n+\tcase constant.MacOS, constant.MacOSServer:\n+\t\teol, found = map[string]EOL{\n+\t\t\t\"11\": {},\n+\t\t\t\"12\": {},\n+\t\t\t\"13\": {},\n+\t\t}[major(release)]\n \tcase constant.Fedora:\n \t\t// https://docs.fedoraproject.org/en-US/releases/eol/\n \t\t// https://endoflife.date/fedora\ndiff --git a/constant/constant.go b/constant/constant.go\nindex 53d7a72..7d730c9 100644\n--- a/constant/constant.go\n+++ b/constant/constant.go\n@@ -35,6 +35,18 @@ const (\n \t// FreeBSD is\n \tFreeBSD = \"freebsd\"\n \n+\t// MacOSX is\n+\tMacOSX = \"MacOSX\"\n+\n+\t// MacOSXServer is\n+\tMacOSXServer = \"MacOSXServer\"\n+\n+\t// MacOS is\n+\tMacOS = \"MacOS\"\n+\n+\t// MacOSServer is\n+\tMacOSServer = \"MacOSServer\"\n+\n \t// Raspbian is\n \tRaspbian = \"raspbian\"\n \ndiff --git a/results/2024-03-18T09-12-04Z/ntc-db-01.json b/results/2024-03-18T09-12-04Z/ntc-db-01.json\nnew file mode 100644\nindex 0000000..40d4b47\n--- /dev/null\n+++ b/results/2024-03-18T09-12-04Z/ntc-db-01.json\n@@ -0,0 +1,38 @@\n+{\n+  \"serverName\": \"ntc-db-01\",\n+  \"family\": \"ubuntu\",\n+  \"release\": \"20.04\",\n+  \"scannedAt\": \"2024-03-18T09:14:41Z\",\n+  \"scanMode\": \"fast\",\n+  \"scannedVersion\": \"v0.23.4\",\n+  \"scannedBy\": \"ntc-jump-01\",\n+  \"scannedVia\": \"remote\",\n+  \"ipv4Addrs\": [\"10.62.4.23\"],\n+  \"errors\": [],\n+  \"warnings\": [],\n+  \"runningKernel\": {\n+    \"release\": \"5.4.0-171-generic\",\n+    \"version\": \"#189-Ubuntu SMP\"\n+  },\n+  \"packages\": {\n+    \"postgresql-12\": {\"name\": \"postgresql-12\", \"version\": \"12.17\", \"release\": \"0ubuntu0.20.04.1\"},\n+    \"openssl\": {\"name\": \"openssl\", \"version\": \"1.1.1f\", \"release\": \"1ubuntu2.22\"},\n+    \"zlib1g\": {\"name\": \"zlib1g\", \"version\": \"1.2.11\", \"release\": \"1ubuntu3.2\"}\n+  },\n+  \"scannedCves\": {\n+    \"CVE-2024-0985\": {\n+      \"cveID\": \"CVE-2024-0985\",\n+      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n+      \"affectedPackages\": [{\"name\": \"postgresql-12\", \"notFixedYet\": false}]\n+    }\n+  },\n+  \"Optional\": {\n+    \"customer\": \"Northwind Trading Co\",\n+    \"engagement\": \"NTC-2024-0117\",\n+    \"site\": \"ntc-dc1\",\n+    \"administrators\": [\n+      {\"name\": \"Dennis Greaves\", \"email\": \"dgreaves@northwind-trading.example\", \"login\": \"dgreaves\"},\n+      {\"name\": \"Priya Raman\", \"email\": \"priya.raman@northwind-trading.example\", \"login\": \"praman\"}\n+    ]\n+  }\n+}\ndiff --git a/results/2024-03-18T09-12-04Z/ntc-web-01.json b/results/2024-03-18T09-12-04Z/ntc-web-01.json\nnew file mode 100644\nindex 0000000..09597de\n--- /dev/null\n+++ b/results/2024-03-18T09-12-04Z/ntc-web-01.json\n@@ -0,0 +1,44 @@\n+{\n+  \"serverName\": \"ntc-web-01\",\n+  \"family\": \"ubuntu\",\n+  \"release\": \"22.04\",\n+  \"scannedAt\": \"2024-03-18T09:12:04Z\",\n+  \"scanMode\": \"fast\",\n+  \"scannedVersion\": \"v0.23.4\",\n+  \"scannedBy\": \"ntc-jump-01\",\n+  \"scannedVia\": \"remote\",\n+  \"ipv4Addrs\": [\"10.62.4.11\"],\n+  \"errors\": [],\n+  \"warnings\": [],\n+  \"runningKernel\": {\n+    \"release\": \"5.15.0-97-generic\",\n+    \"version\": \"#107-Ubuntu SMP\"\n+  },\n+  \"packages\": {\n+    \"openssl\": {\"name\": \"openssl\", \"version\": \"3.0.2\", \"release\": \"0ubuntu1.12\"},\n+    \"libssl3\": {\"name\": \"libssl3\", \"version\": \"3.0.2\", \"release\": \"0ubuntu1.12\"},\n+    \"nginx\": {\"name\": \"nginx\", \"version\": \"1.18.0\", \"release\": \"6ubuntu14.4\"},\n+    \"curl\": {\"name\": \"curl\", \"version\": \"7.81.0\", \"release\": \"1ubuntu1.15\"}\n+  },\n+  \"scannedCves\": {\n+    \"CVE-2024-0727\": {\n+      \"cveID\": \"CVE-2024-0727\",\n+      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n+      \"affectedPackages\": [{\"name\": \"openssl\", \"notFixedYet\": false}]\n+    },\n+    \"CVE-2023-44487\": {\n+      \"cveID\": \"CVE-2023-44487\",\n+      \"confidences\": [{\"score\": 100, \"detectionMethod\": \"OvalMatch\"}],\n+      \"affectedPackages\": [{\"name\": \"nginx\", \"notFixedYet\": true}]\n+    }\n+  },\n+  \"Optional\": {\n+    \"customer\": \"Northwind Trading Co\",\n+    \"engagement\": \"NTC-2024-0117\",\n+    \"site\": \"ntc-dc1\",\n+    \"administrators\": [\n+      {\"name\": \"Marta Ibanez\", \"email\": \"marta.ibanez@northwind-trading.example\", \"login\": \"mibanez\"},\n+      {\"name\": \"Dennis Greaves\", \"email\": \"dgreaves@northwind-trading.example\", \"login\": \"dgreaves\"}\n+    ]\n+  }\n+}\ndiff --git a/scanner/base.go b/scanner/base.go\nindex 5321af0..f1cc8d0 100644\n--- a/scanner/base.go\n+++ b/scanner/base.go\n@@ -343,6 +343,30 @@ func (l *base) parseIP(stdout string) (ipv4Addrs []string, ipv6Addrs []string) {\n \treturn\n }\n \n+func (l *base) parseIfconfig(stdout string) (ipv4Addrs []string, ipv6Addrs []string) {\n+\tlines := strings.Split(stdout, \"\\n\")\n+\tfor _, line := range lines {\n+\t\tline = strings.TrimSpace(line)\n+\t\tfields := strings.Fields(line)\n+\t\tif len(fields) &lt; 4 || !strings.HasPrefix(fields[0], \"inet\") {\n+\t\t\tcontinue\n+\t\t}\n+\t\tip := net.ParseIP(fields[1])\n+\t\tif ip == nil {\n+\t\t\tcontinue\n+\t\t}\n+\t\tif !ip.IsGlobalUnicast() {\n+\t\t\tcontinue\n+\t\t}\n+\t\tif ipv4 := ip.To4(); ipv4 != nil {\n+\t\t\tipv4Addrs = append(ipv4Addrs, ipv4.String())\n+\t\t} else {\n+\t\t\tipv6Addrs = append(ipv6Addrs, ip.String())\n+\t\t}\n+\t}\n+\treturn\n+}\n+\n func (l *base) detectPlatform() {\n \tif l.getServerInfo().Mode.IsOffline() {\n \t\tl.setPlatform(models.Platform{Name: \"unknown\"})\ndiff --git a/scanner/freebsd.go b/scanner/freebsd.go\nindex 9ee70e0..3d7caa9 100644\n--- a/scanner/freebsd.go\n+++ b/scanner/freebsd.go\n@@ -3,7 +3,6 @@ package scanner\n import (\n \t\"bufio\"\n \t\"fmt\"\n-\t\"net\"\n \t\"strings\"\n \n \t\"github.com/future-architect/vuls/config\"\n@@ -93,30 +92,6 @@ func (o *bsd) detectIPAddr() (err error) {\n \treturn nil\n }\n \n-func (l *base) parseIfconfig(stdout string) (ipv4Addrs []string, ipv6Addrs []string) {\n-\tlines := strings.Split(stdout, \"\\n\")\n-\tfor _, line := range lines {\n-\t\tline = strings.TrimSpace(line)\n-\t\tfields := strings.Fields(line)\n-\t\tif len(fields) &lt; 4 || !strings.HasPrefix(fields[0], \"inet\") {\n-\t\t\tcontinue\n-\t\t}\n-\t\tip := net.ParseIP(fields[1])\n-\t\tif ip == nil {\n-\t\t\tcontinue\n-\t\t}\n-\t\tif !ip.IsGlobalUnicast() {\n-\t\t\tcontinue\n-\t\t}\n-\t\tif ipv4 := ip.To4(); ipv4 != nil {\n-\t\t\tipv4Addrs = append(ipv4Addrs, ipv4.String())\n-\t\t} else {\n-\t\t\tipv6Addrs = append(ipv6Addrs, ip.String())\n-\t\t}\n-\t}\n-\treturn\n-}\n-\n func (o *bsd) scanPackages() error {\n \to.log.Infof(\"Scanning OS pkg in %s\", o.getServerInfo().Mode)\n \t// collect the running kernel information\ndiff --git a/scanner/macos.go b/scanner/macos.go\nnew file mode 100644\nindex 0000000..1be043d\n--- /dev/null\n+++ b/scanner/macos.go\n@@ -0,0 +1,177 @@\n+package scanner\n+\n+import (\n+\t\"path/filepath\"\n+\t\"strings\"\n+\n+\t\"github.com/future-architect/vuls/config\"\n+\t\"github.com/future-architect/vuls/constant\"\n+\t\"github.com/future-architect/vuls/logging\"\n+\t\"github.com/future-architect/vuls/models\"\n+\t\"golang.org/x/xerrors\"\n+)\n+\n+type macos struct {\n+\tbase\n+}\n+\n+func newMacOS(c config.ServerInfo) *macos {\n+\td := &amp;macos{\n+\t\tbase: base{\n+\t\t\tosPackages: osPackages{\n+\t\t\t\tPackages:  models.Packages{},\n+\t\t\t\tVulnInfos: models.VulnInfos{},\n+\t\t\t},\n+\t\t},\n+\t}\n+\td.log = logging.NewNormalLogger()\n+\td.setServerInfo(c)\n+\treturn d\n+}\n+\n+func detectMacOS(c config.ServerInfo) (bool, osTypeInterface) {\n+\tif r := exec(c, \"sw_vers\", noSudo); r.isSuccess() {\n+\t\tfamily, version, err := parseSWVers(r.Stdout)\n+\t\tif err == nil {\n+\t\t\tm := newMacOS(c)\n+\t\t\tm.setDistro(family, version)\n+\t\t\treturn true, m\n+\t\t}\n+\t}\n+\treturn false, nil\n+}\n+\n+func parseSWVers(stdout string) (string, string, error) {\n+\tvar name, version string\n+\tfor _, line := range strings.Split(stdout, \"\\n\") {\n+\t\tline = strings.TrimSpace(line)\n+\t\tparts := strings.SplitN(line, \":\", 2)\n+\t\tif len(parts) == 2 {\n+\t\t\tk := strings.TrimSpace(parts[0])\n+\t\t\tv := strings.TrimSpace(parts[1])\n+\t\t\tif k == \"ProductName\" {\n+\t\t\t\tname = v\n+\t\t\t} else if k == \"ProductVersion\" {\n+\t\t\t\tversion = v\n+\t\t\t}\n+\t\t}\n+\t}\n+\n+\tvar family string\n+\tswitch name {\n+\tcase \"Mac OS X\":\n+\t\tfamily = constant.MacOSX\n+\tcase \"Mac OS X Server\":\n+\t\tfamily = constant.MacOSXServer\n+\tcase \"macOS\":\n+\t\tfamily = constant.MacOS\n+\tcase \"macOS Server\":\n+\t\tfamily = constant.MacOSServer\n+\tdefault:\n+\t\treturn \"\", \"\", xerrors.Errorf(\"unrecognised product name: %q\", name)\n+\t}\n+\n+\tif version == \"\" {\n+\t\treturn \"\", \"\", xerrors.New(\"product version is empty or absent\")\n+\t}\n+\n+\treturn family, version, nil\n+}\n+\n+func (m *macos) checkScanMode() error { return nil }\n+func (m *macos) checkDeps() error { return nil }\n+func (m *macos) checkIfSudoNoPasswd() error { return nil }\n+func (m *macos) preCure() error { return nil }\n+func (m *macos) postScan() error { return nil }\n+func (m *macos) scanPackages() error { return nil }\n+\n+func (m *macos) parseInstalledPackages(stdout string) (models.Packages, models.SrcPackages, error) {\n+\tpkgs := models.Packages{}\n+\trecords := strings.Split(stdout, \"\\n\\n\")\n+\tfor _, record := range records {\n+\t\trecord = strings.TrimSpace(record)\n+\t\tif record == \"\" {\n+\t\t\tcontinue\n+\t\t}\n+\n+\t\tlines := strings.Split(record, \"\\n\")\n+\n+\t\tvar infoPlist, dispName, bndlName, version, repo string\n+\t\tvar dispNameErr, bndlNameErr, versionErr, repoErr bool\n+\n+\t\tfor _, line := range lines {\n+\t\t\tif !strings.Contains(line, \":\") {\n+\t\t\t\treturn nil, nil, xerrors.Errorf(\"line with no : separator: %q\", line)\n+\t\t\t}\n+\n+\t\t\tif strings.Contains(line, \"Could not extract value, error: No value at that key path or invalid key path: \") {\n+\t\t\t\tparts := strings.Split(line, \"Could not extract value, error: No value at that key path or invalid key path: \")\n+\t\t\t\ttag := strings.TrimSpace(parts[len(parts)-1])\n+\t\t\t\t\n+\t\t\t\tif tag == \"CFBundleDisplayName\" { dispNameErr = true }\n+\t\t\t\tif tag == \"CFBundleName\" { bndlNameErr = true }\n+\t\t\t\tif tag == \"CFBundleShortVersionString\" { versionErr = true }\n+\t\t\t\tif tag == \"CFBundleIdentifier\" { repoErr = true }\n+\t\t\t\t\n+\t\t\t\tif tag != \"CFBundleDisplayName\" &amp;&amp; tag != \"CFBundleName\" &amp;&amp; tag != \"CFBundleShortVersionString\" &amp;&amp; tag != \"CFBundleIdentifier\" {\n+\t\t\t\t\treturn nil, nil, xerrors.Errorf(\"unknown line tag in error: %q\", tag)\n+\t\t\t\t}\n+\t\t\t\tcontinue\n+\t\t\t}\n+\n+\t\t\tparts := strings.SplitN(line, \":\", 2)\n+\t\t\ttag := strings.TrimSpace(parts[0])\n+\t\t\tval := strings.TrimRight(parts[1], \" \\t\")\n+\t\t\tif strings.HasPrefix(val, \" \") {\n+\t\t\t\tval = val[1:] // remove single leading space if any\n+\t\t\t}\n+\n+\t\t\tswitch tag {\n+\t\t\tcase \"Info.plist\":\n+\t\t\t\tinfoPlist = val\n+\t\t\tcase \"CFBundleDisplayName\":\n+\t\t\t\tdispName = val\n+\t\t\tcase \"CFBundleName\":\n+\t\t\t\tbndlName = val\n+\t\t\tcase \"CFBundleShortVersionString\":\n+\t\t\t\tversion = val\n+\t\t\tcase \"CFBundleIdentifier\":\n+\t\t\t\trepo = val\n+\t\t\tdefault:\n+\t\t\t\treturn nil, nil, xerrors.Errorf(\"unknown line tag: %q\", tag)\n+\t\t\t}\n+\t\t}\n+\n+\t\tname := dispName\n+\t\tif dispName == \"\" || dispNameErr {\n+\t\t\tname = bndlName\n+\t\t}\n+\t\tif name == \"\" || bndlNameErr {\n+\t\t\tif infoPlist != \"\" {\n+\t\t\t\tdir1 := filepath.Dir(infoPlist)\n+\t\t\t\tdir2 := filepath.Dir(dir1)\n+\t\t\t\tname = filepath.Base(dir2)\n+\t\t\t\tname = strings.TrimSuffix(name, \".app\")\n+\t\t\t}\n+\t\t}\n+\n+\t\tv := version\n+\t\tif versionErr {\n+\t\t\tv = \"\"\n+\t\t}\n+\t\tr := repo\n+\t\tif repoErr {\n+\t\t\tr = \"\"\n+\t\t}\n+\n+\t\tif name != \"\" {\n+\t\t\tpkgs[name] = models.Package{\n+\t\t\t\tName:       name,\n+\t\t\t\tVersion:    v,\n+\t\t\t\tRepository: r,\n+\t\t\t}\n+\t\t}\n+\t}\n+\n+\treturn pkgs, nil, nil\n+}\n\\ No newline at end of file\ndiff --git a/scanner/scanner.go b/scanner/scanner.go\nindex 1122a16..61eb2b6 100644\n--- a/scanner/scanner.go\n+++ b/scanner/scanner.go\n@@ -282,6 +282,8 @@ func ParseInstalledPkgs(distro config.Distro, kernel models.Kernel, pkgList stri\n \t\tosType = &amp;fedora{redhatBase: redhatBase{base: base}}\n \tcase constant.OpenSUSE, constant.OpenSUSELeap, constant.SUSEEnterpriseServer, constant.SUSEEnterpriseDesktop:\n \t\tosType = &amp;suse{redhatBase: redhatBase{base: base}}\n+\tcase constant.MacOSX, constant.MacOSXServer, constant.MacOS, constant.MacOSServer:\n+\t\tosType = &amp;macos{base: base}\n \tdefault:\n \t\treturn models.Packages{}, models.SrcPackages{}, xerrors.Errorf(\"Server mode for %s is not implemented yet\", base.Distro.Family)\n \t}\n@@ -784,6 +786,11 @@ func (s Scanner) detectOS(c config.ServerInfo) osTypeInterface {\n \t\treturn osType\n \t}\n \n+\tif itsMe, osType := detectMacOS(c); itsMe {\n+\t\tlogging.Log.Debugf(\"macOS. Host: %s:%s\", c.Host, c.Port)\n+\t\treturn osType\n+\t}\n+\n \tif itsMe, osType := detectAlpine(c); itsMe {\n \t\tlogging.Log.Debugf(\"Alpine. Host: %s:%s\", c.Host, c.Port)\n \t\treturn osType\n", "creation_timestamp": "2026-07-30T18:14:20.446513Z"}, {"uuid": "79879132-59e7-48a6-b9fc-474a6f145525", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2024-0985", "type": "seen", "source": "https://t.me/EchelonEyes/2465", "content": "18 000 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 PostgreSQL \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043e\u043f\u0430\u0441\u043d\u0443\u044e \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c\n\n\u0412 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0438 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 PostgreSQL \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0430 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u0412 \u0441\u0435\u0442\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u044d\u043a\u0441\u043f\u043b\u043e\u0439\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0434\u043e 16, 15.6, 14.11, 13.14 \u0438 12.18. \n\n\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a BDU:2024-01121 \u0432 \u0431\u0430\u0437\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0424\u0421\u0422\u042d\u041a (CVE-2024-0985 \u0432 NVD).\n\n\u0410\u0442\u0430\u043a\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442, \u0447\u0442\u043e\u0431\u044b \u0436\u0435\u0440\u0442\u0432\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 REFRESH MATERIALIZED VIEW CONCURRENTLY, \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 CREATE RULE, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438.\n\n\u041f\u0440\u043e\u0435\u043a\u0442 PostgreSQL \u0443\u0436\u0435 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u0432\u0441\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438, \u043a\u0440\u043e\u043c\u0435 16-\u0439. \n\n\u041f\u043e \u0434\u0430\u043d\u043d\u044b\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u0430 Netlas.io, \u0432 \u043c\u0438\u0440\u0435 \u043d\u0430\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u044b\u0448\u0435 367 \u0442\u044b\u0441\u044f\u0447 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 PostgreSQL, \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0439. \u0420\u043e\u0441\u0441\u0438\u044f \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u043f\u044f\u0442\u0435\u0440\u043a\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043d\u0430\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 17,6 \u0442\u044b\u0441\u044f\u0447 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439.\n\n\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a: https://www.postgresql.org/support/security/CVE-2024-0985/ \n\n#\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c", "creation_timestamp": "2026-07-26T02:02:13.736230Z"}, {"uuid": "f97ab5f6-1503-49a1-bcf9-a2ea4c197dea", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2024-0985", "type": "seen", "source": "https://t.me/EchelonEyes/2465", "content": "18 000 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 PostgreSQL \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043e\u043f\u0430\u0441\u043d\u0443\u044e \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c\n\n\u0412 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0438 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 PostgreSQL \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0430 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u0412 \u0441\u0435\u0442\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u044d\u043a\u0441\u043f\u043b\u043e\u0439\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0434\u043e 16, 15.6, 14.11, 13.14 \u0438 12.18. \n\n\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a BDU:2024-01121 \u0432 \u0431\u0430\u0437\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0424\u0421\u0422\u042d\u041a (CVE-2024-0985 \u0432 NVD).\n\n\u0410\u0442\u0430\u043a\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442, \u0447\u0442\u043e\u0431\u044b \u0436\u0435\u0440\u0442\u0432\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 REFRESH MATERIALIZED VIEW CONCURRENTLY, \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 CREATE RULE, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438.\n\n\u041f\u0440\u043e\u0435\u043a\u0442 PostgreSQL \u0443\u0436\u0435 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u0432\u0441\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438, \u043a\u0440\u043e\u043c\u0435 16-\u0439. \n\n\u041f\u043e \u0434\u0430\u043d\u043d\u044b\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u0430 Netlas.io, \u0432 \u043c\u0438\u0440\u0435 \u043d\u0430\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u044b\u0448\u0435 367 \u0442\u044b\u0441\u044f\u0447 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 PostgreSQL, \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0439. \u0420\u043e\u0441\u0441\u0438\u044f \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u043f\u044f\u0442\u0435\u0440\u043a\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043d\u0430\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 17,6 \u0442\u044b\u0441\u044f\u0447 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439.\n\n\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a: https://www.postgresql.org/support/security/CVE-2024-0985/ \n\n#\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c", "creation_timestamp": "2026-07-27T00:00:50.885351Z"}, {"uuid": "dd4fd6e7-72ed-436e-ad2f-6292ec00b0f7", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2024-0985", "type": "published-proof-of-concept", "source": "https://t.me/EchelonEyes/2465", "content": "18 000 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 PostgreSQL \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u043e\u043f\u0430\u0441\u043d\u0443\u044e \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c\n\n\u0412 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u043e\u0439 \u0441\u0440\u0435\u0434\u0438 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u0430\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 PostgreSQL \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0430 \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0443 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430. \u0412 \u0441\u0435\u0442\u0438 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d \u044d\u043a\u0441\u043f\u043b\u043e\u0439\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 \u0434\u043e 16, 15.6, 14.11, 13.14 \u0438 12.18. \n\n\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043a\u0430\u043a BDU:2024-01121 \u0432 \u0431\u0430\u0437\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0424\u0421\u0422\u042d\u041a (CVE-2024-0985 \u0432 NVD).\n\n\u0410\u0442\u0430\u043a\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442, \u0447\u0442\u043e\u0431\u044b \u0436\u0435\u0440\u0442\u0432\u0430 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 REFRESH MATERIALIZED VIEW CONCURRENTLY, \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0435 \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u043e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u043a\u043e\u0434 \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u043e\u0431\u044a\u0435\u043a\u0442\u0430. \u0412 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430 CREATE RULE, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0441 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u043c\u0438 \u0437\u043b\u043e\u0443\u043c\u044b\u0448\u043b\u0435\u043d\u043d\u0438\u043a\u0443 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c\u0438.\n\n\u041f\u0440\u043e\u0435\u043a\u0442 PostgreSQL \u0443\u0436\u0435 \u0432\u044b\u043f\u0443\u0441\u0442\u0438\u043b \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u0432\u0441\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438, \u043a\u0440\u043e\u043c\u0435 16-\u0439. \n\n\u041f\u043e \u0434\u0430\u043d\u043d\u044b\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u0430 Netlas.io, \u0432 \u043c\u0438\u0440\u0435 \u043d\u0430\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u0432\u044b\u0448\u0435 367 \u0442\u044b\u0441\u044f\u0447 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 PostgreSQL, \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0439. \u0420\u043e\u0441\u0441\u0438\u044f \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u043f\u044f\u0442\u0435\u0440\u043a\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0431\u0430\u0437\u043e\u0439 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043d\u0430\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 17,6 \u0442\u044b\u0441\u044f\u0447 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0439.\n\n\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a: https://www.postgresql.org/support/security/CVE-2024-0985/ \n\n#\u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044c", "creation_timestamp": "2026-07-28T00:00:36.744932Z"}]}