CVE-2026-120066 (GCVE-0-2026-120066)
Vulnerability from cvelistv5
Published
2026-11-02 19:09
Modified
2026-11-02 19:37
CWE
  • CWE-732 - Incorrect Permission Assignment for Critical Resource
  • CWE-59 - Improper Link Resolution Before File Access ('Link Following')
Summary
On Unix-like systems, when logging is enabled, psqlODBC creates its log files in /tmp by default, named from the program name, user name, and process ID, with the default permissions, typically world-readable, and follows symbolic links when opening them. A local user can read query text and data from another user's logs, and can place a symbolic link at the predictable path so that the driver appends log data to a file of the attacker's choosing with the victim's privileges. Versions before psqlODBC 18.00.0006 are affected.
Impacted products
Vendor Product Version
PostgreSQL psqlODBC Version: 0   < 18.00.0006
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2026-120066",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2026-11-02T19:37:21.337272Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2026-11-02T19:37:32.927Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "psqlODBC",
          "programFiles": [
            "mylog.c"
          ],
          "programRoutines": [
            {
              "name": "MLOG_open"
            },
            {
              "name": "qlog_misc"
            }
          ],
          "repo": "https://github.com/postgresql-interfaces/psqlodbc",
          "vendor": "PostgreSQL",
          "versions": [
            {
              "lessThan": "18.00.0006",
              "status": "affected",
              "version": "0",
              "versionType": "custom"
            }
          ]
        }
      ],
      "datePublic": "2026-11-02T00:00:00.000Z",
      "descriptions": [
        {
          "lang": "en",
          "value": "On Unix-like systems, when logging is enabled, psqlODBC creates its log files in /tmp by default, named from the program name, user name, and process ID, with the default permissions, typically world-readable, and follows symbolic links when opening them. A local user can read query text and data from another user\u0027s logs, and can place a symbolic link at the predictable path so that the driver appends log data to a file of the attacker\u0027s choosing with the victim\u0027s privileges. Versions before psqlODBC 18.00.0006 are affected."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "attackComplexity": "HIGH",
            "attackVector": "LOCAL",
            "availabilityImpact": "NONE",
            "baseScore": 5.3,
            "baseSeverity": "MEDIUM",
            "confidentialityImpact": "HIGH",
            "integrityImpact": "LOW",
            "privilegesRequired": "LOW",
            "scope": "UNCHANGED",
            "userInteraction": "NONE",
            "vectorString": "CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:N",
            "version": "3.1"
          },
          "format": "CVSS",
          "scenarios": [
            {
              "lang": "en",
              "value": "GENERAL"
            }
          ]
        }
      ],
      "problemTypes": [
        {
          "descriptions": [
            {
              "cweId": "CWE-732",
              "description": "CWE-732 Incorrect Permission Assignment for Critical Resource",
              "lang": "en",
              "type": "CWE"
            }
          ]
        },
        {
          "descriptions": [
            {
              "cweId": "CWE-59",
              "description": "CWE-59 Improper Link Resolution Before File Access (\u0027Link Following\u0027)",
              "lang": "en",
              "type": "CWE"
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-11-02T19:09:14.964Z",
        "orgId": "f86ef6dc-4d3a-42ad-8f28-e6d5547a5007",
        "shortName": "PostgreSQL"
      },
      "references": [
        {
          "tags": [
            "vendor-advisory"
          ],
          "url": "https://github.com/postgresql-interfaces/psqlodbc/security/advisories/GHSA-wj7r-6pj3-62g8"
        }
      ],
      "solutions": [
        {
          "lang": "en",
          "value": "Upgrade to psqlODBC 18.00.0006 or later. On Unix-like systems, log files are opened with mode 0600 and O_NOFOLLOW, and an existing log file is used only if it is a regular file owned by the user running the application."
        }
      ],
      "title": "psqlODBC log files are created with default permissions at a predictable path and follow symbolic links",
      "workarounds": [
        {
          "lang": "en",
          "value": "Leave Debug and CommLog disabled in production. If logging is needed, set Logdir in the driver\u0027s section of odbcinst.ini (PostgreSQL Unicode or PostgreSQL ANSI) to a directory writable only by the user running the application."
        }
      ]
    }
  },
  "cveMetadata": {
    "assignerOrgId": "f86ef6dc-4d3a-42ad-8f28-e6d5547a5007",
    "assignerShortName": "PostgreSQL",
    "cveId": "CVE-2026-120066",
    "datePublished": "2026-11-02T19:09:14.964Z",
    "dateReserved": "2026-10-30T19:25:18.920Z",
    "dateUpdated": "2026-11-02T19:37:32.927Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-120066\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-11-02T19:37:21.337272Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-11-02T19:37:27.717Z\"}}], \"cna\": {\"title\": \"psqlODBC log files are created with default permissions at a predictable path and follow symbolic links\", \"metrics\": [{\"format\": \"CVSS\", \"cvssV3_1\": {\"scope\": \"UNCHANGED\", \"version\": \"3.1\", \"baseScore\": 5.3, \"attackVector\": \"LOCAL\", \"baseSeverity\": \"MEDIUM\", \"vectorString\": \"CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:L/A:N\", \"integrityImpact\": \"LOW\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"HIGH\", \"availabilityImpact\": \"NONE\", \"privilegesRequired\": \"LOW\", \"confidentialityImpact\": \"HIGH\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"GENERAL\"}]}], \"affected\": [{\"repo\": \"https://github.com/postgresql-interfaces/psqlodbc\", \"vendor\": \"PostgreSQL\", \"product\": \"psqlODBC\", \"versions\": [{\"status\": \"affected\", \"version\": \"0\", \"lessThan\": \"18.00.0006\", \"versionType\": \"custom\"}], \"programFiles\": [\"mylog.c\"], \"defaultStatus\": \"unaffected\", \"programRoutines\": [{\"name\": \"MLOG_open\"}, {\"name\": \"qlog_misc\"}]}], \"solutions\": [{\"lang\": \"en\", \"value\": \"Upgrade to psqlODBC 18.00.0006 or later. On Unix-like systems, log files are opened with mode 0600 and O_NOFOLLOW, and an existing log file is used only if it is a regular file owned by the user running the application.\"}], \"datePublic\": \"2026-11-02T00:00:00.000Z\", \"references\": [{\"url\": \"https://github.com/postgresql-interfaces/psqlodbc/security/advisories/GHSA-wj7r-6pj3-62g8\", \"tags\": [\"vendor-advisory\"]}], \"workarounds\": [{\"lang\": \"en\", \"value\": \"Leave Debug and CommLog disabled in production. If logging is needed, set Logdir in the driver\u0027s section of odbcinst.ini (PostgreSQL Unicode or PostgreSQL ANSI) to a directory writable only by the user running the application.\"}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"On Unix-like systems, when logging is enabled, psqlODBC creates its log files in /tmp by default, named from the program name, user name, and process ID, with the default permissions, typically world-readable, and follows symbolic links when opening them. A local user can read query text and data from another user\u0027s logs, and can place a symbolic link at the predictable path so that the driver appends log data to a file of the attacker\u0027s choosing with the victim\u0027s privileges. Versions before psqlODBC 18.00.0006 are affected.\"}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-732\", \"description\": \"CWE-732 Incorrect Permission Assignment for Critical Resource\"}]}, {\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-59\", \"description\": \"CWE-59 Improper Link Resolution Before File Access (\u0027Link Following\u0027)\"}]}], \"providerMetadata\": {\"orgId\": \"f86ef6dc-4d3a-42ad-8f28-e6d5547a5007\", \"shortName\": \"PostgreSQL\", \"dateUpdated\": \"2026-11-02T19:09:14.964Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2026-120066\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-11-02T19:37:32.927Z\", \"dateReserved\": \"2026-10-30T19:25:18.920Z\", \"assignerOrgId\": \"f86ef6dc-4d3a-42ad-8f28-e6d5547a5007\", \"datePublished\": \"2026-11-02T19:09:14.964Z\", \"assignerShortName\": \"PostgreSQL\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…